引言
Dify
是一款开源的大语言模型(LLM)
应用开发平台,它帮助开发者和非技术人员,快速构建生产级别的生成式AI应用。
该项目设立于2023 年 3 月,开源协议是基于 Apache License 2.0
有限商业许可,后端技术Python/Flask/PostgreSQL
,前端技术Next.js
。
它提供了构建LLM
应用所需的关键技术组件,如模型支持、Prompt
编排、RAG
引擎、Agent
框架和流程编排,同时还具备直观的界面和API
。
Dify
的主要功能包括:
加速AI应用开发:帮助创业者快速将创意变为现实,已助力多个团队构建MVP
并获得投资。
**集成LLM至现有业务:**通过RESTful API
将LLM
能力嵌入现有应用,实现Prompt
与业务逻辑的解耦,便于跟踪数据、成本和用量,持续优化应用效果。
**企业级LLM基础设施:**作为企业内部的LLM
网关,加速GenAI
技术在企业中的应用,实现中心化监管。
**探索LLM边界:**即使是技术爱好者,也可通过Dify
实践Prompt
工程和Agent
技术,探索LLM
的能力极限。
Dify
还提供了完整的云服务,无需安装即可使用。
截止发稿前在 Github
上已获得 36.3k
Star!
附上Github
地址:https://github.com/langgenius/dify
模型设置
Dify
目前已支持主流的模型供应商,并将模型按场景分为4个类:
1、系统推理模型:
在创建的应用中,用的是该类型的模型。智聊、对话名称生成、下一步问题建议用的也是推理模型。
已支持的系统推理模型供应商:
OpenAI
、Azure OpenAI Service
、Anthropic
、Hugging Face Hub
、Replicate
、Xinference
、OpenLLM
、讯飞星火
、文心一言
、通义千问
、Minimax
、ZHIPU(ChatGLM)
2、Embedding 模型:
在数据集中,将分段过的文档做 Embedding
用的是该类型的模型。在使用了数据集的应用中,将用户的提问做 Embedding
处理也是用的该类型的模型。
已支持的 Embedding
模型供应商:
OpenAI
、ZHIPU(ChatGLM)
、JinaAI
3、Rerank 模型:
Rerank
模型用于增强检索能力,改善 LLM
的搜索结果。
已支持的 Rerank
模型供应商:
Cohere
、JinaAI
4、语音转文字模型:
将对话型应用中,将语音转文字用的是该类型的模型。
已支持的语音转文字模型供应商:OpenAI
应用&工作流
在 Dify
中应用都是基于 GPT
等大预言模型构建的,并且包含了完整的API
、Token
鉴权、WebApp
来帮助使用者快速开发。它还提供了四种应用类型:
聊天助手: 基于 LLM
构建对话式交互的助手
文本生成: 构建面向文本生成类任务的助手,例如撰写故事、文本分类、翻译等
Agent: 能够分解任务、推理思考、调用工具的对话式智能助手
工作流: 基于流程编排的方式定义更加灵活的 LLM
工作流
知识库
在Dify
平台中,我们地运用知识库来实施RAG(Retrieval-Augmented Generation)技术
,当用户提出一个问题时,系统会迅速在知识库中搜索与该问题最为契合的数据片段。
这一过程涉及复杂的语义匹配算法,确保所检索到的内容不仅相关,而且能够直接回答或辅助解答用户的问题。
一旦找到合适的信息,系统会将这些检索到的文档片段融入模型生成回复的上下文中,作为额外的背景知识,使用户获得更为满意和详尽的答案。
工具
工具有效地拓展了大型语言模型(LLM)
的功能边界,通过集成联网搜索、科学计算、图像生成等能力,不仅丰富了LLM
的技能集,还显著增强了其与外部世界互动的能力。
使得LLM能更全面地理解和响应复杂多样的现实需求。
安装
系统要求
在安装 Dify
之前,请确保您的机器满足以下最低系统要求:
- CPU >= 2 Core
- RAM >= 4GB
快速启动
启动 Dify
服务器的最简单方法是运行 docker-compose.yml
文件。
在运行安装命令之前,请确保您的机器上安装了 Docker
和 Docker Compose
:
cd docker
cp .env.example .env
docker compose up -d
运行后,可以在浏览器上访问 http://localhost/install
进入 Dify
控制台并开始初始化安装操作。
自定义配置
如果您需要自定义配置,请参考 .env.example
文件中的注释,并更新 .env
文件中对应的值。
此外,可能需要根据您的具体部署环境和需求对 docker-compose.yaml
文件本身进行调整,例如更改镜像版本、端口映射或卷挂载。
完成任何更改后,请重新运行 docker-compose up -d
。