Dify部署与使用介绍-生成式 AI 应用创新引擎

Dify部署与使用介绍-生成式 AI 应用创新引擎

1. Dify概述

1.1 简介

官方网址:https://dify.ai/zh

官方对于Dify的介绍:开源的 LLM 应用开发平台。提供从 Agent 构建到 AI workflow 编排、RAG 检索、模型管理等能力,轻松构建和运营生成式 AI 原生应用。

比 LangChain 更易用。Dify融合了后端即服务(Backend as Service)和 LLMOps 的理念,使开发者可以快速搭建生产级的生成式 AI 应用。即使你是非技术人员,也能参与到 AI 应用的定义和数据运营过程中。

由于 Dify 内置了构建 LLM 应用所需的关键技术栈,包括对数百个模型的支持、直观的 Prompt 编排界面、高质量的 RAG 引擎、稳健的 Agent 框架、灵活的流程编排,并同时提供了一套易用的界面和 API。这为开发者节省了许多重复造轮子的时间,使其可以专注在创新和业务需求上。

[ 介绍解读 ]

  • LLM 应用开发平台

    • 定义与优势:指基于开源模式开发和运营的大型语言模型(LLM)应用开发平台,如Dify等。其开源特性使得开发者可以自由访问平台的代码,根据自身需求进行修改、扩展和优化,具有高度的灵活性和可定制性

    • 应用场景:适用于各种需要利用LLM构建应用的场景,如智能客服、内容创作助手、数据分析工具等,能够满足不同行业和领域的特定需求

  • agent 构建

    • Agent在LLM应用中扮演着重要角色,它能够根据预设的目标和规则,自主地调用各种工具和接口来完成复杂的任务。例如,一个用于旅游推荐的Agent可以调用天气查询、景点信息查询、酒店预订等工具,为用户提供个性化的旅游方案
  • AI workflow 编排

    • 通过可视化的工作流编排工具,开发者可以将多个AI任务按照一定的逻辑顺序和流程进行连接和组合,形成一个完整的工作流。例如,在一个文档处理应用中,可以先进行文档的预处理(如分词、去噪等),然后进行内容分析和提取,最后生成总结或报告,整个过程都可以通过编排好的工作流自动完成
  • RAG 检索能力

    • RAG(检索增强生成)原理:RAG是一种结合检索和生成的方法,它通过检索相关的信息来增强模型的生成能力。在LLM应用中,当用户提出一个问题或任务时,RAG系统会首先在大量的数据中检索与问题相关的上下文信息,然后将这些信息提供给模型,帮助模型生成更准确、更有针对性的回答。
    • 应用场景:在需要处理大量数据和知识的应用中,如智能问答系统、文档检索与分析等,RAG检索能力能够显著提高模型的性能和效果
  • 模型管理能力

    • 模型选择与集成:支持多种LLM的接入和管理,开发者可以根据应用需求选择合适的模型,并将它们集成到平台中。例如,可以选择性能强大的DeepSeek、GPT-4模型用于需要高质量文本生成的场景,也可以选择开源的Llama模型以降低成本。
    • 模型监控与优化:提供对模型运行状态的实时监控,包括模型的响应时间、准确率、资源消耗等指标。开发者可以根据这些监控数据对模型进行优化,如调整模型参数、进行模型微调等,以提高模型的性能和稳定性
  • 生成式 AI 原生应用

    • 低代码/无代码开发:为开发者提供了直观易用的界面和工具,降低了开发门槛。即使是没有丰富编程经验的人员,也可以通过简单的操作和配置,快速构建出生成式AI应用。
    • 应用部署与维护:简化了应用的部署流程,支持将构建好的应用快速部署到不同的环境中,如本地服务器、云平台等。同时,还提供了一系列的维护和管理工具,方便开发者对应用进行更新、升级和故障排除

1.2 为什么使用 Dify

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

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

在与大模型chat交互中,大模型输出一大段难以理解的英文解释,此时你希望它可以翻译为容易理解的中文版本,那么完全没必要用当前的200k版本。可是如果此时切换到普通版本,上下文会丢掉,如果继续使用200k的版本,又会觉得有点浪费。现在有很多API-WebUI可以实现自由切换定义模型的配置,但是又不够智能。如果模型可以根据问题,自由的去选择不同的模型或者是模型版本来做回答,就必须得用上模型编排。

