所有文章 > AI驱动 > 大模型实战(二):全民AI?关于如何在本地私有化部署基于大模型的 AI 应用开发平台Dify,并集成Xinference大模型
大模型实战(二):全民AI?关于如何在本地私有化部署基于大模型的 AI 应用开发平台Dify,并集成Xinference大模型

大模型实战(二):全民AI?关于如何在本地私有化部署基于大模型的 AI 应用开发平台Dify,并集成Xinference大模型

一、关于Dify的介绍


1.1 什么是Dify?

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

1.2 为什么使用Dify?

若我们把 LangChain 这类的开发库(Library)想象为有着锤子、钉子的工具箱。那么Dify 提供了更接近生产需要的完整方案,Dify 好比是一套脚手架,并且经过了精良的工程设计和软件测试。

重要的是,Dify 是开源的,它由一个专业的全职团队和社区共同打造。你可以基于任何模型自部署类似 Assistants API 和 GPTs 的能力,在灵活和安全的基础上,同时保持对数据的完全控制。

⚠️:Dify 一词源自 Define + Modify,意指定义并且持续的改进你的 AI 应用,它是为你而做的(Do it for you)。

1.3 Dify 能做什么?

  • 加速AI应用开发:快速的将你的 AI 应用创意变成现实,已经有几十个团队通过 Dify 构建 MVP(最小可用产品)获得投资,或通过 POC(概念验证)赢得了客户的订单;
  • 集成 LLM 至已有业务:通过引入 LLM 增强现有应用的能力,接入 Dify 的 RESTful API 从而实现 Prompt 与业务代码的解耦;
  • 企业级 LLM 基础设施:可以将 Dify 部署为企业内的 LLM 网关,加速 GenAI 技术在企业内的推广,并实现中心化的监管;
  • 探索 LLM 的能力边界:即使你是一个技术爱好者,通过 Dify 也可以轻松地实践 Prompt 工程和 Agent 技术,在 Dify 上创建自己的应用。

1.4 Dify内支持的模型

在 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

1.5 Dify内提供的四种应用类型

聊天助手:基于 LLM 构建对话式交互的助手;

文本生成:构建面向文本生成类任务的助手,例如撰写故事、文本分类、翻译等;

Agent:能够分解任务、推理思考、调用工具的对话式智能助手;

工作流:基于流程编排的方式定义更加灵活的 LLM 工作流。


二、在笔记本上本地化部署Dify实战


2.1 系统要求

在安装 Dify 之前,请确保您的机器满足以下最低系统要求:

  • CPU >= 2 Core
  • RAM >= 4GB

2.2 安装Docker(已安装可忽略)

首先,从官方网站下载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"
]

添加完成后,点击保存即完成配置。

2.3 安装Docker Compose

  • 如果Docker Compose已经安装,您可以直接使用。如果不是,可以通过Homebrew安装:
brew install docker-compose
  • ⚠️若本机没有安装Homebrew,则需要先安装,具体安装方式如下:
  • 对于MAC M1用户,打开终端,可输入如下命令进行安装
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

记得,安装之后,需要重启终端或者运行以下命令才可以生效:

source /Users/xxx/.zprofile

2.4 克隆Dify仓库

  • 通过VsCode在您的笔记本上克隆Dify源代码至本地环境,在终端执行如下命令:
git clone https://github.com/langgenius/dify.git

2.5 部署并启动Dify

  • 首先,在克隆完成后,可通过VsCode进入Dify源代码的Docker目录:
#进入 Dify 源代码的 Docker 目录
cd docker

然后,复制环境配置文件

#复制环境配置文件
cp .env.example .env
  • 接着,启动 Docker 容器
  • 如果版本是 Docker Compose V2,使用以下命令:
docker compose up -d

如果版本是 Docker Compose V1,使用以下命令:

docker-compose up -d

当终端界面出现以下信息时,则表示Dify服务启动成功,即显示所有容器的状态和端口映射:

  • ⚠️ 这里也可能会启动失败,可能的解决方案:1. 首先,尝试修改/更换docker的镜像源;
  • 2. 若拉取时仍然出现超时报错,没关系,重复运行该命令,直到全部加载完成
docker-compose up -d

错误日志信息如下所示:

最后,检查所有容器是否都正常运行,操作命令如下所示:

docker compose ps

结果如下所示,则表示所有容器都正常运行,在这个输出中,您应该可以看到包括 3 个业务服务api / worker / web,以及 6 个基础组件:

通过这些步骤,您应该可以成功在本地安装 Dify。

2.6 更新Dify

再次使用Dify时候,若有更新,可按顺序执行以下命令进行更新:

cd docker
docker compose down
git pull origin main
docker compose pull
docker compose up -d

2.7 访问Dify

  • 首先,在通过终端命令启动成功后,可在本地浏览器中输入 http://localhost 访问Dify,打开的Web UI如下所示:

然后,点击设置管理员账户,包括邮箱、用户名以及密码。设置完成后,在以下页面进行登录即可使用啦。

最后,使用账户登录后,可以看到一个空白的工作室Workplace:

  • 图片恭喜!到这一步,我们就可以根据自己的兴趣来进行AI的应用构建啦。

三、将Xinference中的开源大模型集成到Dify


  • 这里,我们将依次添加之前在Xinference中部署的大语言模型qwen2.5-instruct、嵌入模型bge-large-zh、重排序模型bge-reranker-v2-m3,具体操作步骤如下所示:
  • 1)通过Web UI进入工作室页面后,点击右上角账户,点击【设置】按钮

2)进入设置页面后,点击左上角【模型供应商】

3)在模型供应商中,找到Xorbits Inference,并点击【添加模型】

  • 4)根据想要添加的模型,依次进行添加,这里我们首先添加一个大语言模型LLM
  •        选择:LLM

填写模型名称、服务器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机器学习

#你可能也喜欢这些API文章!