前言
Dify
是一个LLM应用开发平台开源。其绘图的界面结合了 AI
工作流程、RAG
管道、代理、模型管理、可安装性功能等,让我们可以快速从原型到生产。
Dify LLMOps
平台,它拥有可视化的工作流,在开源上构建和测试功能增强的AI工作流程,支持非常全面的大模型,基本包含了市面上的主流模型,自定义的提示工程,广泛的 Rag
检索能力,还有现在强大的Agent智能体,为智能体提供了丰富的内置工具,以及可以监听日志和性能,和丰富的 Api
集成。
一 、本地搭建Dify
Dify
的官方 git
地址是 https://github.com/langgenius/dify
,我们在构建本地环境的时候,需要拉取 Dify
项目。
我们这里由于用的是 docker
,所以还需要提前准备好 docker
环境。
git clone https://github.com/langgenius/dify.git
然后进入我们刚刚拉取的 dify-main
的根目录,可以看到下面结构:
然后进入我们项目根目录的 docker
文件夹,找到 docker-compose.yaml
,执行下面命令:
docker-compose up -d
这里可能等待得时间较长,看自己网速,如果我们需要配置自己的 web
端口,由于官方项目默认的端口是 80
,可会与我们本地其他项目冲突。
我们这里可以更改成自己不冲突的端口,打开 docker-compose.yaml
文件,找到里面的 nginx
配置项目,如下面所示:
将 80
端口改成我们自己的端口即可,重新执行 docker-compose up -d
。
看到这个界面就证明 docker
镜像已经拉取完毕,然后执行:
docker ps -a
查看所有镜像:
还可以打开我们的 docker desktop
:
上面这些就是我们 Dify
项目内部所需要的所有镜像,至此我们的项目环境已经搭建完毕。
二、Dify的快速构建应用
浏览器访问下面地址:(注意这里的端口一定要是你之前配置的端口,默认是 80
)
http://localhost:80/install
注册管理员账号。
然后输入邮箱密码登录成功。
这里我们开始快速构建dify 应用:
先添加模型:OpenAi
,通义千问或者 ollama
本地模型等,如果是 ollama
本地模型,你可以闲执行 ollama list
命令查看一下自己本地所拉取的模型,如果没有你需要的,你可以重新拉取新的本地模型。
OpenAi
同理,输入自己的 key
即可:
完成模型添加后,可以看到我们的模型:
回到我们编排界面,右上角选择我们配置好的模型:
点击我们进行一系列提示词构建,然后发布,这里我添加了一个上下文文档,你也可以根据需要进行添加,我的提示词模版为:
Use the following context as your learned knowledge, inside <context></context> XML tags. <context> {{#context#}} </context> When answer to user: - If you don't know, just say that you don't know. - If you don't know when you are not sure, ask for clarification. Avoid mentioning that you obtained the information from the context. And answer according to the language of the user's question. {{pre_prompt}} {{query}}
添加知识库:
文档分段和清洗:
存储到向量数据库:
知识库列表就可以看到我们创建好的文档:
一切准备就绪,点击右上角发布,然后运行一个 ChatBot
应用:
这里对我们创建的文档也能清晰的回答出来,包括具体检索到哪个知识库。
三、总结
Dify
可以说就是界面化的 LangChain
,从构建到发布一个聊天程序,完全脱离了编码,并且灵活的使用了各种 api
和工具。
Dify
为我们节省了大量重复造轮子的时间,使我们能够专注于创新和业务需求,在界面上完全控制您的数据,并提供灵活的安全性。
Dify
提供了更适合生产的完整解决方案——将 Dify
视为具有精细工程设计和软件测试的脚手架系统。当然最大的好处就是,Dify
是开源的,我们也可以共同参与社区环境打造。