1.3 项目架构

Dify是一个面向生成式AI应用开发的全栈式平台,旨在通过模块化设计、端到端流程支持及企业级能力,帮助用户高效构建、部署和管理智能应用。其架构围绕数据处理、服务编排、模型集成、安全运维四大核心维度展开,形成从数据输入到应用输出的闭环体系。

Dify架构图说明:


  1. 核心数据处理流程

    • Dataset ETL
      负责数据的提取(Extract)、转换(Transform)、加载(Load),用于原始数据预处理,可能支持从多种来源(如数据库、文件等)清洗和标准化数据,为后续流程提供高质量输入。

    • Dify RAG Pipeline
      基于检索增强生成(Retrieval-Augmented Generation)的流程,包含:

      • Retriever:从存储系统中检索相关上下文或知识;
      • Indexing:构建高效索引以加速检索;
      • Evaluation:对生成结果的质量和相关性进行评估优化。

  1. 存储层

    • VectorDB:存储嵌入向量,支持相似性检索(如语义搜索);

    • Relation DB:结构化数据存储(如用户信息、配置参数);

    • KG(Knowledge Graph):知识图谱存储,用于复杂关系推理。


  1. 提示词管理
    • Dify Prompts IDE
      提供提示词开发环境:
      • Playground:交互式调试提示模板;
      • Endpoint:部署提示词为API服务;
      • Version:管理不同版本的提示模板,支持迭代优化。

  1. 工作流编排与扩展

    • Orchestration Studio
      可视化编排工具,协调各模块(如检索、生成、审核)的执行流程。

    • Plugins Toolbox
      扩展工具箱,支持:

      • Workflow:自定义自动化流程;
      • Community:集成社区开发的插件;
      • Interface:对接外部系统(如第三方API)。

  1. 代理与逻辑控制
    • Dify Agent DSL
      通过领域特定语言定义代理行为:
      • Perception:环境感知(如用户输入解析);
      • Planning:生成执行计划;
      • Action:调用工具或API完成目标。

  1. LLM 运维(LLMOps)

    • Monitor:实时监控模型性能与异常;

    • Annotation:数据标注与结果修正;

    • Lifecycle:管理模型版本、训练、部署的全生命周期。


  1. 后端服务与安全

    • Dify BaaS Platform
      提供后端即服务,包括:

      • API/AgentaaS:以API或代理服务形式对外输出能力。
    • Moderation System
      内容审核与风控:

      • Filtering:敏感内容过滤;
      • Risk Assessment:风险等级评估;
      • Quality Control:生成结果质量检查。

  1. 模型层
    • LLMs
      支持多种模型来源:
      • Commercial LLMs(如GPT-4、Claude);
      • Open Source LLMs(如Llama 2、Falcon);
      • MaaS Platform:模型即服务,直接调用云端托管模型。

  1. 应用与缓存

    • App Builder
      低代码/无代码界面,供用户快速构建基于Dify的生成式AI应用。

    • Cache System
      优化性能与用户体验:

      • Logging:记录请求日志;
      • Snapshot:缓存中间状态;
      • Result:缓存高频查询结果。

  1. 数据流逻辑

    • 输入:用户Queries & Requests通过BaaS平台接入,经审核系统过滤;

    • 处理:结合Contextual DataPrompts,由RAG Pipeline生成结果;

    • 输出Outputs & Responses经缓存系统优化后返回,同时支持应用构建器直接调用。

2. Dify安装部署

  • 环境准备
    • 服务器
    • docker环境 & docker compose

项目GitHub地址:https://github.com/langgenius/dify

# 1. 下载项目(不能下载则自行浏览下载zip包进行服务器上传)
[root@ops05 ~]# git clone https://github.com/langgenius/dify.git
Cloning into 'dify'...
remote: Enumerating objects: 144441, done.
remote: Counting objects: 100% (32/32), done.
remote: Compressing objects: 100% (28/28), done.
remote: Total 144441 (delta 12), reused 7 (delta 4), pack-reused 144409 (from 2)
Receiving objects: 100% (144441/144441), 77.11 MiB | 12.94 MiB/s, done.
Resolving deltas: 100% (106495/106495), done.

