一.Dify介绍
生成式 AI 应用创新引擎,开源的 LLM 应用开发平台。提供从 Agent 构建到 AI workflow 编排、RAG 检索、模型管理等能力,轻松构建和运营生成式 AI 原生应用,比 LangChain 更易用。一个平台,接入全球大型语言模型。不同应用场景,自由体验、无缝切换,实现业务层和模型层解耦。
1.开放灵活的生成式 AI应用开发框架。
Dify 涵盖了构建生成式 AI 原生应用所需的核心技术栈,开发者可以聚焦于创造应用的核心价值。
(1)Dify Orchestration Studio:可视化编排生成式 AI 应用的专业工作站,All in One Place。
(2)RAG Pipeline:安全构建私有数据与大型语言模型之间的数据通道,并提供高可靠的索引和检索工具。
(3)Prompt IDE:为提示词工程师精心设计,友好易用的提示词开发工具,支持无缝切换多种大型语言模型。
(4)Enterprise LLMOps:开发者可以观测推理过程、记录日志、标注数据、训练并微调模型;使应用效果脱离黑盒,持续迭代优化。
(5)BaaS Solution:基于后端及服务理念的 API 设计,大幅简化生成式 AI 应用研发流程。
(6)LLM Agent:定制化 Agent ,自主调用系列工具完成复杂任务。
(7)Workflow:编排 AI 工作流,使其输出更稳定可控。
2.开箱即用,为快速增长而设计
Dify 为开发者提供了健全的应用模版和编排框架,你可以基于它们快速构建大型语言模型驱动的生成式 AI 应用,将创意变为现实,也可以随时按需无缝扩展,驱动业务增长。
(1)特定领域的聊天机器人和 AI 助理
通过可视化的提示词编排和数据集嵌入,零代码即可快速构建对话机器人或 AI 助理,并可持续优化对话策略,革新人机交互体验。
(2)不限的长度创意文档生成
既可以基于知识库和风格要求,自动组织语言,生成逻辑清晰、结构完整的工作文档。 也可以自动解析工作文档,对无限长度的文档进行提取、总结和重构。
(3)自由链接的知识库问答和搜索
通过自定义 API 接入外部知识源,让大型语言模型深入理解企业知识和业务,助力每个成员获得深度洞察,同时严格保障数据和隐私安全。
(4)低代码的构建面向的半自主 Agent
通过可视化且低代码的流程编排,整合提示词、业务数据集和插件工具,构建面向特定业务场景的半自主智能体,释放个人和企业的生产力。
3.私有化部署,LLMs 再造企业效能
高可靠性、合规、数据安全,通过 Dify 的私有化部署解决方案,将 LLMs 深度嵌入到企业的内部系统和业务流程中,实现对流程和工具的智能升级,实现千人千面的客户体验。
(1)企业私有化知识库及 AI 助理
通过自主可控的方式安全接入企业内部知识库,将企业多年沉淀的业务数据,快速转换成智能的搜索或问答服务,可深度集成到企业的 IM 和工作流中,全面提升客户服务和内部办公效率。
(2)企业级LLMOps 平台
与企业其他系统集成,通过可视化的工具和流程,让大型语言模型驱动的系统不在黑盒中运行,并对其进行可视化的运维、监控、标注和持续优化。
(3)编排端到端 AI 工作流
灵活编排 AI 工作过程,接入企业现有系统工具。实时监控运行状态,让 AI 落地业务场景更可靠。
(4)零代码构建自主 AI Agent
轻松点击几下即可构建 AI Agents,自主调用企业定义的工具与数据,解决复杂任务。
二.Dify架构图
三.Dify容器部署
1.下载代码
git clone https://github.com/langgenius/dify.git
2.docker运行
cd dify/docker
docker compose up -d
3.更新Dify
cd dify/docker
git pull origin main
docker compose down
docker compose pull
docker compose up -d
4.访问Dify
访问 Difyll在浏览器中输入 http://localhost
访问 Dify。
四.相关问题
1.db-1容器restarting
fixing permissions on existing directory /var/lib/postgresql/data ... initdb: could not change permissions of directory "/var/lib/postgresql/data": Operation not permitted
创建数据卷解决操作权限问题:
# The postgres database.
db:image: postgres:15-alpinerestart: alwaysenvironment:PGUSER: postgres# The password for the default postgres user.POSTGRES_PASSWORD: difyai123456# The name of the default postgres database.POSTGRES_DB: dify# postgres data directoryPGDATA: /var/lib/postgresql/data/pgdatavolumes:- db_data:/var/lib/postgresql/data# uncomment to expose db(postgresql) port to host# ports:# - "5432:5432"healthcheck:test: [ "CMD", "pg_isready" ]interval: 1stimeout: 3sretries: 30volumes:db_data:
参考文献
[1] Dify GitHub:https://github.com/langgenius/dify
[2] Dify官网:https://dify.ai/zh
[3] Dify官方文档:https://docs.dify.ai/v/zh-hans
[4] Dify博客:https://dify.ai/blog
[5] OpenAPI Specification:https://swagger.io/specification/
[6] Dify云平台:https://cloud.dify.ai/apps
[7] Dify自定义工具:https://github.com/langgenius/dify/blob/main/CONTRIBUTING.md
[8] Dify Release:https://github.com/langgenius/dify/releases
[9] webapp-text-generator:https://github.com/langgenius/webapp-text-generator