• 使用 Docker Compose 快速部署 Dify 1.4.0 版本

一、环境配置

1. Linux环境

# 安装 Docker,Docker 19.03 or later
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
systemctl enable --now docker
# 安装 docker-compose,Docker Compose 1.28 or later
curl -L https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
# 验证安装
docker -v
docker-compose -v
# 如失效,自行百度~

2. Windows环境

二、Dify部署

1. 代码准备

# 克隆 Dify 源代码至本地环境,根据需要选择版本
git clone https://github.com/langgenius/dify.git --branch 1.4.0

2. 修改环境变量 .env 文件

# 进入 Dify 源代码的 Docker 目录
cd dify/docker
# 复制环境配置文件
cp .env.example .env
# 修改.env环境配置文件,本次部署使用Milvus向量库,需更改.env文件中的VECTOR_STORE值为milvus
VECTOR_STORE=milvus
# 确保`.env` 文件中的 Milvus 配置
MILVUS_URI=http://host.docker.internal:19530
# docker-compose.yaml文件milvus-standalone 服务中的环境变量配置common.security.authorizationEnabled: ${MILVUS_AUTHORIZATION_ENABLED:-true}表示启用授权功能,需要设置用户名和密码,否则会报错
# 连接用户名,默认为root
MILVUS_USER=root
# 连接密码,默认为Milvus
MILVUS_PASSWORD=Milvus
  • 注意,通过指定VECTOR_STORE=milvus ,Dify 会在 docker 中调出 Milvus Standalone 服务器。即可以通过http://localhost:19530 从 Docker 外部访问服务器,其他 Dify 容器要想在 Docker 环境内与之对话,也需要连接到特殊的 DNS 名称host.docker.internal 。因此,我们将http://host.docker.internal:19530 设置为MILVUS_URI

3. 修改 docker-compose.yaml 文件

  • 由于默认镜像地址国内无法访问,需更换业务服务和基础组件的镜像地址
swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/langgenius/dify-api:1.4.0
swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/langgenius/dify-web:1.4.0
swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/postgres:15-alpine
swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/redis:6-alpine
swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/langgenius/dify-sandbox:0.2.12
swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/langgenius/dify-plugin-daemon:0.0.10-local
swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/ubuntu/squid:latest
swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/nginx:latest
swr.cn-north-4.myhuaweicloud.com/ddn-k8s/quay.io/coreos/etcd:v3.5.5
swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/minio/minio:RELEASE.2023-03-20T20-16-18Z
swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/milvusdb/milvus:v2.5.0-beta

4. 启动Docker容器

# 如果版本是 Docker Compose V2,使用以下命令
docker compose up -d
# 如果版本是 Docker Compose V1,使用以下命令
docker-compose up -d
# 检查是否所有容器都正常运行
docker compose ps
  • 根据你系统上的 Docker Compose 版本,选择合适的命令来启动容器。你可以通过 $ docker compose version 命令检查版本

  • 所有容器均已启动,包括 3 个业务服务 api / worker / web,以及 7 个基础组件 milvus / milvus-minio/ db / redis / nginx / ssrf_proxy / sandbox,如下:
    在这里插入图片描述

  • 注意:每次修改编辑 .env 文件中的环境变量值(自定义配置),都需要重启Dify(docker compose down,docker compose up)

5. 访问Dify

  • 先前往管理员初始化页面设置管理员账户,管理员拥有的最大权限,可用于创建应用和管理 LLM 供应商等
  • 设置完成后可访问 Dify 主页面
# 设置管理员账户
# 本地环境 
http://localhost/install 
# 服务器环境 
http://your_server_ip/install
# 访问Dify
# 本地环境 
http://localhost 
# 服务器环境 
http://your_server_ip

在这里插入图片描述

三、Dify应用

1. 接入大模型

