AB
AiBoss站
教程

Dify

教程

在 Dify 中完成应用创建、数据集管理与模型训练评估

面向初次接触 Dify 的读者,按工作台顺序讲清基础操作:认识界面分区、上传并清洗数据集、创建应用并配置模型与变量、接入知识库或工具、训练与评估模型,最后发布给真实用户试用。每一步都给出可照做的操作与代码示例,并说明常见坑与易变信息的核对方式。

Dify 是一个用于搭建生成式 AI 应用的平台:把模型、提示词、知识库、工具和变量组合成一个可运行的应用,再发布给真实用户使用。它适合想快速把想法做成可试用产品的人,也适合需要把大模型能力接入业务流程的团队。基础操作并不只是点几个按钮,而是一条有顺序的操作线:先建应用,再配模型和变量,接着接知识库或工具,最后发布并试用。这篇教程就按这条线走一遍,每一步给出可照做的操作与代码。站内也整理了 Dify 的工具条目,可以先看一眼再动手。

需要提前说明的是:Dify 的界面布局、菜单名称、支持的模型与文件格式会随版本变化,本文描述的是基础操作的主干流程。涉及价格、配额、可用模型清单这类易变信息,请以官网当前信息为准。

准备工作

在开始操作之前,先把下面几件事确认好,能省掉后面大量返工。

  • 一个可用的 Dify 实例:可以是自建部署,也可以是已开通的云端工作区。自建部署需要先完成环境搭建与配置检查,确认 Python、依赖、数据库都正常,服务能启动并登录进去。如果登录后页面能正常打开、侧边栏能展开,说明环境这一关已经过了。
  • 至少一个可调用的模型供应商:应用要跑起来必须有模型可用。在模型管理里配置好供应商与密钥,确认模型列表里能看到目标模型。没有可用模型时,应用可以创建,但无法运行测试。
  • 一份准备好的数据材料:如果应用需要基于自有资料回答,先准备好文档或表格文件。素材中提到的支持格式包括 CSV、JSON 等,实际上传时以界面提示的可选格式为准。
  • 一个明确的应用目标:每建一个应用,都给它写一行说明——解决什么问题、用哪份材料、谁负责验收。应用多了以后,这一行说明能避免工作台变成杂物间。
  • 本地可选的辅助环境:如果要在上传前自己先清洗数据,准备一个能运行 Python 的环境,装好 pandas 即可。

操作步骤

第一步:认识界面分区

进入 Dify 后,先花几分钟熟悉界面。整体布局比较直观,主要分三块:

  • 侧边栏:快速访问不同功能模块,例如模型管理、数据上传、任务管理等。后续所有操作基本都从这里进入。
  • 工作区:显示当前操作的详细信息和状态,进度和结果都在这里查看。
  • 状态栏:显示当前操作状态,以及系统提示和通知。

熟悉这三块之后,操作路径就清楚了:从侧边栏进入某个模块,在工作区完成配置,通过状态栏确认结果。

第二步:上传数据集

如果应用需要基于自有资料工作,第一步是把资料变成平台里的数据集。

  1. 从侧边栏进入数据集管理模块。
  2. 点击上传数据集的入口,选择本地要上传的文件。素材中列出的支持格式包括 CSV、JSON 等,具体可选格式以界面上显示的为准。
  3. 确认上传。平台会自动解析数据并生成预览。
  4. 上传完成后,在数据集管理列表里点击对应数据集,进入预览页面。

上传环节最常见的坑是文件编码与表头不规范:列名缺失、分隔符不一致、混入大量空行,都会让解析结果和预期不符。建议上传前先在本地打开确认一遍结构。

第三步:预览与清洗数据集

数据集上传成功后,在预览页面可以查看数据的基本信息,并进行清洗和预处理,例如删除空值、过滤噪声数据。平台提供了可视化界面完成这些操作;如果数据量较大或规则较复杂,也可以先在本地用脚本处理好再上传。

下面是一段读取与预处理 CSV 的示例代码,可作为上传前的清洗模板:

import pandas as pd

# 读取数据集
data = pd.read_csv('data.csv')

# 显示数据集的前五行
print(data.head())

# 删除空值
data = data.dropna()

# 过滤某一特定条件的数据
threshold = 10
filtered_data = data[data['column_name'] > threshold]

# 查看清洗后的规模
print(filtered_data.shape)

这段代码做了三件事:确认数据结构、去掉含空值的行、按某一列的阈值过滤。实际使用时把 column_name 换成自己的列名,把 threshold 换成业务上合理的阈值。清洗后的结果另存为新文件再上传,原始文件保留一份,便于回溯。

第四步:创建应用并配置模型与变量

