Dify 从零到一:手把手搭建小说角色扮演 AI 并接入微信
写在前面
作为一名 AI 技术爱好者,我一直想做一个能“活”起来的小说角色。想象一下,如果你喜欢的张飞、林黛玉或者哈利·波特,能通过微信和你聊天,用他们独特的语气和性格回应你,那该多酷?
经过一段时间的研究和实践,我发现 Dify 这个开源平台让这个想法变得异常简单。它无需复杂编程,通过可视化拖拽就能搭建出专业级的 AI 应用。本文将从一个具体的案例——搭建张飞角色扮演 AI 出发,一步步教你掌握 Dify 工作流和 Chatflow 的完整开发流程,并最终将它接入微信。
无论你是 AI 新手还是资深玩家,这篇保姆级教程都能让你快速上手,打造属于你自己的“数字分身”。
一、初识 Dify:为什么选择它?
Dify 是一个开源的 LLM 应用开发平台,它的核心理念是“人人可用的 AI 应用开发平台”。这意味着,即使你不懂代码,也能通过直观的界面创建复杂的 AI 应用。
Dify 提供了两种核心的工作流类型,理解它们的区别至关重要:
| 特性 | Chatflow | Workflow |
|---|---|---|
| 适用场景 | 对话类应用,支持多轮交互,如客服、角色扮演 | 自动化、批处理任务,一次性执行,如批量翻译、内容生成 |
| 对话记忆 | 支持,内置 Memory 功能,能记住上下文 | 不支持,每次都是独立的处理任务 |
| 输出方式 | 支持流式输出,可实时生成回复 | 仅在流程结束时输出最终结果 |
| 内置变量 | 包含 sys.query(用户问题)、sys.conversation_id等 |
不包含对话相关变量 |
| 结束节点 | 使用 Answer 节点输出回复 | 使用 End 节点标记结束 |
简单来说:如果你想做一个能和你聊天的“张飞”,选择 Chatflow;如果你想用 AI 批量写小说大纲,选择 Workflow。本文我们选择 Chatflow。
二、环境准备:三步开启 Dify 之旅
2.1 部署 Dify 并配置 Qwen 模型
你可以在 Dify 官网注册云服务账号,一键开始使用,也可以选择在本地或服务器上私有化部署。
部署完成后,第一步是配置模型供应商。以阿里云百炼平台的 Qwen 模型为例:
- 在 Dify 中,点击右上角头像,选择“设置” -> “模型供应商”。
- 找到并安装“通义千问”供应商。
- 填入从阿里云百炼获取的 API Key,并选择你想要使用的模型,如
qwen-plus-latest。
2.2 核心概念:理解 Dify 工作流节点
Dify 的工作流由一个个“节点”组成,每个节点负责一个独立的任务。你需要掌握几个核心节点:
- 开始 (Start) 节点:工作流的入口,用于接收用户输入。
- 知识检索 (Knowledge Retrieval) 节点:连接你的知识库,检索相关信息。
- LLM (Large Language Model) 节点:核心大脑,负责理解问题并生成回答。
- 参数提取器 (Parameter Extractor) 节点:从自然语言中提取关键信息。
- 直接回复 (Answer) 节点:将处理结果返回给用户。
2.3 准备知识库:投喂张飞的“灵魂”
知识库是角色扮演 AI 的“灵魂”,它储存了角色的所有信息。为了让张飞更逼真,你需要准备一份关于他的高质量资料,可以是一本小说、一段人物设定,或是一些经典对话。
- 在 Dify 中,点击顶部“知识库”,然后“创建知识库”。
- 选择数据源,上传你的张飞资料文件(TXT、PDF 等格式均可)。
- Dify 会自动对文本进行分段和向量化。建议使用“父子分段”模式,索引方式选择“高质量”,检索设置选择“混合检索”,并开启 Rerank 模型以获得最佳效果。
- 等待知识库状态变为“可用”,即表示你的“张飞”资料库准备就绪。
三、核心实战:打造你的第一个角色扮演 Chatflow
我们以“张飞”为例,打造一个能与你对话的角色扮演 AI。
3.1 搭建基础流程:LLM + 知识检索
步骤一:创建 Chatflow 应用
在“工作室”页面,点击“创建空白应用”,选择“Chatflow”类型,并命名为“张飞模拟器”。
步骤二:配置开始节点
点击画布上的“开始”节点。这里我们会发现它已经默认提供了 sys.query 变量,这正是用户输入的文本。我们无需额外配置。
步骤三:添加并配置知识检索节点
在“开始”节点后添加一个“知识检索”节点。
- 查询变量:选择
sys.query,表示用用户的问题去检索。 - 知识库:选择你刚才创建的张飞知识库。
- 召回设置:选择“高质量”模式,并打开“混合检索”和“Rerank 模型”,以提升检索准确性。
步骤四:添加并配置 LLM 节点
这是让模型“成为”张飞的关键步骤。在“知识检索”节点后添加一个“LLM”节点。
- 模型:选择你配置好的 Qwen 模型。
- 上下文:在“上下文”选项中,点击并选择“知识检索”节点的
result变量。这告诉 LLM 要结合知识库的内容来生成回答。 - 系统提示词 (System Prompt):这是赋予模型角色和性格的核心。一个好的提示词模板如下:
# 角色与性格
你是三国时期的猛将张飞,字翼德。你性格豪迈勇猛,性如烈火,声若巨雷,但忠肝义胆,爱憎分明。
# 说话风格
- 说话直率、粗犷,声音洪亮。
- 多用“俺”、“俺老张”、“哈哈哈”这类词汇。
- 高兴时会大笑,生气时会暴怒。
# 核心指令
1. 严格依据知识库中的内容进行回答。
2. 必须始终以张飞的第一人称进行思考和回应。
3. 如果用户的问题超出了你的知识范围,用角色的口吻回答。
4. 不要出现“作为一个人工智能模型”等话语。
- 用户提示词 (User Prompt):填入
{{#sys.query#}},表示接收用户的问题。
步骤五:添加并配置直接回复节点
在 LLM 节点后添加“直接回复”节点,并将其回复内容设置为 LLM 节点的 text 输出。
步骤六:测试
点击右上角的“预览”按钮,在对话框中输入“你是谁?”,看看张飞是不是已经“活”过来了。
3.2 流程优化:增加“意图判断”分支
在实际对话中,用户可能问一些与张飞无关的问题。为了让流程更智能,我们可以加入“条件分支”节点。
- 在“开始”节点后,添加一个“问题分类器”节点。
- 配置分类器,定义两个分类:
role_play(角色扮演)和general(通用问题)。 - 创建两个分支,连接“问题分类器”节点的不同输出。
- 在
role_play分支上,继续使用“知识检索 + LLM”的流程。 - 在
general分支上,可以直接连接一个 LLM 节点,或者使用“直接回复”节点给出一个预设回复,比如“俺老张只懂打仗,莫要问这些文绉绉的问题!”
四、进阶玩法:让 AI 更懂你
4.1 参数提取器:精准控制生成内容
有时候,你可能希望 AI 严格按照你的要求来生成内容,比如规定字数、风格或人物关系。这时,参数提取器节点就能派上用场。
案例:生成特定风格的对话
假设你想让张飞说一段关于“义气”的话,并且控制在100字以内。
- 在“开始”节点后,添加一个“参数提取器”节点。
- 在“提取参数”中,定义两个参数:
theme(主题)和word_limit(字数限制)。 - 在“指令”中,编写提取规则:
从用户的问题中提取出对话的主题和要求的字数限制。 主题(theme):用户要求张飞谈论的主题,如“义气”、“战争”。 字数限制(word_limit):用户要求的回复字数,默认为50。 - 然后将这个节点连接到 LLM 节点。在 LLM 节点的用户提示词中,就可以引用这些变量:
请以张飞的口吻,说一段关于{{#参数提取器.theme#}}的话,字数控制在{{#参数提取器.word_limit#}}字以内。
这样,当你输入“张飞,说说什么是义气,控制在50字内”,参数提取器就会自动解析出 theme 为“义气”,word_limit 为“50”,并传递给 LLM,实现精准控制。
4.2 基于角色数据的深度微调
如果你希望你的角色表现力更上一层楼,可以基于收集到的小说数据进行模型微调,将其变成一个“专业小说对话模型”。这种方式能让模型更自然地掌握角色的语气和风格。具体的技术路线,可以参考如何使用 LLaMA-Factory 进行小说对话模型的微调,这是将通用大模型变成专用角色模型的关键一步。
五、发布与对接:让你的 AI 走出 Dify
构建完成后,最激动人心的环节就是将它发布出去,让它在微信或 QQ 上和大家互动。
5.1 发布为可访问的 API
在 Dify 应用编辑页面的左上角,点击“发布”按钮。发布成功后,点击“访问 API”:
- 复制右上角的 API 服务器地址(如
https://api.dify.ai/v1)。 - 创建一个 API 密钥,并妥善保存这个以
sk-开头的 Key。
5.2 接入微信或 QQ 生态
有了 API 地址和密钥,我们就可以通过第三方工具将它接入聊天软件。
- 方案一:Dify on WeChat 项目(适合个人微信):这是一个开源项目,专门用于将 Dify 应用接入个人微信。你只需要按照项目文档安装配置,填入你的 API 信息即可。
- 方案二:LangBot 通用框架(适合企业微信/QQ):LangBot 是一个更通用的多平台机器人框架。在 LangBot 中配置 Dify 服务 API,并绑定到企业微信或 QQ 的机器人上,即可实现自动回复。
六、常见问题与优化建议
- Q: 角色扮演时,AI 容易“出戏”,怎么办?
A: 优化系统提示词是关键。尽量描述得细致,可以加入“禁止以AI助手的身份回答”、“必须使用第一人称”等约束。同时,确保你的知识库资料足够丰富和准确。 - Q: 知识库检索不到相关内容,回答很生硬?
A: 尝试调整知识库的检索设置,比如降低“Score 阈值”以召回更多结果,或调整混合检索中语义与关键词的权重。此外,优化原始文档的分段方式(如父子分段)也非常有效。 - Q: API 调用超时或失败?
A: 检查你的 API 地址和密钥是否正确,并确认你的 Dify 应用已成功发布。如果是本地部署,请确保网络畅通。
结语:开启你的 AI 创作之旅
通过本文,你已经掌握了使用 Dify 搭建角色扮演 AI 的全流程。从理解核心概念,到动手搭建 Chatflow,再到利用参数提取器进行精细控制,最后将它发布并接入微信,你已经完成了一次从零到一的 AI 应用开发。
AI 的世界充满了无限可能,你完全可以根据自己的喜好,创造林黛玉、孙悟空,甚至是属于你自己的原创角色。现在,就打开 Dify,开启你的 AI 创作之旅吧!如果在实践过程中遇到任何问题,欢迎随时和我交流讨论~
更多推荐

所有评论(0)