# 2.进入项目-docker目录
[root@ops05 ~]# cd dify/docker/
[root@ops05 docker]# cp .env.example .env
[root@ops05 docker]# docker compose up -d

[ 注意 ]

  1. 如果服务器是现有在用的资源,需要关注yaml文件的端口冲突问题

  2. 项目启动需要的镜像比较多,如果服务器下载镜像较慢可以考虑自行下载清单上传至服务器

[root@ops05 docker]# cat docker-compose.yaml |grep image |awk -F' ' '{print $2}'
langgenius/dify-api:1.0.0
langgenius/dify-api:1.0.0
langgenius/dify-web:1.0.0
postgres:15-alpine
redis:6-alpine
langgenius/dify-sandbox:0.2.10
langgenius/dify-plugin-daemon:0.0.3-local
ubuntu/squid:latest
certbot/certbot
nginx:latest
semitechnologies/weaviate:1.19.0
langgenius/qdrant:v1.7.3
pgvector/pgvector:pg16
tensorchord/pgvecto-rs:pg16-v0.3.0
ghcr.io/chroma-core/chroma:0.5.20
quay.io/oceanbase/oceanbase-ce:4.3.3.0-100000142024101215
container-registry.oracle.com/database/free:latest
quay.io/coreos/etcd:v3.5.5
minio/minio:RELEASE.2023-03-20T20-16-18Z
milvusdb/milvus:v2.5.0-beta
opensearchproject/opensearch:latest
opensearchproject/opensearch-dashboards:latest
myscale/myscaledb:1.6.4
docker.elastic.co/elasticsearch/elasticsearch:8.14.3
docker.elastic.co/kibana/kibana:8.14.3
downloads.unstructured.io/unstructured-io/unstructured-api:latest

镜像打包 docker sava -o

镜像加载 docker load -i

示例:

[root@ops05 tmp]# docker save -o dify-api.tar langgenius/dify-api:1.0.0
[root@ops05 tmp]# docker load -i dify-api.tar

docker compose up -d启动服务后,查看各容器STATUS都已经运行起来,即可进行web-访问

我这里没做端口的改动,访问直接是http://192.170.0.117

3. Dify页面使用

Dify官方文档手册: https://docs.dify.ai/zh-hans

3.1 页面概况

  • 第一次访问,需要设置一个管理员用户

  • 注册管理员账号后可进行登录

3.2 安装模型与配置秘钥

右上角登录名菜单 -> 设置 -> 模型供应商 -> 安装

注意:如果点击安装按钮安装失败,可以点开详情,会跳转进入到https://marketplace.dify.ai/,点击下载

然后通过插件,本地安装,把下载的包传入后进行安装

安装信息对应容器为:dify-plugin-daemon:0.0.3-local

可以通过docker logs -f 99f2b13359c1查看安装信息 < 注意替换自己本地的容器id >

Dify 是一个运行在本地的 Web UI,它允许我们便捷地访问和使用各种大语言模型,但下载 Dify 并不等同于下载了这些模型本身,如果希望使用这些大模型,依然要拿到相应的 API Key。

3.3 创建应用

  • 创建应用
    • 创建空白应用
    • 从应用模版创建
    • 导入DSL文件

3种方式均可

找对应需求模版即可

3.4 聊天助手

在首页点击 “创建应用” 按钮创建应用。填上应用名称,应用类型选择聊天助手

  • 创建应用后会自动跳转到应用概览页。点击左侧菜单 编排 来编排应用。

  • 填写提示词

    提示词用于约束 AI 给出专业的回复,让回应更加精确。你可以借助内置的提示生成器,编写合适的提示词。提示词内支持插入表单变量,例如 {{input}}。提示词中的变量的值会替换成用户填写的值。

为了更好的用户体验,可以加上对话开场白:我想让你担任{{jobName}}面试官。我将成为候选人,您将向我询问{{jobName}}开发工程师职位的面试问题。

  • 提示词生成

  • 右边job_name可以定义职位

右边一个简单的面试场景就正式启用了

可以chat交互

如果想要让 AI 的对话范围局限在知识库内,例如企业内的客服话术规范,可以在“上下文”内引用知识库

Dify功能非常丰富,篇幅有限,后续再更新其它使用文章

