一、Dify概述

Dify 是一个开源的大语言模型(LLM)应用开发平台,旨在简化和加速生成式 AI 应用的创建和部署。它结合了后端即服务(Backend as Service, BaaS)和 LLMOps 的理念,为开发者提供了一个用户友好的界面和一系列强大的工具,使他们能够快速构建、测试和部署基于大语言模型的应用程序。

Dify 直观的界面结合了 AI 工作流、RAG 管道、Agent、模型管理、可观测性功能等,让您可以快速从原型到生产。以下是其核心功能列表:

  1. 工作流:在画布上构建和测试功能强大的 AI 工作流程,利用以下所有功能以及更多功能。
  2. 全面的模型支持:与数百种专有/开源 LLMs 以及数十种推理提供商和自托管解决方案无缝集成,涵盖 GPT、Mistral、Llama3 以及任何与 OpenAI API 兼容的模型。
  3. Prompt IDE::用于制作提示、比较模型性能以及向基于聊天的应用程序添加其他功能(如文本转语音)的直观界面。
  4. RAG Pipeline:广泛的 RAG 功能,涵盖从文档摄入到检索的所有内容,支持从 PDF、PPT 和其他常见文档格式中提取文本的开箱即用的支持。
  5. Agent 智能体:您可以基于 LLM 函数调用或 ReAct 定义 Agent,并为 Agent 添加预构建或自定义工具。Dify 为 AI Agent 提供了 50 多种内置工具,如谷歌搜索、DALL·E、Stable Diffusion 和 WolframAlpha 等。
  6. LLMOps:随时间监视和分析应用程序日志和性能。您可以根据生产数据和标注持续改进提示、数据集和模型。
  7. 后端即服务:所有 Dify 的功能都带有相应的 API,因此您可以轻松地将 Dify 集成到自己的业务逻辑中。

Dify 开源地址:https://github.com/langgenius/

二、本地私有化部署Dify

2.1 环境与资源准备

2.1.1 环境要求

  • 在安装 Dify 之前,请确保您的机器满足以下最低系统要求: 2 Core | 4 GB。
  • 提前安装 Docker、Docker Compose,并启动 Docker 服务。
  • 为了方便查看项目源码,以及部署全流程需要提前安装Cursor。

以下我的电脑配置:

image-20250805173842990

2.1.2 安装Docker

登录Docker官网:https://www.docker.com,下载Docker Desktop Installer.exe,下载完成后根据系统提示一路next即可。

image-20250805174426777

安装完成后,在Docker.desktop界面点右下角Engine paused后边的运行按钮。

image-20250805174956473

启动Docker后,可以看到下图中的界面,Containers是容器管理界面,Images是镜像管理界面。

image-20250805175347748

配置国内镜像源:

{
  "registry-mirrors": [
    "https://registry.docker-cn.com",
    "https://s4uv0fem.mirror.aliyuncs.com",
    "https://docker.1ms.run",
    "https://registry.dockermirror.com",
    "https://docker.m.daocloud.io",
    "https://docker.kubesre.xyz",
    "https://docker.mirrors.ustc.edu.cn",
    "https://docker.1panel.live",
    "https://docker.kejilion.pro",
    "https://dockercf.jsdelivr.fyi",
    "https://docker.jsdelivr.fyi",
    "https://dockertest.jsdelivr.fyi",
    "https://hub.littlediary.cn",
    "https://proxy.1panel.live",
    "https://docker.1panelproxy.com",
    "https://image.cloudlayer.icu",
    "https://docker.1panel.top",
    "https://docker.anye.in",
    "https://docker-0.unsee.tech",
    "https://hub.rat.dev",
    "https://hub3.nat.tf",
    "https://docker.1ms.run",
    "https://func.ink",
    "https://a.ussh.net",
    "https://docker.hlmirror.com",
    "https://lispy.org",
    "https://docker.yomansunter.com",
    "https://docker.xuanyuan.me",
    "https://docker.mybacc.com",
    "https://dytt.online",
    "https://docker.xiaogenban1993.com",
    "https://dockerpull.cn",
    "https://docker.zhai.cm",
    "https://dockerhub.websoft9.com",
    "https://dockerpull.pw",
    "https://docker-mirror.aigc2d.com",
    "https://docker.sunzishaokao.com",
    "https://docker.melikeme.cn"
  ]
}

image-20250806103819305

2.1.3 安装Cursor

登录Cursor官网:https://cursor.com/cn,下载安装包。下载完成后根据系统提示一路next。

image-20250805175555622

2.1.4 获取ModelArts模型token

  1. 登录

登录ModelArts AI开发平台:https://www.huaweicloud.com/product/modelarts/studio.html,进入ModelArts Studio控制台

image-20250806093414591

