前言
最近在研究复杂的 AI 工作流(Agent)来处理一些复杂的问题,想自建一个类似 coze 这样的 AI 应用开发平台,coze 平台目前开始面向收费了,免费额度非常的少。 据我了解目前只有两个开源的项目支持自建 Agent,一个是 Fastgpt ,一个是 Dify,根据网上的资料,个人觉得 Dify 的操作体验更好,支持的模型更全
主要介绍
Dify 官方地址:dify.ai/
官方介绍:
Dify 是一款开源的大语言模型(LLM) 应用开发平台。它融合了后端即服务(Backend as Service)和 LLMOps 的理念,使开发者可以快速搭建生产级的生成式 AI 应用。即使你是非技术人员,也能参与到 AI 应用的定义和数据运营过程中。
由于 Dify 内置了构建 LLM 应用所需的关键技术栈,包括对数百个模型的支持、直观的 Prompt 编排界面、高质量的 RAG 引擎、稳健的 Agent 框架、灵活的流程编排,并同时提供了一套易用的界面和 API。这为开发者节省了许多重复造轮子的时间,使其可以专注在创新和业务需求上。
搭建教程
在官方文档有搭建教程:docs.dify.ai/v/zh-hans
先找到项目 GitHub 开源链接 clone 下来,使用 docker 部署运行
git clone https://github.com/langgenius/dify.git
cd dify/docker
cp .env.example .env
docker compose up -d
这里需要注意的是在.env 配置文件中需要更改端口号,官方的端口号是
EXPOSE_NGINX_PORT=80
EXPOSE_NGINX_SSL_PORT=443
一般会跟自己的项目有冲突,解决冲突过后打开正确修改后的EXPOSE_NGINX_PORT端口
先设置管理员的账号密码,然后就直接进入了主要的应用界面
测试
我想测试一个简单的 agent 工作流,在开始之前先添加大模型供应商,在某宝上有很多可以购买的。
在右上角点击头像,再点击设置
添加大模型供应商,我这里选择的是 openai 的 chatgpt4
这里有一个知识点,在 dify 中 agent 和 workflow 是两种不一样的东西。
agent:智能助手(Agent Assistant),利用大语言模型的推理能力,能够自主对复杂的人类任务进行目标规划、任务拆解、工具调用、过程迭代,并在没有人类干预的情况下完成任务,一般比较简单,处理一些笼统的对话问题。
Workflow:面向自动化和批处理情景,适合高质量翻译、数据分析、内容生成、电子邮件自动化等应用程序,比较复杂,需要自己设计很多细节
一般是使用两个能力进行结合,agent 负责对话理解,workflow 处理具体的细节功能,今天我就把之前做的微信消息转发的机器人迁移到了 dify 这里,把具体步骤给大家讲解一下
先创建一个 workflow,添加输入的两个参数:好友昵称 和 消息内容
再在后面添加一个 HTTP 请求的能力,调用微信消息发送的 API 就能发送消息了,请查看我的历史文章:《独门秘诀,用Coze机器人创建插件调用微信接口代替我发消息》,需要发送消息的昵称和消息内容进行组装
继续创建一个结束的流程,把上面的 http 请求接口的结果进行返回
然后点击发布,发布的时候需要配置这个工作流的别名叫 wechat_message。
最后再创建一个 agent,添加一下刚才发布的工作流,并设置默认的 prompt 为:
请确保你作为一个聊天机器人,在处理对话时能够深刻理解对话内容及对话者的意图。使用wechat_message工具时,不要简单地直接转发信息,而应该基于对话的上下文,生成富有洞察力且相关的回复。这样的处理不仅展示了你的语义理解能力,还能有效地提升对话的质量和参与度。
效果实测:
最后
今天简单地通过自己部署 Dify 搭建了一个简单的 agent 工作流,后面还会介绍更多有趣的东西,感兴趣请继续关注我