内容概要:本文档详细介绍Dify应用开发平台的部署流程。Dify作为一个结合了BaaSLLMOps理念的开源大语言模型应用开发平台,主要面向开发者及希望参AI应用构建的人群。部署前,需保证系统已装好docker和git,这是用于拉取项目代码和运行环境的基础工具。具体部署操作分为几步执行:首先是新建dify文件夹作为存放项目的主目录,在此之下利用git指令从指定的GitHub地址克隆整个Dify源代码下来;其次是在获取的项目根路径找到docker相关脚本所在位置,依次复制配置示例环境变量,借助docker compose来一键启动所有的组件。一旦发现控制台提示共有九个容器均处于健康运转状态便标志着Dify部署完成。部署完毕后,访问浏览器输入特定URL即可打开初始设置页面录入管理后台账号基本信息,从而开始Dify之旅。 适用人群:对快速创建基于大语言模型的生成式AI应用感兴趣的初学者或者有一定编程经验想要深入定制或拓展该平台功能的技术爱好者。无论是IT专业人员还是非技术人员都可以从中受益并且参应用程序定义及其相关的数据运营管理工作中。 使用场景及目标:适用于那些想要在本地环境中试用或是进行自定义开发的企业内部研究团队或者个人开发者。其目的在于使用户能够脱离复杂的云服务搭建出一套完整的AI解决方案原型系统以便进行演示和技术验证活动。 其他说明:部署指南提供了详细的命令行操作指导,每一步都有明确指示。需要注意的是部署过程中可能涉及到较长时间等待,特别是第一次拉起全部服务时。另外还提到若无法通过命令获取代码可选择直接下载预先打包好的版本。对于网络条件不是很好或者是遇到了技术难题的情况下不失为一种折衷方法。同时提醒初次使用的用户务必牢记创建超级管理员账户所需的认证凭证资料。
Dify 是一个开源的 AI 开发框架,主要用于快速搭建和部署机器学习模型的应用。关于 Dify 后端部署的具体步骤,虽然官方文档是最好的参考来源,下面是一个简明扼要的介绍: ### Dify 后端部署简介 #### 1. 准备环境 首先确保您的服务器具备以下条件: - 操作系统:Linux 或 macOS (Windows 可能会遇到更多兼容性问题) - Python 版本:建议使用最新稳定版 Python(例如Python 3.8+) - 其他依赖项:pip, git等基本命令行工具已经安装好 #### 2. 安装 Docker 和 Docker Compose 为了简化配置管理和跨平台一致性,推荐采用容器化的方式来进行应用的打包、测试和发布。因此你需要先安装 Docker 和 Docker Compose 来支持后续的操作。 ```bash # 更新包列表并安装必要的软件包 sudo apt-get update && sudo apt-get install -y docker.io docker-compose ``` 如果你不是用的是其他发行版 Linux 或者 Windows/MacOS,请参照[Docker官网](https://docs.docker.com/get-docker/)获取适合您系统的安装指南。 #### 3. 获取项目源码 克隆 Dify GitHub 仓库到本地计算机上: ```bash git clone https://github.com/dify-community/dify.git cd dify ``` #### 4. 配置环境变量 进入项目的根目录后,复制 `.env.example` 文件生成一个新的文件名为 `.env`, 并根据需求修改其中的各项设置值,比如数据库连接字符串、密钥之类的敏感数据应该妥善保管。 #### 5. 使用 Docker 组建启动服务 现在你可以直接使用 `docker compose` 命令来构建镜像并将所有相关的微服务一键式启动起来: ```bash docker compose up -d --build ``` 此命令将会拉取最新的依赖库,创建所需的网络及卷映射,并按照给定的服务定义逐步初始化各个组件直到整个应用程序完全可用为止。 #### 6. 访问管理界面 如果一切顺利的话,默认情况下 API 就会在 http://localhost:8000 上提供访问了。您可以打开浏览器查看API是否正常工作,同时也可以通过Swagger UI等调试工具对其进行探索。 --- 需要注意的是,在生产环境中正式上线前还需要进一步调整安全策略、性能优化等方面的问题,以上只是一个简单的入门教程。对于详细的参数选项说明及其他高级功能请务必查阅官方提供的 [Dify 文档](https://github.com/dify-community/dify) 中的相关章节。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王亭_666

感觉对你有帮助,谢谢支持一下~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值