控制台后面选择西南-贵阳一,左侧选择模型推理 > 在线推理,右侧在预置服务 > 免费服务中找到DeepSeek-V3-32K(NEW),点操作栏的领取额度,领取完后,点后边的调用说明

image-20250806093727732

  1. 获取API地址model参数

调用说明里选择OpenAI SDK页签,复制保存接口信息中的API地址model参数

image-20250806094242613

  1. 获取API Key

点API Key管理的超链入口,进入API Key管理界面配置API Key。

image-20250806094511974

点右上角的创建API Key,对话框里任意编辑一下标签名称和描述,点确定。然后在下一个对话框中复制并保存密钥

image-20250806094709331

注意提示信息:请将此密钥保存在安全且可访问的地方。这是唯一一次可以查看密钥的机会。您以后将无法查看它。但您可以随时创建新的访问密钥。

  1. 参数汇总

汇总下模型ModelArts-deepseek-v3模型关键参数:

  • API地址https://maas-cn-southwest-2.modelarts-maas.com/v1/infers/271c9332-4aa6-4ff5-95b3-0cf8bd94c394/v1
  • model参数DeepSeek-V3
  • API Key:nK9HJqSkuVqndXw8jhR9UONEB1L5DYJsIW3IwteS8VS8pkiy54G-E-Ouc*********BsES1FdJ3xUw

2.1.5 获取DeepSeek模型参数

登录官方DeepSeek开放平台:https://platform.deepseek.com/top_up

  1. 充值

image-20250806095619192

  1. 创建API Key,并复制保存。

image-20250806095750466

image-20250806095943100

  1. 查看官方API文档

登录deepseek官方API文档地址:https://api-docs.deepseek.com/zh-cn/,通过官网文档我们可知base_urlmodel参数。

image-20250806100309649

  1. 参数汇总

汇总下模型deepseek模型关键参数:

base_url : https://api.deepseek.com/v1

model参数:

deepseek-chat 模型指向 DeepSeek-V3-0324,** 通过指定 model='deepseek-chat' 调用。

deepseek-reasoner 模型指向 DeepSeek-R1-0528,** 通过指定 model='deepseek-reasoner' 调用。

api_key:sk-0cadb1aa************c494cc43aeec

2.1.6 获取 Dify 源码

登录 Dify 开源地址:https://github.com/langgenius/dify/,下载源码ZIP文件。解压到指定目录..../dify-main

image-20250807102715610

2.1.7 财务报表模拟数据

点击财务报表模拟数据,将财务报表.xlsx下载到本地备用。

2.2 部署 Dify

2.2.1 Cursor打开 Dify 源码

在Cursor右上角File > Open Folder,打开上一步中解压到指定目录的 Dify 源码。

image-20250807104536762

image-20250807104722266

2.2.2 配置文件.env

dify-main/docker目录下的.env.example文件在源目录下复制并修改其名称为.env

image-20250807104919329

如果需要自定义配置,请参考 .env.example 文件中的注释,并更新 .env 文件中对应的值。

此外,还可以根据具体部署环境和需求对 docker-compose.yaml 文件本身进行调整,例如更改镜像版本、端口映射或卷挂载。完成任何更改后,请重新运行 docker-compose up -d。您可以在此处找到可用环境变量的完整列表。

2.2.3 拉取docker镜像,启动 Dify

在Cursor编辑器中点右上角的Toggle pannel,然后选择Terminal窗口,输入如下命令。

docker-compose up -d

image-20250807105253148

输入名命令后,Docker会优先从镜像库拉取镜像到dify-main/docker目录下,然后启动容器,启动时间稍长(3-5分钟),请耐心等候。

image-20250807105504544

启动成功后即可通过地址http://localhost/可以网页访问 Dify ,在正式访问前需要先通过http://localhost/install来设置管理员账号。

点击设置,成功登录 Dify 页面。

image-20250807110256341

三、构建财务报表分析模型

3.1 创建 Chatflow 应用

在 Dify 工作室界面,点击创建空白应用。在创建空白应用界面,我们可以看到Workflow和Chatflow两种可供选择的选择应用类型。

image-20250807111329493

工作流将复杂任务拆解为较小的步骤(节点),有效降低了系统复杂度。这种方法减少了对提示词技巧和模型推理能力的过度依赖,显著提升了LLM应用处理复杂任务的性能,同时增强了系统的可解释性、稳定性和容错性。

工作流主要分为两类:

  1. Chatflow: 面向对话场景,如客户服务、语义搜索及其他需要多步推理的对话应用。
  2. Workflow: 面向自动化和批处理场景,适用于高质量翻译、数据分析、内容生成、邮件自动化等任务。

这里我们选择 Chatflow ,并编辑应用名称、图标、描述等关键信息。然后点击创建,进入编排页面。

