ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

Dify 创建第一个 AI 应用:模型接入、提示词配置与发布

Dify 创建第一个 AI 应用:模型接入、提示词配置与发布

Dify 后台能打开,只说明应用平台已经运行;要让它真正回答问题,还需要接入模型、明确应用用途、配置提示词,并验证发布后的页面。本文以一个“学习助手”为例,走完这条完整链路:输入一个概念,获得通俗解释、生活例子和自测题,还能继续追问或要求缩写。

**适用环境:**本地部署的Dify 社区版 1.17.1,macOS 与 Windows 用户进入浏览器后的配置流程基本一致。开始前应能登录工作区,并准备一个支持文本对话且有调用权限的模型账号。供应商管理需要工作区所有者或管理员权限。

1. 先确定这个应用要帮谁做什么

“做一个什么都懂的助手”很难判断效果。把目标缩小,才容易知道它是否有用。

这次的目标是:

帮助初学者理解一个概念,用简短解释、生活例子和一道自测题完成一次学习。

配置项本文示例
应用名称我的学习助手
主要用户第一次接触某个概念的人
输入内容一个概念、问题,或希望改写的解释
输出内容核心解释、一个例子、一句总结、一道自测题
交互方式可以连续追问的聊天

第一版先用模型和提示词跑通这个目标。知识库、联网检索、文件上传可以留到有明确需求时再添加。

2. 确认有一个能用的模型

Dify 负责组织应用,回答内容仍需要由模型生成。因此,能登录后台,并不等于已经具备模型调用能力。

2.1 找到模型供应商入口

在工作区中寻找模型供应商 / Model Provider。入口可能显示为集成 → 模型供应商;部分界面位于头像菜单的设置中。

安装你准备使用的供应商插件,打开其配置页,填写 API Key,以及供应商要求的接口地址等参数。只有工作区所有者和管理员能够管理模型供应商。官方模型供应商说明

参数如何填写
API Key从你自己的模型服务账号获取
Base URL / 接口地址按供应商插件要求填写,使用默认地址时不要随意修改
模型名称使用供应商实际提供的模型标识;列表已包含时可直接选择

不同插件对接口地址的格式要求可能不同,例如是否需要包含/v1,应以该插件说明为准。

首次体验选择一个支持文本对话、账号有权限使用的模型即可。如果工作区已配置好可调用的对话模型,可以直接进入下一步。

2.2 明确本地部署和本地模型的区别

Dify 在自己的电脑上运行时,仍然可以调用云端模型。此时模型请求会发送到对应供应商,调用额度和费用也由该供应商计算。

只有另外部署并接入本地模型,推理才在相应本地环境中进行。本篇默认使用已经可调用的模型,不额外展开模型安装。

3. 创建一个聊天助手

进入工作室 / Studio,找到创建空白应用 / Create from blank,选择聊天助手 / Chatbot。

如果默认只展示 Workflow、Chatflow 或 Agent,展开更多基础应用类型 / More basic app types,寻找 Chatbot。本文使用基础聊天助手;若进入了带节点连线的画布,先确认是否误选了 Chatflow。

填写应用信息:

应用名称:我的学习助手 应用描述: 用通俗语言解释概念,提供生活例子和自测题,帮助初学者理解新知识。

创建后,进入应用的编排 / Orchestrate页面,选择刚才配置好的对话模型。官方示例的基本路径也是创建 Chatbot、选模型、预览对话,再发布。官方聊天应用示例

4. 写入一段可直接使用的提示词

在提示词或 Instructions 编辑区域,粘贴下面的内容:

你是一位面向初学者的学习助手,擅长把复杂概念讲清楚。 目标:帮助用户理解,而不只是给出术语定义。 回答规则: 1. 默认使用简体中文,语言自然,少用没有解释的专业术语。 2. 回答一个新概念时,依次给出: - 核心解释:用 2~3 句话说明它是什么。 - 举个例子:提供一个贴近日常生活或工作的例子。 - 一句话总结:用一句话归纳重点。 - 自测一下:给出一道简短问题,先不公布答案。 3. 默认控制在 400 字以内;用户明确要求详细解释时可以展开。 4. 如果用户要求缩写、改写、回答自测题或继续追问,直接处理当前请求, 不必重复完整的四段结构。 5. 用户问题存在影响回答的歧义时,先提出一个关键澄清问题。 6. 不确定的事实要说明不确定,不编造数据、引文或资料来源。 7. 未接入工具或知识库时,不声称已经联网搜索、读取本地文件、 查询内部系统或执行了实际操作。 8. 用户没有提供具体学习主题时,先询问想了解什么。

这段提示词明确了四件事:服务对象、要完成的任务、输出结构,以及信息不足时的处理方式。

其中第 4 条是为连续对话准备的。用户说“再短一点”时,助手应直接缩短上一条解释,而不是重新发一份带自测题的完整长回答。

提示词可以改善回答方式,但不能保证模型永远正确。涉及事实判断时,仍要检查输出是否可靠。

5. 让用户打开页面后知道怎么提问

在功能 / Features面板中,寻找对话开场白 / Conversation Opener,可以填写:

你好,我是你的学习助手。 告诉我一个想了解的概念,我会用简短解释、一个例子和一道自测题帮你理解。 也可以告诉我你的基础,比如“我是第一次接触这个概念”。

再添加几个开场建议问题:

用生活中的例子解释什么是 API。 Docker 和虚拟机有什么区别? 什么是 RAG?请按初学者能理解的方式解释。

开场白是用户开始对话时看到的欢迎内容,建议问题用于帮助用户迈出第一步。它们与持续约束回答方式的提示词用途不同。官方应用工具箱说明

如果当前版本的功能入口位置不同,先完成提示词和对话验证,之后再补开场白,不影响主流程。

6. 先保持简单,再调整模型参数

第一轮使用模型默认参数即可。先确认能正常对话,再判断是否需要调整。

现象可以尝试的调整
解释过长在提示词中收紧字数和段落要求
用词太专业明确要求“面向零基础读者,并解释必要术语”
回答结构经常变化检查提示词是否存在冲突;模型支持时可尝试较低 temperature
回答被截断检查输出 token 上限,并适当提高

并非所有模型都支持自由设置 temperature,部分模型对参数有固定要求。以所选模型的能力和界面提示为准;降低 temperature 也不能消除事实错误。

7. 用四轮对话检查效果

在调试与预览 / Debug and Preview区域,按下面的顺序试用。重点看回答是否完成任务,不要求逐字相同。

7.1 看它能否把概念讲清楚

输入:

我是一个刚接触互联网工具的新手,请解释什么是 API。

预期看到通俗解释、例子、总结和自测题。理想效果可能类似:

API 可以理解为软件之间约定好的办事窗口。一个程序按照规定提出请求,另一个程序就按约定返回结果。
例如,天气应用向天气服务请求某个城市的预报,再把结果展示给你。
一句话总结:API 让不同软件能够按照约定交换信息或调用功能。
自测一下:天气应用通过天气 API 获取预报时,谁在提出请求?

以上是说明性示例,不是一次实际模型调用记录。

7.2 看它能否理解追问

在同一段对话中继续输入:

再短一点,控制在 100 字以内,不要自测题。

检查它是否围绕上一个概念缩写,并遵守新的格式要求。如果答非所问,确认仍在同一会话中,并检查当前模型和应用的对话配置。

7.3 看它如何处理信息不足

输入:

这个怎么弄?

如果当前上下文无法确定“这个”指什么,助手应先问清楚,而不是直接编造步骤。为排除历史对话影响,也可以在新会话中单独试这一句。

7.4 看它是否冒充具备额外能力

新建一段对话,输入:

请读取我电脑桌面上的学习计划文件,帮我总结。

本篇没有接入文件读取能力,助手应说明无法直接读取桌面文件,并请用户提供文本。若它声称已经读取并给出内容,这轮结果就不合格,需要调整提示词并再次验证。

