大家好,我是二哥呀。
上一节我们已经跑通了输入输出节点,说明最简单的一个工作流我们已经跑通了,接下来我们需要在此基础上新增一个大模型 LLM 节点,负责把用户输入的内容转正符合播客风格的文本内容。
然后再将这段文本内容传递给输出节点,最终呈现给用户。
至于超拟人音频合成节点,我们留给下一节来完成。小步快跑,快速迭代,也更符合现阶段的开发流程。
源码已开源至 GitHub,类似 dify 这样的工作流 Agent 项目,源码已经提交至 GitHub:https://github.com/itwanger/PaiAgent/tree/PaiAgent-Three 整体架构如下所示,全程使用 Qoder CLI 完成,体验基本上和 Claude Code 持平,想要学 Vibe Coding 的同学可以快速上手实践,写到简历上也非常有看头。
用到的技术栈包括以下这些,SpringAI、SpringAI alibaba、Spring Boot 3.4.1、Java 21、FastJSON2、MinIO 等,LangGraph4J 也提交到了仓库,只不过还没来得及写教程。
我们先明确一下需求,在画布上添加 LLM 节点后,我们首先需要配置节点需要的 API Key,然后再将输入节点作为参数传递给 LLM 节点,LLM 生成结束后再将文本内容作为参数传递给输出节点。
好,我们开工!
一、申请 DeepSeek API Key
首先我们需要去 DeepSeek 官网申请一下 API Key,申请方式非常简单,直接到:https://platform.deepseek.com/api_keys 然后创建 api key 就行了,复制好 key 就可以了。
记得充钱。
然后请求的 URL 为 https://api.deepseek.com/v1/chat/completions model 为 deepseek-chat。
二、申请通义千问 API Key
登录阿里百炼平台,进入密钥管理这里。如果没有,点击右侧创建,如果有,直接复制这个 API Key 就可以了。
三、用 Qoder CLI 为 DeepSeek 节点增加基本配置
如果想退出当前的 Qoder CLI 对话,可以键入 /quit命令,退出后会有一个当前 session 的统计信息,比如说这次对话我们新增了 899 行代码。
然后再次在终端中键入 qodercli重新启动 Qoder CLI。然后再键入 /resume命令选择对应的 session 以恢复之前的对话。
这样就完全不用担心我们之前的上下文信息会丢失,非常方便。
准备工作完成后,我们把需求直接告诉 Qoder CLI:
当选中 DeepSeek 节点的时候,我们需要为该节点配置一些基本信息,第一个是模型的接口地址,第二个是 API 密钥,第三个是温度,也就是目前已经存在的,第四个参数是模型的 model 名
能看得出,考虑的非常周全,我虽然只讲了 DeepSeek 节点的配置,但 Qoder 自己悟道了,把通义千问节点和 OpenAI 节点也做了处理,并且:
- API 地址为必填
- API 密钥用密码框隐藏显示
- 模型名称也猜到了是 deepseek-chat
- 温度这个配置项可能有同学不理解,我这里解释下。和水温类似,用来控制生成结果的多样性和随机性。数值越低越严谨;数值越高越发散。
- 点击“保存配置”的时候会把这些信息保存到节点的 data 字段中,如果点击工作流的“保存”按钮,还会持久化到数据库中,很 nice。
确认一下,没问题。
确认一下保存也是没问题的。
好,我们继续。
接下来,我们需要把输入节点的用户输入信息传递给 DeepSeek 节点,也就是说,选择 DeepSeek 节点的时候,有一个输入选项,可以引用输入节点的用户输入信息作为参数,然后我们还可以给模型节点添加用 户提示词(目前已经有配置项了),提示词的基本格式是
下面是用户提示词,我一并分享出来。
# 角色
你是一位专业的广播节目编辑,负责制作一档名为“AI电台”的节目。你的任务是将用户提供的原始内容改编为适合单口相声播客节目的逐字稿。
# 任务
将原始内容分解为若干主题或问题,确保每段对话涵盖关键点,并自然过渡。
# 注意点
确保对话语言口语化、易懂。
对于专业术语或复杂概念,使用简单明了的语言进行解释,使听众更易理解。
保持对话节奏轻松、有趣,并加入适当的幽默和互动,以提高听众的参与感。
注意:我会直接将你生成的内容朗读出来,不要输出口播稿以外的东西,不要带格式,
# 示例
欢迎收听AI电台,今天咱们的节目一定让你们大开眼界!
没错!今天的主题绝对精彩,快搬小板凳听好哦!
那么,今天我们要讨论的内容是……
# 原始内容:{{input}}
OK,确认没问题。
但是输入参数这里直接绑定死了,我们需要灵活一点,可以追加其他的参数。
DeepSeek 节点这里的输入参数不应该直接绑定死,也应该是可追加的方式,比如说我点添加,第一个输入框为参数名名,第二个参数是参数类型,可以选择引用或者输入,输入的时候第三个参数是文本框,可以直接输入;选择引用的时候,可以从前一个节点选择
OK,确认没问题。
我们继续,为 DeepSeek 节点添加一个输出配置参数。
OK,我们需要给 DeepSeek 节点增加一个输出参数配置,第一个是变量名,文本框,第二个是变量类型,目前是只有 string,第三个参数是描述,可为空

真诚点赞 诚不我欺
回复