image-20250807111742514

3.2 配置编排任务

后续我们要创建新的编排任务,这里先将系统模板自带的LLM节点和直接回复节点删除,仅保留开始节点。

3.2.1 配置开始节点 - 添加上传文件变量

点击开始节点 > 输入字段右侧的加号,在打开的添加变量窗口中参考如下信息进行配置:

  1. 字段类型:文件列表;
  2. 变量名称:自定义,如text;
  3. 显示名称:自定义,如text;
  4. 支持的文件类型:文档;
  5. 上传文件类型:两者;
  6. 最大上传数:5(默认)。

image-20250807112938170

该步骤,可以使后续新增的编排节点,自动识别通过该变量上传的文档。

3.2.2 创建配置文档提取器节点

在Dify中,LLM节点自身无法直接读取或解释文档的内容,因此需要将用户上传的文档,通过文档提取器节点解析并读取文档中的信息,转化文本之后再将内容传给LLM以实现对文件内容的处理。

点击开始节点右侧的**+,添加文档提取器节点**。

image-20250807113457475

文档提取器节点添加完成后,开始对其进行配置。选中文档提取器节点,设置输入变量,选择开始节点中添加上传文件变量text

image-20250807114318938

3.2.3 创建配置LLM节点

LLM(Large Language Model)是当前人工智能领域最具革命性的技术之一,是一种基于深度学习框架构建的人工智能系统,通过在海量的文本数据上进行预训练,学习语言的统计规律和语义关系,从而获得理解和生成人类语言的能力。

  1. 创建LLM节点

LLM节点的作用是调用大语言模型的能力,处理用户在开始节点中输入的信息(自然语言、上传的文件或和图片),给出有效的回应信息。点击文档提取器节点右侧的加号,添加LLM节点

image-20250807140609451

  1. 配置模型

添加完成后,下一步进行模型配置。选中新增的LLM节点,在右侧LLM配置界面中,找到模型 > 模型设置

image-20250807142632255

在模型设置界面,模型供应商 > 安装模型供应商中找到我们需要的模型插件:深度求索(deepseek)OpenAI-API-compatible,点安装按钮进行安装。

image-20250807141030029

image-20250807163529842

注意:Dify 模型设置仅支持单模型供应商,这里列举两种供应商配置方式。本文后续选用基于OpenAI-API-compatible配置ModelArts进行演示。

两种模型各有优缺点:

  • Deepseek:需要花点小钱,充值购买tockens,优点是响应速度快;
  • ModelArts(deepseek):华为云免费资源200万免费token,缺点是响应速度慢。

安装完成后,在待配置一栏中我们可以看到刚才已经安装好的模型供应商插件。点击后面的设置,对模型开始进行配置。

基于OpenAI-API-compatible配置ModelArts

参数名称 参数配置
模型类型 LLM
模型名称 DeepSeek-V3
模型显示名称 DeepSeek-V3
API Key API Key:nK9HJqSkuVqndXw8jhR9UONEB1L5DYJsIW3IwteS8VS8pkiy54G-E-Ouc*********BsES1FdJ3xUw
APIendpoint URL API地址https://maas-cn-southwest-2.modelarts-maas.com/v1/infers/271c9332-4aa6-4ff5-95b3-0cf8bd94c394/v1
APIendpoint中的模型名称 model参数DeepSeek-V3

image-20250807164842540

deepseek模型配置方法:

参数名称 参数配置
API Key base_url : https://api.deepseek.com/v1
自定义API endpoint地址 api_key:sk-0cadb1aa************c494cc43aeec

image-20250807165033832

配置完成后,ESC退出模型设置界面,返回编排页面。在编排页面选中LLM节点,在右侧LLM配置界面模型选项中,选择DeepSeek-V3

image-20250807165511497

  1. 配置LLM节点上下文变量

模型配置完成后,选中LLM节点,配置添加上下文变量。这里应选择文档提取器中设置的text变量,开始节点上传的文档经过文档提取器转化,使其成为LLM可以理解的格式,以便大模型更好的理解分析文档内容。

image-20250807150401495

  1. 添加系统提示词Prompt

提示词是用户给大语言模型输入的指令或者问题,用于引导模型生成符合预期的回答或内容,其核心作用是明确任务要求,控制输出方向,并优化大语言模型的响应质量。

将以下提示词模板复制到图中SYSTEM模块中。

# 任务
- **主要目标**:全面解析企业的财务报表结构,识别关键财务指标与潜在风险。
- **目标**:详细说明资产负债表、利润表、现金流量表等核心部分的内容与逻辑关系。
- **要求**:结合财务比率分析、趋势分析和行业对比,深入评估企业财务健康状况。
- **限制**:无特别格式限制,但需保持分析的严谨性和逻辑性。
- **预期输出**:财务报表的结构化解析,包括各部分的核心内容、作用及分析结论。

