
云原生 API 网关 APISIX 入门教程
Dify是一款开源的大语言模型(LLM) 应用开发平台。项目设立于2023年3月,开源协议是基于 Apache License 2.0 有限商业许可,后端技术为Python/Flask/PostgreSQL,前端技术Next.js,发版周期平均每周一次。它融合了后端即服务(Backend as Service)和LLMOps 的理念,使开发者可以快速搭建生产级的生成式 AI 应用。即使你是非技术人员,也能参与到 AI 应用的定义和数据运营过程中。
由于 Dify 内置了构建 LLM 应用所需要的关键技术栈,包括对数百个模型的支持、直观的Prompt 编排界面、高质量的 RAG 引擎、稳健的 Agent 框架、灵活的流程编排,并同时提供了一套易用的界面和 API。这为开发者节省了许多重复造轮子的时间,使其可以专注在创新和业务需求上。
Github上的项目地址:https://github.com/langgenius/dify
若我们把 LangChain 这类的开发库(Library)想象为有着锤子、钉子的工具箱。那么Dify 提供了更接近生产需要的完整方案,Dify 好比是一套脚手架,并且经过了精良的工程设计和软件测试。
重要的是,Dify 是开源的,它由一个专业的全职团队和社区共同打造。你可以基于任何模型自部署类似 Assistants API 和 GPTs 的能力,在灵活和安全的基础上,同时保持对数据的完全控制。
⚠️:Dify 一词源自 Define + Modify,意指定义并且持续的改进你的 AI 应用,它是为你而做的(Do it for you)。
在 Dify 中,可按模型的使用场景将模型分为以下 4 类:系统推理模型:如在智聊、对话生成、下一步问题建议等场景用的是系统推理模型。目前已支持的系统推理模型供应商:OpenAI、Azure OpenAI Service、Anthropic、Hugging Face Hub、Replicate、Xinference、OpenLLM、讯飞星火、文心一言、通义千问、Minimax、ZHIPU(ChatGLM);Embedding 模型:在数据集中,将分段过的文档做 Embedding 以及将用户的提问做 Embedding 处理用的是该类型的模型。目前已支持的 Embedding 模型供应商:OpenAI、ZHIPU(ChatGLM)、Jina AI(Jina Embedding);Rerank 模型:Rerank 模型主要用于增强检索能力,改善 LLM 的搜索结果。目前已支持的 Rerank 模型供应商:Cohere、Jina AI(Jina Reranker);
语音转文字模型:在对话型应用中,将语音转文字用的是该类型的模型。目前已支持的语音转文字模型供应商:OpenAI。
聊天助手:基于 LLM 构建对话式交互的助手;
文本生成:构建面向文本生成类任务的助手,例如撰写故事、文本分类、翻译等;
Agent:能够分解任务、推理思考、调用工具的对话式智能助手;
工作流:基于流程编排的方式定义更加灵活的 LLM 工作流。
在安装 Dify 之前,请确保您的机器满足以下最低系统要求:
首先,从官方网站下载docker安装包:https://www.docker.com/get-started/
下载完成后,找到安装包,双击后通过拖拽完成安装。
在docker桌面版本安装完成后,需要在damen.json文件中配置国内的镜像代理,否则拉取会失败。具体操作如下:
1)点击桌面上的docker图标后,点击Settings,如下图所示:
2)在Settings页面点击Docker Engine,编辑如下灰色框框内容,由于一个镜像不一定能够成功,这里我们添加了如下2个:
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://docker.1panel.live"
]
添加完成后,点击保存即完成配置。
brew install docker-compose
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
记得,安装之后,需要重启终端或者运行以下命令才可以生效:
source /Users/xxx/.zprofile
git clone https://github.com/langgenius/dify.git
#进入 Dify 源代码的 Docker 目录
cd docker
然后,复制环境配置文件
#复制环境配置文件
cp .env.example .env
docker compose up -d
如果版本是 Docker Compose V1,使用以下命令:
docker-compose up -d
当终端界面出现以下信息时,则表示Dify服务启动成功,即显示所有容器的状态和端口映射:
docker-compose up -d
错误日志信息如下所示:
最后,检查所有容器是否都正常运行,操作命令如下所示:
docker compose ps
结果如下所示,则表示所有容器都正常运行,在这个输出中,您应该可以看到包括 3 个业务服务api / worker / web
,以及 6 个基础组件:
通过这些步骤,您应该可以成功在本地安装 Dify。
再次使用Dify时候,若有更新,可按顺序执行以下命令进行更新:
cd docker
docker compose down
git pull origin main
docker compose pull
docker compose up -d
然后,点击设置管理员账户,包括邮箱、用户名以及密码。设置完成后,在以下页面进行登录即可使用啦。
最后,使用账户登录后,可以看到一个空白的工作室Workplace:
2)进入设置页面后,点击左上角【模型供应商】
3)在模型供应商中,找到Xorbits Inference,并点击【添加模型】
填写模型名称、服务器URL(⚠️这里需要您去查看下本机的IP以及Xinference部署的端口,注意不是Xinference登录网址)以及模型UID
点击保存成功后,可以在模型列表中看到该模型
点击右下角的【添加模型】继续添加一个嵌入模型bge-large-zh
进入模型配置页面,选择模型【Text Embedding】
填写模型名称、服务器URL以及模型UID
⚠️这里点击保存时,可能会报错,需要登录Xinference平台查看Running Models页面该模型是否存在,若不存在,则需要找到该模型如下图所示,点击小火箭按钮重新部署即可。
部署完成后,再次点击【保存】按钮,则可以保存成功,且可以在 Dify的模型列表页面查看到该模型:
继续按照前两步的操作,我们可以添加重排序模型bge-reranker-v2-m3进入该模型列表。
填写模型名称、服务器URL以及模型UID
至此,我们已经成功将通过Xinference本地化部署的三个大模型集成到了Dify中。
后续,我们就可以基于所集成的模型,在Dify中进行AI的应用了。
本文主要介绍了Dify的基本概念及功能特征,并通过命令行的方式在个人笔记本MAC M1环境下私有化部署了Dify服务,然后将在Xinference中本地化部署的3个大模型,语言模型qwen2.5-instruct、嵌入模型bge-large-zh、重排序模型bge-reranker-v2-m3依次集成到了Dify中,为下一步在Dify中开展AI应用研究做好准备。
本文章转载微信公众号@AI Python机器学习