数据集准备好之后,回到工作台创建应用。创建时先选定应用类型,再进入编排界面。编排界面里需要完成三件事:

  • 选择模型:从已配置的模型供应商中挑选本次要用的模型。不同模型在速度、成本、上下文长度上差异明显,先用一个够用的模型把流程跑通,再考虑替换。
  • 填写提示词:把应用要解决的问题、输入输出的约定写清楚。提示词里可以引用变量,让同一套逻辑适配不同输入。
  • 配置变量:把需要用户填写或系统传入的内容定义成变量,例如查询内容、用户标识、筛选条件。变量定义好之后,提示词和后续节点都可以引用。

这一步的判断标准很简单:创建应用、选择模型、填写提示词、运行测试并保存发布,这个完整闭环跑通之后,再增加复杂节点。不要在流程还没跑通时就堆叠分支和工具调用。

第五步:接入知识库或工具

基础问答跑通后,按需扩展能力。两条常见路径:

  • 接入知识库:把第二步上传的数据集关联到应用,让回答基于自有资料。关联后需要实际提问验证检索是否命中预期内容,而不是只看配置成功。
  • 接入工具:让应用调用外部能力,例如查询接口、执行计算。工具接入后同样要单独测试一次,确认参数传递正确。

扩展的顺序建议是:先只接一个知识库或一个工具,验证通过后再加第二个。一次加多个,出问题时很难定位是哪一环。

第六步:训练模型

如果使用平台内的模型训练能力,从侧边栏进入模型管理模块,点击训练模型的入口,然后指定以下信息:

  1. 选择数据集:从之前上传的数据集中选择本次训练要用的那一份。
  2. 选择模型类型:平台支持多种模型类型,包括分类、回归等,按任务性质选择。
  3. 设定参数:可以调整学习率、迭代次数、批大小等模型参数。

参数没有通用最优值,取决于数据规模和任务难度。稳妥的做法是先用默认参数跑一轮,看评估结果,再针对性地调整单个参数,每次只改一个,便于判断影响。

第七步:评估模型

训练完成后进入评估环节。平台会自动计算准确率、召回率等指标并给出分数,评估界面中也可以生成可视化图表,帮助分析模型表现。

看指标时注意两点:一是准确率高不代表各类别都表现好,要结合分类别的结果看;二是评估用的数据应当与训练数据分开,否则分数会虚高。如果指标不理想,回到第六步调整参数或补充数据,而不是直接发布。

第八步:发布并试用

流程验证通过后,把应用发布出去,交给真实用户试用。发布前再确认一遍:提示词里的变量都有默认值或必填校验,知识库关联的是正确版本的数据集,模型选择与预期一致。试用阶段收集真实提问,作为下一轮优化的输入。

一个完整示例

下面把上面的步骤串成一个最小可跑通的例子:做一个基于自有资料回答问题的应用。

  1. 准备数据:整理一份 CSV,第一行为表头,内容为常见问题与标准答案。用上面的示例代码检查前五行、删除空值,另存为 faq_clean.csv。
  2. 上传数据集:从侧边栏进入数据集管理,上传 faq_clean.csv,确认解析预览中的列名与行数与预期一致。
  3. 创建应用:在工作台新建应用,进入编排界面。
  4. 配置模型:选择一个已配置好的模型。
  5. 定义变量:新增一个变量,例如 question,用于接收用户提问。
  6. 填写提示词:在提示词中引用 question,并约定回答只依据检索到的资料,资料中没有的内容明确说明无法回答。
  7. 关联知识库:把第二步上传的数据集关联到应用。
  8. 运行测试:输入一个数据集里明确有答案的问题,确认回答引用了正确内容;再输入一个数据集里没有的问题,确认应用按约定说明无法回答。
  9. 保存并发布:两项测试都通过后保存,发布给试用用户。

这个例子的价值在于它覆盖了完整闭环:数据、模型、提示词、变量、知识库、测试、发布。闭环跑通之后,再往里加工具调用、多轮分支或模型训练,出问题时才有对照基线。

注意事项

  • 先闭环,后复杂:创建应用、选择模型、填写提示词、运行测试、保存发布这五步没跑通之前,不要增加复杂节点。这是排查问题成本最低的顺序。
  • 每个应用写一行说明:解决什么问题、用哪份材料、谁负责验收。应用数量增长后,这一行说明是工作台保持可用的关键。
  • 文件格式与编码:上传前确认表头完整、编码统一、空行已清理。解析结果异常时,优先怀疑源文件而不是平台。
  • 训练参数逐个调:学习率、迭代次数、批大小一次只改一个,否则无法判断是哪个参数带来了变化。
  • 评估数据要独立:用训练数据本身做评估会得到虚高的分数,评估集应当与训练集分开。
  • 易变信息以官网为准:模型供应商清单、可用模型、文件格式支持、配额与价格都会随版本和套餐变化,操作前以官网当前信息为准。
  • 发布前再测一次:配置改动后重新跑一遍测试用例,尤其是关联的数据集或模型被替换过的情况。