1.1 模型类型

  • 在 Dify 中,按模型的使用场景将模型分为以下 4 类:
  1. 系统推理模型(llm 文本生成模型)。 在创建的应用中,用的是该类型的模型。智聊、对话名称生成、下一步问题建议用的也是推理模型。系统推理模型供应商包括OpenAIAzure OpenAI ServiceAnthropic、Hugging Face Hub、Replicate、Xinference、OpenLLM、讯飞星火文心一言通义千问Minimax、ZHIPU(ChatGLM)等。
  2. Embedding 模型(text_embedding 文本 Embedding 模型)。在知识库中,将分段过的文档做 Embedding 用的是该类型的模型。在使用了知识库的应用中,将用户的提问做 Embedding 处理也是用的该类型的模型。已支持的 Embedding 模型供应商包括OpenAI、ZHIPU(ChatGLM)、Jina AI(Jina Embeddings)等。
  3. Rerank 模型。Rerank 模型用于增强检索能力,改善 LLM 的搜索结果。已支持的 Rerank 模型供应商包括Cohere、Jina AI(Jina Reranker)等。
  4. speech2text 语音转文字模型。
  5. tts 文字转语音模型。
  6. moderation 敏感内容审查模型,提供内容审查功能,确保不会输出包含有争议的内容,比如暴力,性和非法行为等内容。

1.2 接入模型

  • 在 Dify 的 设置 — 模型供应商 页面内添加并配置所需要的模型,本次接入模型为通义千问(接入自有模型的模型供应商),接入自有模型的供应商后,Dify 会自动接入该供应商下的所有模型。

  • 模型配置具体步骤为:进入设置-模型供应商-安装模型供应商(通义千问)-从阿里云百炼获取 API Key-配置API KEY即可完成模型配置,配置完模型后,就可以在应用中使用这些模型了。
    在这里插入图片描述

  • 系统模型配置

在这里插入图片描述

2. 构建应用

2.1 应用类型

  • 在 Dify 中,一个“应用”是指基于大语言模型构建的实际场景应用。通过创建应用,你可以将智能 AI 技术应用于特定的需求。它既包含了开发 AI 应用的工程范式,也包含了具体的交付物。一个应用为开发者交付了:
    • 封装友好的 API,可由后端或前端应用直接调用,通过 Token 鉴权
    • 开箱即用、美观且托管的 WebApp,你可以 WebApp 的模板进行二次开发
    • 一套包含提示词工程、上下文管理、日志分析和标注的易用界面
  • Dify 中提供了五种应用类型:
    • 聊天助手:基于 LLM 构建对话式交互的助手
    • 文本生成应用:面向文本生成类任务的助手,例如撰写故事、文本分类、翻译等
    • Agent:能够分解任务、推理思考、调用工具的对话式智能助手
    • Chatflow对话流:适用于定义等复杂流程的多轮对话场景,具有记忆功能的应用编排方式
    • Workflow工作流:适用于自动化、批处理等单轮生成类任务的场景的应用编排方式

2.2 构建应用方式

  • 基于应用模板创建(新手推荐):可以从导航选择 「工作室 」,在应用列表内选择 「从模板创建」
  • 创建一个空白应用:可以从导航选择 「工作室」 ,在应用列表内选择 「从空白创建 」
  • 通过 DSL 文件(本地/在线)创建应用:Dify DSL 是由 Dify.AI 所定义的 AI 应用工程文件标准,文件格式为 YML。该标准涵盖应用在 Dify 内的基本描述、模型参数、编排配置等信息。

2.3 创建面试官助手

  • 首页选择创建空白应用,填上应用名称(面试官助手),应用类型选择聊天助手
  • 编排应用,创建应用后会自动跳转到应用概览页。点击左侧菜单 编排 来编排应用
  • 填写提示词:提示词用于约束 AI 给出专业的回复,让回应更加精确。你可以借助内置的提示生成器,编写合适的提示词。提示词内支持插入表单变量,例如 {{input}}。提示词中的变量的值会替换成用户填写的值。
    在这里插入图片描述
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