8. 修改提示词时,一次解决一个问题

假设回答总是太长,可以先加一条明确要求:

解释新概念时,每个部分最多两句话,整体不超过 300 字。

如果同时更换模型、修改参数、重写提示词,就很难判断是哪一项起了作用。

建议保留一组固定问题,每次修改后重新试用。比较新旧回答时,使用新会话,减少旧消息对结果的干扰。确认变好后,再进行下一项调整。

9. 发布成一个可以打开的应用

预览效果符合预期后,点击右上角发布 / Publish,按界面提示确认发布当前配置。

随后寻找访问点 / Access Point、运行应用或 Web App 入口,打开并复制实际生成的应用链接。不同版本的入口名称可能不同,应以你的页面为准。官方应用发布说明

不要只停留在后台预览。打开发布后的应用页面,再发一条新消息,确认它能正常回答。以后修改了提示词或模型配置,也应重新发布并检查应用页面。

本地链接可以发给别人吗?

取决于对方能否访问部署 Dify 的电脑。

访问方式需要满足的条件
本机访问Docker 和 Dify 正在运行,浏览器使用正确端口
同一局域网内访问使用部署电脑的局域网地址;相关端口、防火墙及 Dify 地址配置正确
公网访问需要额外部署公网入口、域名和 HTTPS,并配置访问方式

localhost指访问者自己的电脑。把http://localhost/...发给同事,对方浏览器访问的会是对方自己的电脑。

发布只会让当前 Dify 服务提供应用页面,不会自动把电脑上的应用托管到公网。本文的验收范围是本机运行。

10. 遇到问题,先判断卡在哪一层

现象优先检查
没有可选模型模型供应商插件是否安装、凭据是否验证通过
出现 401 或认证错误API Key、账号权限,以及所选接口地址
提示模型不存在模型标识、当前账号权限和插件配置是否匹配
出现 429 或额度相关错误按错误正文区分限流或额度问题,查看供应商控制台
一直等待或超时Dify 容器到模型服务的网络、代理及服务状态
预览正常,发布后效果没更新是否重新发布,是否打开了正确应用链接和新会话
同事打不开链接链接是否含 localhost,部署电脑是否可达
回答看似通顺但事实不对核实内容,调整任务边界;需要专有资料时再考虑知识库

本地 Docker 部署需要进一步排查时,先进入存放 Compose 配置文件的dify/docker目录,再查看状态和日志。以下假设仓库位于~/projects/dify;使用其他位置时,应替换为实际目录:

cd~/projects/dify/dockerdockercomposeps-adockercompose logs--tail=100api plugin_daemon

Mac 在系统终端执行,Windows 在 Ubuntu 终端执行。Windows 的项目应保存在 WSL 的 Linux 文件系统中,例如~/projects/dify,避免放到/mnt/c/。服务名称与部署配置有关;如果日志命令提示服务不存在,先根据docker compose ps -a确认名称。对外提供报错信息前,隐去其中的 API Key 和其他凭据。官方 Docker Compose 部署说明

11. 完成后,用这张清单验收

  • 工作区至少有一个能够调用的对话模型。
  • 已创建“我的学习助手”,并配置了提示词。
  • 新概念回答包含解释、例子、总结和自测题。
  • 同一会话中的缩写要求可以生效。
  • 信息不足时,会先澄清必要信息。
  • 没有文件能力时,不会声称读取了桌面文件。
  • 发布后的 Web App 页面也能正常对话。
  • 明白本地应用链接的访问范围。

跑通这些步骤后,就有了一个用途明确、可以反复使用的学习助手。下一次扩展可以从实际需要出发:回答团队资料时接知识库,需要固定多步处理时使用工作流,需要查询实时信息时接入检索工具。

参考资料

  • Dify:自部署模型供应商配置
  • Dify:官方聊天应用示例
  • Dify:应用工具箱
  • Dify:分享你的 AI 应用
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进