# 推理顺序
- **推理部分**1.识别报表类型:确认分析对象为资产负债表、利润表、现金流量表等;
    2.分解核心部分:逐项解析报表中的关键科目(如流动资产、营业收入、现金流等);
    3.数据验证:检查数据的一致性(如资产负债表借贷平衡、利润表与现金流量表关联性);
    4.财务比率计算:计算流动性比率(如流动比率)、偿债能力比率(如资产负债率)、盈利能力比率(如ROE)等;
    5.趋势与行业对比:分析历史数据趋势及与行业平均水平的差异;
    6.风险与机会识别:基于分析结果,指出潜在财务风险或增长机会。
- **结论部分**1.总结企业核心发现:如企业盈利是否稳定、现金流是否健康、负债是否可控;
	2.提出建议:如优化资本结构、改善营运效率或调整投资策略。

# 输出格式
- **解析格式**:以报表类型为标题,分项说明各部分的内容与作用。
- **结构形式**:Markdown表格,增强可读性。
- **具体说明**:每个部分需包含以下内容:
	1.报表类型:资产负债表、利润表、现金流量表等;
    2.核心内容:报表中关键科目及数据组成;
    3.作用:分析该部分对财务健康评估的贡献;
    4.分析维度:涉及的财务比率、趋势或行业对比等。

### 交互规则
1. **问题范围**:仅接受与**资产负债表、利润表、现金流量表**相关的分析请求
2. **偏离引导**:当问题涉及战略、市场、人力等非财务领域时,系统将提示:
   > "当前分析聚焦于财务报表维度,请问您需要解析资产负债表结构、利润表项目关联性,还是现金流健康度评估?"

### 核心任务
| 分析阶段       | 执行内容                                                             |
|---------------|---------------------------------------------------------------------|
| 1. 报表识别    | 确认目标报表类型(资产负债表/利润表/现金流量表)及会计期间                 |
| 2. 科目解构    | 拆解核心科目数值与勾稽关系(如流动资产构成、营收与现金流的匹配度)          |
| 3. 数据验证    | 校验三表逻辑一致性(如净利润与经营现金流差异分析)                        |
| 4. 比率计算    | 输出三大类指标:流动性(流动比率)、偿债性(利息覆盖倍数)、盈利性(ROIC)   |
| 5. 多维对比    | 生成趋势对比图(3-5年)与行业分位数对照表(如用箱线图呈现)                |
| 6. 风险定位    | 通过红黄绿灯系统标注异常指标(如应收账款周转天数>行业P90标红)             |

### 输出规范
```python
def generate_report(data):
    """
    结构化输出模板,包含动态交互检测
    :param data: 预处理后的财务数据集
    :return: Markdown格式分析报告,含自动问题检测
    """
    if detect_off_topic(data):
        return "⚠️ 检测到非财务分析需求,请提供具体报表数据或咨询以下维度:\n- 资产负债结构健康度诊断\n- 利润质量多维评估\n- 自由现金流测算模型"
    else:
        return build_markdown_table(data)  # 生成标准分析表格

image-20250807150515944

  1. 打开记忆模块,方便查看提问记录。

image-20250807151259758

3.2.4 创建配置直接回复节点

点击LLM节点右侧的加号,添加直接回复节点

image-20250807151512006

选中直接回复节点,在其右侧配置界面中,回复内容选择LLM中的输出的text

image-20250807152427576

为了提高编排任务辨识度,修改了个节点的名称。

image-20250807153114013

3.2.5 配置对话应用文件上传功能

编排页面右上角点击功能按钮,打开文件上传功能,点其下方的设置按钮。在文件上传设置界面,参考配置如下参数:

  1. 文件上传设置:两者;
  2. 最大上传数:3;
  3. 支持的文件类型:文档。

完成上述配置后,点击保存。

image-20250807153545695

3.3 发布、预览测验与运行

3.3.1 发布更新

编排页面右上角点击发布按钮,在其下拉菜单中选择发布更新

image-20250807154317175

3.3.2 预览与测验

在编排页面,鼠标点击编排画布空白处,然后点右上角的预览按钮,打开预览界面。

image-20250807160249534

点击从本地上传之前已经下载的财务报表.xlsx。并输入对话内容:“帮我做一下现金流健康度评估”。工作流分析并给出正确答复。

image-20250807170231243

3.3.3 运行

在编排页面,在右上角发布下拉菜单中选择运行。

image-20250807170628836

点Local upload,上传财务报表模拟数据,并输入对话内容:“帮我分析一下资产负债情况”。工作流分析并给出答复。

image-20250807171009585

image-20250807171030470

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