# 应用案例
# 1. AI 智能客服助手
# 1.1 需求背景
随着大语言模型能力的提高,智能客服已成为生成式 AI 的典型应用场景之一。与传统的智能客服机器人相比,基于 AI 能力的智能客服无论是用户使用体验还是维护成本上都有着显著优势。本案例以“星火 API 错误码查询客服智能体”为例,讲解 AI 智能客服的基本思路和实现流程。该场景可以扩展到:某大学奖学金政策问答客服、产品说明书问答客服、导览台问答客服等。
该智能体主要实现以下功能:
- 基于私域知识库问答
- 大模型热点话题搜索
- 基于特定人设闲聊
# 1.2 需求分析
此智能体需要具备知识库问答、资讯搜索、闲聊三个子功能。首先要对用户输入的自然语言进行意图分类,识别出用户意图后,再编排实现每一个功能流程。主要实现路径如下:
- 使用决策节点,对用户意图进行分类,识别出知识问答、大模型资讯 2 个子场景。
- 资讯子场景,通过网络搜索总结工具节点获取资讯,大模型节点对结果进行整理产生用户答案。
- 私域知识问答场景,上传个人知识库,通过知识库节点检索答案、大模型节点整理产生用户答案。
- 默认意图闲聊场景下,大模型节点兜底产生用户答案。
- 结束节点输出各意图回答。
# 1.3 准备工作
登录讯飞星辰 Agent 开发平台 (opens new window),点击左上角“创建”进入创建界面,再点击右侧“工作流创建”进入创建界面,开始进行工作流智能体的编排。
选择“自定义创建”,进入空白画布,点击左上角 ✏ 图标,设定工作流智能体的基本信息。
首先输入智能体名称:AI 客服助手,接着补充功能描述,选择工作流分类。点击左侧图标,通过“AI 生成”生成智能体应用图标(也可选择自己喜欢的图片上传)。
点击“保存”,进入工作流编排画布页面。此准备工作已完成,开始进入客服助手的开发阶段。
# 1.4 具体创建步骤
步骤一:用户意图分类实现
进入新创建的工作流编排画布,仅有开始和结束两个默认节点,开始节点有一个默认变量:AGENT_USER_INPUT,记录用户输入的内容,在后续节点编排中可通过引用该变量,获取用户输入。
用户输入后,可使用决策节点来对用户意图进行分类,操作步骤如下:
- 在左侧节点列表中,找到决策节点,点击右上角“+”号添加到画布中。
- 连接开始节点与决策节点。
- 输入参数值类型选择引用,引用值为**“开始/AGENT_USER_INPUT”**,此步骤目的是让决策节点获取用户输入,进而进行意图决策。
- 决策节点默认包含意图一、默认意图两个意图,点击“添加意图关键字”新增意图二。
- 意图一:星火大模型 API 错误码;描述:星火 API 错误码,一般为五位数字,用户咨询错误码什么意思,或输入五位数字,归于此类。
- 意图二:AI 资讯;描述:大模型、智能体、工作流等相关话题。
- 默认意图,不需要填写内容,不属于以上两类均默认为闲聊。
- 高级配置中系统提示词内容为:你是一个意图识别的助手,用户的问题是:,请仔细理解用户问题,并对用户问题意图进行分类。
以上就完成了意图决策的实现,具体编排如下:
步骤二:知识库问答实现
此步骤主要实现基于私域知识的问答功能,这里以星火 API 错误码信息查询为例,讲解知识库问答的实现过程。此功能的实现需要使用知识库、大模型两个关键节点。知识库节点主要用于用户知识库管理和知识检索;大模型节点则用于根据问题和知识库检索到的知识块,对答案进行整理,给出正确的答案。具体编排步骤如下:
添加知识库节点,并与决策节点意图一连接。
输入参数query引用用户的原始问题:开始/AGENT_USER_INPUT。
- 知识库配置
点击**“+添加知识库”,选择“新建知识库”**,进入知识库管理页面。
输入知识库名称和知识库描述,确认后选择要上传的文件,按照“导入数据”-“数据清洗”-“处理和完成”三个步骤完成知识库创建。其中,“数据清洗”部分的“分段设置”保持默认即可。
完成后,点击右上角“前往文档”,在“命中测试”中输入问题,查看命中知识段落。
返回工作流编排画布中,再次点击“+添加知识库”,新创建的“星火 API 错误码”知识库会出现在知识库列表中,点击“添加”完成知识库配置。
添加大模型节点,回答模式默认选择效果最好的 Spark4.0 Ultra 大模型(也可选择其他版本或者自行微调的模型)。
大模型节点输入配置:
- 进行答案整理需要 question(用户问题)、knowledge(相关知识块)两个输入信息
- question 变量引用开始节点的用户输入:开始/AGENT_USER_INPUT
- knowledge 变量引用知识库节点的输出:知识库_1/results.content
- 大模型节点提示词配置:
- 你是一个问答智能体,根据搜索到的知识简要回答用户的问题,如果搜索到的信息与用户问题无关,请回答:抱歉,这个问题我没有检索到。
- ##用户的问题是:
- ###知识库内容:
- 大模型整理结果,即输出变量可默认为:output。
- 大模型节点连接结束节点,结束节点配置如下:
- 模式选择:返回设定格式配置的回答
- 输出参数添加output1,引用大模型节点的输出:大模型_1/output
- 回答内容配置:
完成以上步骤,则完成了知识库问答流程的实现,完整的编排流程如下:
步骤三:AI 资讯实现
AI 资讯功能实现主要用到bing 搜索工具、大模型节点两个主要节点,bing 搜索工具主要用于对用户输入的话题进行网络搜索,大模型节点主要用于对搜索结果进行规整,给出用户想要的答案。具体编排步骤如下:
- 从左侧节点列表中,点击工具节点,进入添加工具页面(默认展示官方工具列表),在官方列表中搜索“bing 搜索”关键字,选择bing 搜索工具,点击添加后返回至编排页面。
bing 搜索工具节点连接意图二,输入参数name引用用户原始输入问题:开始/AGENT_USER_INPUT,输出默认为搜索结果。
添加大模型节点,大模型节点输入配置如下:
- 进行答案规整需要 question(用户问题)、search_result(bing 搜索结果)两个输入信息
- question 变量引用开始节点的用户输入:开始/AGENT_USER_INPUT
- search_result 变量引用工具节点的搜索结果:bing 搜索_1/result.summary
- 大模型节点提示词配置:
- 你是一个问答助手,根据搜索到知识简要回答用户的问题。回答的内容要与用户的问题相关,回答要有条理。
- ##用户的问题是:
- ###搜索结果是:
- 输出变量默认为 output,大模型节点连接bing 搜索工具节点和结束节点。
- 输出节点新增输出参数output2,引用大模型节点 2 的输出:大模型_2/output;回答内容配置中增加: ,将结果输出。
完成以上步骤,则完成了 AI 资讯功能,意图二完整的编排流程如下:
步骤四:闲聊实现
闲聊功能实现,主要使用了大模型节点。通过给予大模型人设设定,规范大模型回答的范围、格式等,进而实现大模型与用户的闲聊交互。主要编排过程如下:
- 添加大模型节点,输入变量input引用开始节点的用户输入:开始/AGENT_USER_INPUT。
- 大模型节点提示词配置:你是一个闲聊机器人,请以友好、诙谐、幽默的语气简要回答用户的问题,用户的问题是:。
输出变量默认为 output,大模型节点连接决策节点默认意图和结束节点。
输出节点输出参数添加 output3,引用大模型节点的输出:大模型_3/output,回答内容配置中增加:,将结果输出。
操作完以上步骤,则完成了闲聊功能实现,完整编排流程如下:
步骤五:功能调试与发布
以上步骤全部完成后,点击调试进入对话页面,输入问题:大模型最新新闻,点击发送。即可看到大模型的每一步的执行过程和执行结果。可根据场景准备测试用例,依次测试效果。
调试完成后,点击发布按钮,智能体审核通过后,可在星火 APP、讯飞星火官网星火 Desk 中搜索到该智能体。
# 1.5 功能演示
在“个人空间”-“我的项目”-“智能体”中找到 AI 客服助手,点击“对话”按钮,即可进入智能体聊天。
点击右上角分享按钮,可复制链接或分享到微信。
# 2. 面试出题助手
# 2.1 需求背景
在软件开发领域,面试官可能难以全面了解每一位候选人的编程语言掌握情况和技术项目经验;在教育行业,面试官可能需要快速评估应聘者的教学方法和学生互动能力;而在医疗健康领域,则需要确保候选者拥有足够的专业知识和实践经验来胜任岗位职责。
以校招面试场景举例,通过讯飞星辰 Agent 开发平台编排的**“金牌面试官助手”应运而生,它不仅能够针对不同领域的招聘需求,自动为多位候选人随机生成适合其背景的测试题目,还能在收到答案后,基于预设的标准进行客观评分和评价,从而帮助招聘团队更加快速准确地完成人才筛选工作**。
# 2.2 需求设计
首先要对用户输入的自然语言进行意图分类,识别出用户意图后,编排实现每一类意图具体的功能流程。主要实现路径如下:
- 使用意图节点,对用户意图进行分类,识别出“开始答题”、“给出选项”、“闲聊兜底”三个场景。
- 开始答题场景,用户希望重新生成题目并开始答题,生成随机题目序号,并召回题目。
- 给出选项场景,用户给出当前轮次问题的答案,判断用户答题情况。
- 默认意图闲聊场景下,大模型节点兜底产生用户答案。
- 结束节点输出回答。
# 2.3 具体创建步骤
步骤一:构建面试题库
构建题库的核心难点是,在大模型场景下如何随机地从知识库中给出随机题目。当前“大模型+知识库”比较单一的召回能力难以实现随机性,必须要进行大量的硬编码和测试,对于非大模型开发的工程来说上手难度大。
而这一点通过讯飞星辰 Agent 开发平台的工作流和知识库能力可以完美实现。工作流负责逻辑走向,知识库通过自定义分段能力合理切分题目文档的内容。
- 题库内容准备:定制题目知识库格式,由题目序号哈希值+题目+分隔符组成。
- 知识库配置:在讯飞星辰 Agent 开发平台的知识库管理界面 (opens new window)中,新建知识库并上传题库数据,进行自定义分段设置,实现题目管理。
- 智能体创建:进入智能体创建界面 (opens new window),点击新建智能体-工作流创建-自定义创建,进入工作流编排界面。
步骤二:实现意图识别
通过大模型节点进行意图识别,由分支节点判断,决定进入不同分支的工作流:
意图 | 意图描述 |
---|---|
开始分支 | 用户希望重新生成题目并开始答题 |
答题分支 | 用户给出当前轮次问题的答案 |
闲聊分支 | 用户询问其他内容(非开始和答题意图) |
步骤三:面试题库引用
在工作流编排界面,拖拽出左侧节点列表中的知识库节点,选择添加知识库,即**“面试题库”知识库**,通过 hash 能够准确地召回对应题目,匹配度分数达到 90+。
步骤四:面试题目随机生成
- 进入开始分支,可以提示用户,给出一定引导。
- 设定随机出题量和总题目数量。
- 生成随机题目序号,并召回题目。
代码节点:
- 输入:支持设置多个类型的变量。
- 代码:点击编辑代码,进入编辑器页面,支持在编辑器中编写代码,也支持使用 AI 帮助生成代码。
- 输出:支持设置多个类型的参数。
变量存储器节点:
- 支持设置和获取变量值,供整个工作流使用。
- 将召回的题目列表,存入全局变量中。
迭代节点:
- 输入:只支持设置数组类型的参数。
- 子画布:在子画布中可以添加所有节点(迭代节点除外)。
- 输出:固定数组输出。
将随机题目检索的 key 列表作为输入,使用迭代(循环)节点,相当于主画布中嵌入一个子画布。
步骤五:用户答题情况分析
- 获取必要的全局变量,判断答题阶段是否正确。若还在答题阶段,则进入**第 2 步,**不在答题阶段时给出提示:“当前不处于答题阶段,如果需要继续训练,请输入“开始”重新答题”。
- 采用星火大模型能力,对当前用户的回答情况进行正确性判决和错误分析,同时暂存中间题目的状态。
- 结合答题进展,判定是否结束,当所有题目完成后,结合答案结果分析并生成总结,返回总结内容。
步骤六:用户闲聊兜底问答
接入大模型节点,根据用户输入做出相应闲聊回答,给出兜底提示。
# 2.4 结果展示
# 2.4.1 工作流展示
# 2.4.2 功能演示
开始回答,当继续回答完剩下的题目之后,会收到答题分析结果,具体效果如图所示。
# 3. 旅游攻略助手
# 3.1 需求背景
随着旅行成为日常生活的一部分,旅行规划的重要性逐渐凸显。然而,传统的旅行前规划往往涉及到住宿、用餐、交通、购票等多个要素,并且这些要素之间相互交织、相互影响,导致许多人对这项复杂的工作望而却步。
为了解决这一问题,需要以更系统、有效的方式进行旅行规划,使得旅行攻略的制定更加高效、简洁、清晰。不仅让旅行者能够轻松快速地制作出高质量的攻略,还能在保证行程顺利的同时,保留一定的随性与洒脱。
因此,搭建一个**“旅游攻略小助手”**,旨在帮助用户更加智能化地完成旅行规划。
# 3.2 需求设计
如下图所示,旅行的要素可以初步分为**「时间、地点、人物」**。其中时间、地点共同构成了每个瞬间所处的环境,人则是旅行的主体。若将时间和地点进一步分解,旅行所需考虑的要素便一目了然,如每日行程、旅行偏好等。
(旅行攻略要素拆解图)
基于旅行要素分析,完成如下工作流流程输出:
- 信息提取:旅行的核心要素可分为**「时间、地点、人物」**,因此需要从用户的自然语言中提取相应的时间、地点和人物信息,以便为后续流程提供基础数据支持。
- 关键词搜索:根据提取的时间和地点信息,使用聚合搜索工具进行深度分析,覆盖以下多个方面:
- 某地某人数旅游攻略
- 某地必玩
- 某地美食推荐
- 某地购物中心推荐
- 某地夜生活推荐
- 模型处理:根据关键词搜索结果,结合模型分析,对各类旅游要素进行概括总结,为用户提供个性化的旅行建议与信息。
- 样式处理:根据模型总结结果,进行信息的格式化和样式调整,确保内容清晰易读、具有视觉吸引力,并符合用户需求。
# 3.3 具体创建步骤
步骤一:信息提取
使用**「参数提取器节点」**,从用户的自然语言输入中提取关键的时间、地点和人物信息。这一过程为后续流程提供了必要的基础数据支持,确保在处理过程中能够准确识别和应用这些关键信息。
步骤二:关键词拼接与搜索处理
使用**「文本拼接节点」,将需要搜索的关键词进行拼接,便于后续批量处理。由于迭代节点传入的数据类型为数组,因此通过引用「代码执行器节点」**对关键词进行分割,确保每个搜索项都能够独立处理。
为提高搜索执行效率,采用**「迭代节点」,并结合内嵌的「聚合搜索工具」**,实现对关键词的并行搜索处理。
最后,使用**「代码执行器节点」**,对搜索结果中的关键信息进行汇总。为后续生成相关的 prompt 提供数据支持,使得后续生成的内容更加精准、相关,且易于执行。
步骤三:模型处理
使用**「文本拼接节点」,将整理好的关键信息与预设的指令拼接成完整的 Prompt,便于「大模型节点」引用相应 Prompt,使得模型能够按照预定的思路进行问题推理与内容生成。为了提升交互体验,辅以「消息节点」**,实现模型的流式输出。
按照上述流程配置的工作流分支,涵盖内容包括:欢迎词生成、行程规划、餐饮推荐、购物安排与夜生活指南。其中,**「欢迎词生成」**的具体配置如下图所示:
欢迎词 Prompt:
##角色与任务:
你是一个专业的旅游规划师,你善于用亲切热情的语言,对用户表达欢迎,并且对用户的【旅行描述】进行分析总结,同时表示惊喜与肯定。现在你的任务是,根据用户的【旅行描述】,对用户做一个正式旅行行程规划前的引导接待【欢迎词】。
##规则:
1. 请详细阅读和理解用户【旅行描述】,基于【旅行描述】来设计个性化的【欢迎词】。
2. 不要在【欢迎词】中给出具体的旅行规划,仅对用户【旅行描述】中的涉及的旅行目的经典景点地进行简单的介绍,不要讲解美食、购物以及日程,原因是详细的美食购物以及旅行规划介绍会有另一个任务完成。
3. 整体的【欢迎词】内容,首先适当帮助用户提炼总结用户的【旅行描述】,然后应该对经典经典做出细致描述,并且有代入感的介绍景点观光的美好体验,少量用emoji,语言优美且轻松愉悦,吸引阅读。语言类似:“🌟 小助手收到! 我已经了解到您本次旅行希望xxx。请稍等片刻,我将为您生成行程卡片。在这之前,让我简短介绍一下我们这次的目的地xxx,它有着很多非常值得一去的景点,xxx,xxx,当你xxx,你会感到xxx,还有xxx,xxx....。除此之外,xxx也是非常值得一去,xxxx...🌟祝您旅途愉快🌟”
4. 字数要求300个汉字
##【旅行描述】
{{user_input}}
##【旅行风格】
{{travel_style}}
行程规划 Prompt:
##角色与任务:
你是一个旅行规划超级智能体,你非常善于根据用户的需求规划旅游行程,并且输出详细完整的每日行程清单。现在你的任务是根据用户的【旅行需求】,参考【攻略资料】。生成一份详细的旅游具体【每日行程介绍】。
##规则:
1. 请严格按用户【旅行天数】和【旅行目的地】来拆分介绍【每日行程介绍】,如果【旅行目的地】中包含多个城市,请你合理安排行程保证最终的【每日行程介绍】覆盖所有的城市。
2. 请基于【攻略资料】的内容进行编写【每日行程介绍】内容。开始前,请细致阅读并理解所提供的【攻略资料】,以确保创作内容准确无误。
3. 【每日行程介绍】中每一天的介绍需要包含,今天的“行程标题”,“景点x名称”,“景点x描述”,其中:
(1)“行程标题”应该足够简洁不要超过10个汉字;
(2)每一天的“景点x名称”的景点总数不要超过5个,应该在3个左右;
(3)“景点x描述”的内容除了应该对景点的详细基本信息做描述,还应该有代入感的讲解,让用户感到非常美好,语言类似:“xxx是非常著名的景点,它xxx,xxxx...当你来到这里的时候,你会感到xxxx,xxxx。”
4. 【每日行程介绍】的内容少量使用emoji符号,让文字更加的具有吸引力。
5. 最终请务必按照下列格式直接输出,注意排版和换行,美观方便阅读善于使用emoji。不要输出任何其他内容,具体参考格式如下:
<h3> 1️⃣ 第一天:xxx(行程标题)</h3>
<p><b>🕐 xx:xx 📍 xxx(景点1名称)</b><br>xxxxx,xxxxx...(景点1的描述)</p>
<p><b>🕐 xx:xx 📍 xxx(景点2名称)</b><br>xxxxx,xxxxx...(景点2的描述)</p>
<p><b>🕐 xx:xx 📍 xxx(景点3名称)</b><br>xxxxx,xxxxx...(景点2的描述)</p>
....
<h3> 2️⃣ 第二天 </h3>
<p> ....</p>
<p> ....</p>
##用户的旅行需求和攻略资料
【旅行天数】
{{days}}
【旅行目的地】
{{location}}
【攻略资料1】
{{travel_strategy}}
【攻略资料2】
{{travel_info}}
【旅行风格】
{{travel_style}}
餐饮推荐 Prompt:
##角色与任务:
您是一个【目的地城市】吃喝玩乐观光夜生活的达人,你尤其了解【目的地城市】的吃喝的美食与餐厅,现在你的任务是结合【参考资料】的内容,为用户推荐【目的地城市】的最著名的3个美食以及对应推荐的餐厅或美食购买地。
##规则:
1. 每一个输出的美食推荐包含了3个内容,美食名称、美食介绍、推荐吃美食的地点,其中:
(1)美食名称指美食的具体名称,请严谨标准输出;
(2)美食介绍指从美食达人的角度,详细介绍美食的具体诱人之处,需要轻松幽默并且多多善于使用emoji,字数均需要150字;
(3)推荐吃美食的地方,指介绍1个或2个可以吃到正宗该美食的地点,不要给出详细地址,而是把餐厅或是商品的名称给出,语言类似:“想吃正宗的xxx,那就一定要去xxx,xxx..。当然xxx也是一个不错的选择,xxx”。
2. 信息源:结合你的专业数据,同时参考【参考资料】内容,确保所有提供的信息都是可靠和权威的。
3. 输出格式:请直接按照下面格式进行输出,不要输出任何其他信息,格式如下:
### 美食一名称
美食一介绍
美食一地方
### 美食二名称
美食二介绍
美食二地方
### 美食三名称
美食三介绍
美食三地方
##【目的地城市】
{location}}
##【参考资料】
{food _search}}
##【旅行风格】
{ftravel_style}}
购物安排 Prompt:
##角色与任务:
您是一个【目的地城市】吃喝玩乐观光夜生活的达人,你尤其了解【目的地城市】关于玩乐的大型购物中心,现在你的任务是结合【参考资料】的内容,为用户推荐【目的地城市】的最著名的2个大型购物中心。
##规则:
1. 每一个输出的购物中心推荐包含了2个内容,购物中心名称、购物中心介绍,其中:
(1)购物中心名称指购物中心的具体名称,请严谨标准输出;
(2)购物中心介绍指从购物达人的角度,详细介绍购物中心的优势,有什么特色商品或是购物中心有什么好玩的,需要轻松幽默并且多多善于使用emoji,字数均需要150字。
2. 信息源:结合你的专业数据,同时参考【参考资料】内容,确保所有提供的信息都是可靠和权威的。
3. 输出格式:请直接按照下面格式进行输出,不要输出任何其他信息,格式如下:
### 购物中心一名称
购物中心一介绍
### 购物中心二名称
购物中心二介绍
##【目的地城市】
{{location}}
##【参考资料】
{{shopping_search}}
##【旅行风格】
{ftravel_style}}
夜生活指南 Prompt:
##角色与任务:
您是一个【目的地城市】吃喝玩乐观光夜生活的达人,你尤其了解【目的地城市】关于夜生活娱乐场所推荐,例如夜市和酒吧,现在你的任务是结合【参考资料】的内容,为用户推荐【目的地城市】的最著名的2个夜生活娱乐场所。
##规则:
1. 每一个输出的夜生活娱乐场所推荐包含了2个内容,夜生活娱乐场所名称、夜生活娱乐场所介绍,其中:
(1)夜生活娱乐场所名称指夜生活娱乐场所的具体名称,请严谨标准输出;
(2)夜生活娱乐场所介绍指从夜生活达人的角度,详细介绍夜生活娱乐场所的优势,有什么特色商品或是有什么好玩的,需要轻松幽默并且多多善于使用emoji,字数均需要150字;
2. 信息源:结合你的专业数据,同时参考【参考资料】内容,确保所有提供的信息都是可靠和权威的。
3. 输出格式:请直接按照下面格式进行输出,不要输出任何其他信息,格式如下:
### 场所一名称
场所一介绍
### 场所二名称
场所二介绍
##【目的地城市】
{location}}
##【参考资料】
{nightlife_search}}
##【旅行风格】
{ftravel_style}}
步骤四:样式处理
基于搜索结果和模型处理输出,使用**「代码执行器」**对数据进行进一步处理,添加 HTML 相关样式。通过定制化的 HTML 结构,可以对关键信息进行分段、排版和样式调整,确保用户界面具有良好的可视化效果。
使用**「消息节点」**,将带有样式的 HTML 内容传递给前端系统或用户展示层,实时呈现处理后的信息。
**「代码执行器」和「消息节点」**配置及效果示例如下所示:
消息节点:

<div style="overflow: hidden">
<div class="left" style="width: 20%; padding-top: 25px; text-align:center; float: left;">
<img src="https://lf-card-builder.oceancloudapi.com/obj/bot-studio-builder/99435269593188_1714382741744953037.png" alt="丽江旅游行程" height="500">
</div>
<div class="right" style="float: left; width: 70%; height: 100%">
{{input}}
</div>
</div>
代码执行器节点:
# -*- coding: utf-8 -*-
def main(input, location):
html = f"""<h3>{location}相关</h3>
<div style="font-family: Arial, sans-serif; padding: 5px;">
<div style="display: flex; flex-wrap: wrap; gap: 5px;">
"""
if len(input) == 0:
return ""
for r in input:
if not r:
continue
one = f"""<div
style="background-color: white; border-radius: 8px; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); overflow: hidden; width: calc(50% - 5px); max-width: 250px;">
<div style="padding: 15px;">
<h2 title="{r.get('name', '')}" style="font-size: 14px; margin: 0 0 5px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;">{r.get('name', '')}</h2>
<p title="{r.get('summary', '')}" style="font-size: 10px; color: #555; margin-bottom: 8px;display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 4;overflow:hidden;">
{r.get('summary', '')}</p>
<a style="text-decoration: none; color: #3498db; font-weight: bold; font-size: 12px;"
href="{r.get('url', '')}">查看详情</a>
</div>
</div>
"""
html += one
html += """</div>
</div>"""
ret = {
"html": html
}
return ret
# 3.4 结果展示
# 3.4.1 工作流展示
# 3.4.2 功能演示
# 4. AI 资讯助手
# 4.1 需求背景
自“百模大战”以来,大语言模型、多模态模型及 AI 工具的技术迭代与商业动态呈现爆发式增长,行业资讯与竞品信息海量涌现。传统搜索引擎检索后需手动筛选有效内容,效率亟待提升。为精准追踪技术趋势与市场格局变化,亟需优化信息获取机制,通过设定精准关键词直接定位目标文章,有效过滤广告干扰,从而高效获取行业动态与竞品情报。因此,构建一个**“个性化 AI 资讯助手”**成为破局关键。
# 4.2 需求设计
为提升 AI 资讯的获取效率、内容质量及推送效果,“个性化 AI 资讯助手”助手构建采用逐步进阶的三阶段助手架构,由初步的信息抓取,到个性化资讯采集和分类去重,再到最终的定时推送分发,实现全流程自动化资讯生成和推送功能。各阶段助手在功能逻辑上逐层递进,具体设计如下:
- 基础版 AI 资讯助手
- 核心功能模块:
- 聚合搜索工具:通过星辰 Agent 开发平台提供的搜索工具,采集多源资讯信息,并将结果结构化输出。
- 代码节点:对采集数据进行格式化与美化处理,输出统一、清晰的资讯展示界面。
- 文本处理节点:整合最终展示内容,可灵活拼接标题、摘要、标注信息,实现资讯内容的统一出口。
- 个性化 AI 资讯助手
- 新增功能模块:
- 个性化资讯采集工具:支持用户自定义资讯信源,通过类 Postman 请求结构构建专属资讯采集工具。
- 智能分类与迭代去重机制:引入大模型的语义处理能力,对多源资讯进行主题识别与聚合,通过组内对比完成资讯内容去重。
- 自动化 AI 资讯生成和推送助手
- 新增功能模块:
- 定时器工具:本地服务中部署定时任务,实现周期性资讯采集与处理。
- 邮件发送工具:将工作流输出的 HTML 格式资讯内容渲染为 PDF 附件,并作为邮件正文一并发送给订阅用户,实现信息的自动化分发。
# 4.3 具体创建步骤
步骤一:构建基础资讯采集框架
通过集成**「聚合搜索工具」、「代码节点」及「文本处理节点」构建包含数据采集、处理及可视化渲染的全流程工作流,可以实现基础版 AI 资讯助手**的快速搭建,具体工作流如下图所示。
下面分别介绍三个节点在工作流中的具体作用。
聚合搜索工具:
资讯的内容主要来源于搜索,查阅资讯的最好方式就是通过互联网进行搜索,但是如果自行去通过传统搜索引擎搜索无法快速得到想要的内容,在防止广告链接的同时,还需要一一甄别内容是否匹配。
聚合搜索工具,是星辰 Agent 开发平台提供的一个搜索工具,可以通过这个工具快速完成内容搜索,I/O 数据已做好结构化处理,直接接入使用即可。I/O 数据如图:
代码节点:
不同网站的新闻界面各种各样,其中不乏各种广告植入,可以通过代码节点对搜集到的资讯信息进行可视化处理,实现资讯展示界面的结构化渲染。在代码节点中,点击“编辑代码”,通过右上角 AI 代码,在交互栏中输入内容美化要求,将一键生成标准化 Python 处理代码。
以下是使用“AI 代码”辅助生成的 Markdown 结构化代码示例,该代码实现了资讯的标准化 UI 渲染:
import json
from datetime import datetime
def main(input, key):
data = input
current_date = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
# 创建更丰富的 Markdown 结构
md_content = f"""
<div align="center">
# 🎯 {key} 专题研究报告
<img src="https://api.iconify.design/noto:magnifying-glass-tilted-left.svg" width="128" height="128"/>

📅 **更新时间:** {current_date}
📊 **收录数量:** {len(data)} 条
🏷️ **关键词:** #{key}
</div>
## 📚 目录导航
> 🎉 为您精心筛选了以下高质量内容,涵盖最新资讯、深度分析和专业见解。
<table>
<tr>
<td width="50%">
### 🔥 热门推荐
- 实时更新
- 深度解析
- 专业视角
</td>
<td width="50%">
### 🎯 核心价值
- 权威来源
- 精准定位
- 全面覆盖
</td>
</tr>
</table>
"""
# 遍历 JSON 数据并拼接 Markdown
for index, item in enumerate(data, 1):
md_content += f"""
<details open>
<summary>
<h3>
<img src="https://api.iconify.design/emojione:keycap-{index}.svg" width="24" height="24"/>
{item['name']}
<sup><code>👉 {item['site_name']}</code></sup>
</h3>
</summary>
<table>
<tr>
<td width="120" align="center">
<img src="https://api.iconify.design/noto:newspaper.svg" width="64" height="64"/>
<br/>
<sub>热度: {'🔥' * min(5, (len(data)-index+1))}</sub>
</td>
<td>
### 📑 内容速览
**来源平台:** {item['site_name']}
**内容概要:** {item['summary']}
</td>
</tr>
</table>
#### 🔍 详细信息
- 📌 **原文链接:** [点击查看详情]({item['url']})
- 📢 **发布平台:** {item['site_name']}
- 📋 **关键要点:**
- {item['summary'][:100]}...

</details>
"""
# 添加页脚
md_content += """
<div align="center">
## 📊 数据说明

- 🤖 **数据来源:** Bing 搜索引擎
- ⏰ **更新频率:** 实时更新
- ⚠️ **免责声明:** 内容仅供参考,请以官方信息为准
<img src="https://api.iconify.design/logos:bing.svg" width="48" height="48"/>
</div>
"""
return md_content
文本处理节点:
该节点简单整合渲染后的内容,输出完整资讯报告。用户也可根据需求进行多文本拼接,增加标题信息、助手信息,以及一些个人专属的页脚信息等。
点击“调试”,在对话框中输入“AI 最新资讯”,基础版 AI 资讯助手效果展示如下图:
步骤二:实现个性化资讯优化与去重
在实际使用过程中,频繁手动输入关键词进行搜索效率较低,且易出现内容重复的情况。同时,聚合搜索无法覆盖用户特定关注的资讯来源。如何输出一个内容更加完整全面、更贴合用户个性化需求且内容不重复的资讯报告值得思考。
对基础版AI 资讯助手进行功能调整,可以自定义个性化资讯收集工具,从特定资讯来源收集数据,再通过大模型文本理解能力将文章内容进行分类和去重,获取个性化的资讯报告,主要添加如下两个模块:
- 个性化资讯采集工具:构建定制化的资讯收集模块,支持从指定信源定向抓取资讯内容;
- 智能分类与迭代去重机制:基于大模型的语义理解能力,对采集内容进行自动化分类、主题聚合与分组去重。
完整工作流如上图所示,主要通过自定义工具抓取特定信源的资讯数据,随后借助代码节点对数据进行初步处理,并通过迭代节点完成资讯内容的自动分类。资讯分类完成后,利用代码节点进行分组,以控制每组文本的长度,避免因内容过多导致大模型在执行去重操作时出现 token 超限,从而引发工作流运行失败。在去重完成后,将各分组内容合并,按预设模板格式化输出。最终输出以 HTML 格式呈现,确保内容结构清晰、样式规范。以下将对新添加的两个模块进行逐一说明。
个性化资讯采集工具
当前的搜索工具不能满足个性化需求,可以通过添加工具,自定义资讯信源数据,获取个性化资讯搜索工具。
在画布中添加工具节点,点击左上角“新建工具”,将新增插件的名称、描述、请求方法、授权方法和参数配置等逐一填写完毕,即可创建一个新工具。
该流程实质上通过构建类似 Postman 的请求机制,实现对目标服务接口的访问,从而支持个性化工具的构建。总体而言,平台工具具备较高的灵活性与便捷性,但需提前配置好服务请求的接口地址,作为功能调用的前提条件。
大模型智能分类与迭代节点去重
完成特定资讯采集后,需要对多数据源的文章进行大模型智能分类和内容去重:可以通过标题、内容或者文章简介进行文本理解和主题聚合,因为文章数量较多,可能会超过 token 数量,所以对大模型分组后再进行组内去重。
先通过代码节点将数据结构组装成 [[[文章A],[文章B,文章C,文章D]],[[文章B],[文章A,文章C,文章D]]] 的数据结构,将需要比较的文章单独拿出来,在迭代节点时循环外层数据结构即可。核心节点逻辑如下:
个性化 AI 资讯助手最终效果展示如下:
步骤三:实现自动化资讯推送功能
随着新模型发布及 AI 工具不断迭代,收集相关资讯内容的需求日渐增加,且对此类信息感兴趣的人员数量日渐增多。为提升分发效率,避免逐一转发的低效操作,可以新增定时任务模块及邮件发送工具,用于定期采集最新资讯并自动化推送至相关订阅人员。
整体流程通过在服务端部署定时任务,结合星辰 Agent 开发平台提供的 API 接口,定期触发工作流的执行。在结束节点配置邮件发送工具,实现资讯采集、处理与分发的自动化闭环。完整工作流如下图所示:
以下将对定时任务模块及邮件发送工具进行逐一说明。
定时器
该定时器与前述的个性化资讯搜索工具同属自定义工具范畴。不同之处在于,定时器并非被动调用,而是在本地服务中部署了定时执行任务,通过该任务主动调用星辰 Agent 开发平台提供的 API 接口,进而触发工作流的执行,实现定时任务的自动运行。
邮件发送工具
邮件发送工具同样是自定义插件,主要功能是将工作流输出的 HTML 内容生成 PDF 文件作为邮件附件,并将 HTML 内容作为邮件正文,通过邮件服务完成信息推送。该工具与定时器配合使用,实现了 AI 资讯的定时采集与自动化分发。
自动化 AI 资讯生成和推送助手最终效果展示如下:
# 4.4 结果展示
# 4.4.1 工作流展示
# 4.4.2 效果展示
# 5. 医疗挂号助手
# 5.1 需求背景
随着人工智能技术的迅猛发展,各类应用场景持续拓展,显著提升了社会运行效率与服务水平。例如,在医院门诊系统中,智能客服最初仅支持简单的知识问答,且为单轮交互模式。随着大语言模型的发展,其已可结合预设的外部能力与用户历史对话内容,准确识别用户意图,动态调度多项服务功能,从而突破原有单一能力限制,显著提升交互智能化水平与用户体验。
传统挂号流程存在排队耗时长、信息不透明、操作复杂等问题,影响患者就医效率与体验。构建**“医疗挂号助手”**能够通过智能化手段实现导诊、医生推荐与挂号预约的自动化处理,显著优化挂号流程,提升服务效率,是智慧医疗体系中不可或缺的重要环节。
# 5.2 需求设计
为解决传统挂号流程中存在的效率低、流程繁琐、信息不透明等问题,医疗挂号助手的设计目标如下:
- 意图识别准确化:结合大语言模型理解能力,对用户自然语言输入进行准确解析,提取挂号相关意图与关键信息。
- 信息补全智能化:支持多轮对话机制,动态引导用户补充就诊所需的时间、科室等关键信息。
- 交互体验友好化:通过时间解析与结果格式化模块,将模糊表达转换为标准参数,并以结构化方式展示可挂号医生列表。
- 服务调度自动化:调用外部医院挂号接口,完成从需求识别到医生推荐、挂号预约的全流程服务闭环。
- 异常场景兜底机制:当用户请求无法直接满足时,通过推荐机制提供替代号源。
综合上述功能目标,医疗挂号助手在流程设计上需满足**「高容错、强引导、广适配、快响应」**等核心要求。
下图展示了医疗挂号助手的整体需求设计逻辑与核心功能模块划分:
# 5.3 具体创建步骤
步骤一:获取号源数据和调用外部挂号接口
在医疗挂号助手的构建中,第一步是实现号源数据的获取与外部挂号接口的调用。该流程仅依托三个核心节点完成:「大模型节点」、「代码节点」和「工具节点」。整体逻辑实现了从用户输入到结构化参数生成、再到号源信息调用的全流程。
下面介绍各个节点的具体配置:
大模型节点
挂号流程是通过用户输入进行触发的,关键在于将用户的自然语言准确转化为挂号接口所需的结构化参数。若仅依赖大模型对用户语言的简单理解,效果往往有限。通过设计精确的提示词(Prompt),可有效规范模型输出,使其生成符合接口规范的参数内容,从而提升整体交互效果与准确性。
代码节点
通过代码节点将大模型节点返回的字符串形式参数转换为标准化的 JSON 格式对象,以确保其可被工具节点正确识别与调用。
号源查询工具节点
号源查询工具节点为自定义实现的插件,核心功能是将已格式化的参数提交至医院挂号接口,并返回当前可用的医生号源列表。
以下为实现号源数据获取与外部挂号接口调用后呈现的挂号助手交互效果展示:
步骤二:优化交互时间抽取和结果格式
在初期版本中,医疗挂号助手已可完成基本问答流程,但在处理用户口语化表达时,仍存在交互准确性与结果呈现方面的不足。主要问题包括:
- 用户没有进行详细的时间描述,习惯以“今天”“明天”“下周一”等口语表达时间,易导致模型识别模糊;
- 系统返回的号源数据以原始 JSON 格式展示,缺乏用户友好性,影响交互体验。
为提升助手的实用性和交互质量,工作流中引入了两个关键优化模块:
- 时间抽取代码节点:自定义代码节点用于识别并转换用户的模糊时间表达(如“明天”“下周一”)为标准化日期格式,提升模型对挂号时间的解析能力。
- 结果格式化代码节点:对号源数据进行结构化处理与美化输出,将原始数据格式转化为更易于理解的形式,优化用户阅读体验。
通过以上优化,挂号助手能够更加准确地理解用户意图,并以更清晰直观的方式展示挂号信息。
步骤三:实现多轮交互对话和自动补全挂号信息
在实际应用中,用户往往无法在首次输入中完整提供挂号所需的全部信息,例如“我想挂个号”这一类表达,通常缺少关键参数,如就诊科室或就诊时间。为解决这一问题,工作流引入了多轮对话机制,实现信息的动态补全与持续跟踪。完整工作流如下:
为实现多轮对话中的信息存储,工作流引入了**「分支器节点」与「变量存储器节点」**。大模型在每轮对话中提取用户提供的信息,并通过分支器节点判断是否需写入变量存储器。所有必要信息判断完成后,再统一从变量存储器中获取参数并调用工具接口完成挂号流程。下面为各节点配置说明。
分支器节点:类似于程序中的条件语句(if...else...),通过条件判断是否需要走向其他分支。
变量存储器节点:用于跨轮次对话存储用户已提供的信息,可在后续节点中多次引用,实现上下文状态保持。当前支持的变量默认有效期为 7 天。
推荐号源工具节点:当用户已提供信息在当前号源中无法匹配时,该工具可基于条件动态推荐可替代的医生号源列表,提升用户决策效率与满意度。