Dify介绍
功能特点
- 可视化工作流编排:通过零代码拖拽式界面,无需编写代码就能构建复杂的AI工作流程,降低开发门槛,提高开发效率。
- 多模型支持:可无缝集成GPT系列、Llama、Mistral等数百种语言模型,兼容OpenAI API兼容的私有化模型,也支持本地部署的LLaMA2、ChatGLM3等开源模型,让企业能根据业务需求和成本灵活选择。
- RAG增强检索:内置高质量的检索增强生成(RAG)引擎,支持PDF、PPT等多格式文档解析,运用混合检索(关键词 + 向量)与ReRank优化技术,显著提升回答的准确性,有效降低AI幻觉。
- 智能体(Agent)生态:提供50多种预置工具,如谷歌搜索、DALL - E、WolframAlpha等,还支持自定义工具集成,基于ReAct框架设计多智能体协作流程,可实现如先查天气再生成出行攻略并发送到微信群等复杂任务的自动化。
- 企业级LLMOps:具备应用监控、日志分析以及数据标注功能,支持持续优化提示词、数据集和模型性能,帮助企业更好地管理和优化AI应用。
Dify私有化的作用
- 保障数据安全与隐私:对于金融、医疗等对数据安全要求极高的行业,私有化部署可使企业敏感数据全程在本地存储和处理,数据传输采用国密SM4算法加密,存储层实现字段级加密,避免数据泄露风险,满足严格的数据治理和合规要求。
- 实现定制化开发:企业能够根据自身独特的业务需求和流程,对Dify的代码进行自由修改和深度定制,例如集成企业现有的CRM、ERP等系统,开发行业专属的AI助手,打造符合企业特色的智能应用。
- 优化性能与成本:企业可根据实际业务负载,精准地为Dify配置硬件资源,如GPU、CPU等,实现性能的最大化优化。在长期使用场景下,相比云服务,私有化部署的成本可降低60%以上。
- 自主掌控与合规:企业完全掌握系统的运行状态、数据流向以及技术栈,能够更好地应对监管要求和数据安全审计,确保业务运营的自主性和合规性。
地址
- 在线体验:https://dify.ai/
- 开源地址:https://github.com/langgenius/dify
- 官方文档:https://docs.dify.ai/v/zh-hans
解压unzip dify-main.zip
安装
cd /usr/local/dify-main/docker
cp .env.example .env
在 .env
中增加ollama
配置
# 启用自定义模型
CUSTOM_MODEL_ENABLED=true
# 指定 Olama 的 API地址(根据部署环境调整IP)
OLLAMA_API_BASE_URL=http://192.168.0.180:11434
docker compose up -d
因为我的nginx端口被占用了,这里做个处理
查看 docker-compose.yaml
找到相关的变量 443
端口对应的变量
找到 .env
文件中变量 EXPOSE_NGINX_SSL_PORT
更改端口
访问 :192.168.0.180:8088
自行更改 ip
+ 端口
(上面.env
设置的,没设置的默认是 80
)
配置Ollama
Linux
安装docker
+ollama
+deepseek
:https://blog.csdn.net/YXWik/article/details/149497501
如果没有ollama插件的需要安装一下
设置模型,前文中在192.168.0.180
上安装了deepseek-r1:7b
http://192.168.0.180:11434/
配置 Xinference
Linux
安装Xinference
:https://blog.csdn.net/YXWik/article/details/149834455
点击保存出现如下报错
我在服务器上访问时可以访问的
但是在dify
的api
中进行访问时不可行的
说明我的 Xinference
网络和 dify
的网络不相通
查看运行的容器:docker ps -a
找到dify
的api
容器 和 xinference
容器
查看网络:
docker inspect xinference | grep -A 10 "Networks"
docker inspect docker-api-1 | grep -A 10 "Networks"
可以看到一个是 docker_default
一个是 bridge
解决方案
可以将xinference
加入dify
所在的网络docker_default
,以后哪个容器访问不到它,就将它加入一下相关网络就行
docker network connect docker_default xinference
取消已加入的网络:
docker network disconnect docker_default xinference