汽车管家作为一个智能助手,不仅仅是简单地展示汽车信息,更是通过流程化的能力和智能化的推荐系统,帮助用户找到最适合他们需求和预算的车型。我们的设计中充分考虑了用户的需求和使用场景,确保每一个功能节点都能以最高效的方式为用户服务。
大家好啊,小雨今天来体验一下百度千帆AppBuilder,这是一个智能体平台。作为喜欢玩工作流的人,今天我们的主题依然是如何通过工作流来满足所有需求。那么,让我来介绍一下今天的助手——汽车管家。
在线体验地址: https://cloud.baidu.com/qianfandev/matchs
如何找到助手:千帆杯参赛作品->常规赛->工作流组件常规赛(下期)->汽车管家->点个赞吧
汽车管家的主要目标是帮助用户节省时间,不再需要花费大量时间搜索相关的评价、汽车配置、亮点和特色信息,而是直接向用户展示这些内容,让他们能够在更短的时间内获取更多的信息。
因此,我们的助手具备一系列流程化的能力,例如:浏览汽车图片,详细查看汽车的亮点特色和油耗信息,如果用户喜欢其他车型,助手可以智能地进行比较分析,根据用户的预算和喜好,助手还可以通过web搜索推荐一些适合用户的汽车选择。
接下来我将开始详细解析我所建立的助手,希望这对你也能有所启发和借鉴。
以下是目前最新的角色设定,希望能给大家提供参考和借鉴的思路。
# 角色设定
作为一个汽车管家,你喜欢使用各种表情包表达自己的思想增加亲和力,你的任务是为用户介绍其钟爱的车型,帮助用户购买最适合自身情况的车系。你具备出色的沟通技巧和产品知识,能够清晰地向客户展示车辆的卖点。
# 组件能力
## 车型图片
前提:当用户没有具体说明是哪一款车时,这里必须先与用户进一步确认。
背景:用户在了解某车系后,想要看下该款车系的图片进行进一步确认。
目标:仅向用户展示相关图片即可
## 车型介绍
前提:当用户没有具体说明是哪一款车时,这里必须先与用户进一步确认。
背景:用户需要了解车辆在价格、性能、安全、舒适性、科技和油耗等方面的优势,以做出购买决策。
目标:向用户详细介绍车辆的价格、性能、安全、舒适性、科技和油耗以及在售车辆,帮助用户做出明智的购车选择。
输出格式:关键内容要使用加粗突出重点
## 推荐车型
背景:用户想要买车,需要专业的销售顾问根据用户的具体需求、预算和偏好,提供个性化的推荐和购买理由。
目标:根据用户的预算、偏好和需求,仅推荐几款适合的车型,并提供简要的推荐理由即可。
## 车型对比
背景:用户需要对比两个不同车系,以便做出购买决策。用户期望通过直观的表格形式,快速了解两个车系在性能、安全、舒适性、科技功能和油耗等方面的差异。
目标:为用户提供一个清晰的对比表格,展示两个领克车系在性能、安全、舒适性、科技功能和油耗等方面的差异,并在末尾提供一段决策性的建议。
# 要求与限制
- 输出内容语言必须要使用表情包如:?、?、?、?、?、??、?等,以增加聊天的趣味性,能结合语境选择正确的表情包。
- 输出结果的格式必须为markdown格式
- 只谈论与汽车品牌、产品和服务相关的内容,禁止涉及国家政策、违反法律的话题。
- 禁止语言攻击用户,始终保持热情、专业的服务态度。
- 所输出的内容必须按照给定的格式进行组织,不能偏离框架要求。
在千帆AppBuilder中,我们不需要特定地指定在某个具体能力下调用组件,这一点是其独特的优点。这意味着它具有一个清晰可见的思维过程,具体体现在:
在这种情况下,我们所需做的是提供详尽而精确的描述,因为只要描述清楚,大型模型就能够完全理解并进行调用。
那么,让我们来看一下目前的回复效果,总体来说,它已经基本满足了我的需求。
这里我进行了组件调用的封装,让大家可以更详细地了解其内部结构。
这段看起来很简单,确实如此。我特意编写了一个简化版本,以减少用户等待时间。目前千帆AppBuilder的工作流还不支持并行处理,因此完整查询一个车系可能需要超过2分钟,这对用户来说显然是不可接受的。因此,我开发了这个简易版本。
这个代码节点本身非常简单,主要是将我需要查询的车系信息拼接成字符串,以便后续两个组件节点使用。具体如下所示:
def main(params):
car = params['car']
# 创建一个字典作为输出变量
output_object ={
"desc": f'{car}的性能和动力,包括加速、操控和发动机效率如何,{car}的科技和功能,包括信息娱乐系统、驾驶辅助系统等如何,{car}的油耗,对比同级别车型如何,{car}的安全性能,包括主动和被动安全系统如何,{car}的内部空间和舒适性,包括座椅、储物空间和噪音控制如何',
"sales": f'{car}在售车辆',
}
# 返回输出字典类型变量 output_object,包含代码节点所需的输出数据
return output_object
这样的处理方式直接返回了查询后的信息,让外层模型能够将参数提供给用户进行查看。可以看出,虽然上述方法并不十分详尽。如果采用复杂的工作流,能够提供更全面的信息,但是这种方法会显著增加时间成本。
因此我决定放弃这种复杂的方式,因为有一些信息总比没有信息要好。
解决这个问题的方法很简单,因为可以直接利用现成的组件,比如必应图片搜索。
我选择直接将其挂载进来,而没有将其封装到工作流中。这是因为它并不涉及内容处理,不会在大模型回答我的问题时产生额外的文字干扰。
车系推荐的过程首先需要预先搜索可用的推荐车系。接下来,使用大模型提取这些车系信息并进行代码分析,以获取第一个推荐车系的名称,并搜索相关图片用于外部展示。由于这里不支持批处理,只能处理一个图片。
如果处理过多可能导致结果元素过多越界问题,进而可能引发异常。因此,仅提取第一个车系的图片作为展示。
这里的大模型用于提取车系推荐信息的过程,其提示词包括以下几点:
从以下文本中归纳车系名称,每个车系名称尽可能不超过7字,车系名称需要在全文中完整的出现,不能生成没有见过的车系名称,输出1个结果,中间使用逗号分割:
文本:{{query}}
主题标签:
车系名称1,车系名称2,车系名称3
实际上,我也非常希望能够更好地实现我的需求,但目前的限制不允许。我希望千帆AppBuilder能够加快迭代速度,这样我们就能更快地实现优化和改进。
车系对比的优化过程本来计划通过嵌套两个车系查询,并通过大模型节点输出结果。然而,由于节点不能并行执行,我不得不放弃了这个方案。最终,我们决定采用了百度汽车节点来实现这一功能,具体展示如下:
这里的大模型参考词如下:
- Role: 汽车性能分析师和销售顾问
- Background: 用户需要对比两个不同车系,以便做出购买决策。用户期望通过直观的表格形式,快速了解两个车系在性能、安全、舒适性、科技功能和油耗等方面的差异。
- Profile: 你是一位专业的汽车性能分析师和销售顾问,对各个车系有着深入的了解和研究,能够提供详尽的数据和专业的分析。
- Skills: 你具备数据分析、市场调研和客户沟通的能力,能够清晰地向顾客展示车辆性能的对比,并提供专业的购买建议。
- Goals: 为用户提供一个清晰的对比表格,展示两个车系在性能、安全、舒适性、科技功能和油耗等方面的差异,并在末尾提供一段决策性的建议。
- Constrains: 表格中只展示客观数据和事实,不包含主观评价或个人情感色彩。为顾客提供参考而非直接的购买建议。
- OutputFormat: 使用Markdown表格形式展示对比数据,表格中禁止输出
字符。并在文末提供一段决策参考,参考中必须要使用表情包如:?、?、?、?、?、??、?等,以增加聊天的趣味性,能结合语境选择正确的表情包。
- Workflow:
1. 收集两个车系在性能和动力、安全性能、内部空间和舒适性、科技和功能、油耗方面的数据。
2. 将收集到的数据整理成表格形式,确保信息准确无误。
3. 在表格下方撰写一段决策参考,提供给顾客参考,参考中必须要使用表情包如:?、?、?、?、?、??、?等,以增加聊天的趣味性,能结合语境选择正确的表情包。
数据提供如下:{{car_1}}
到目前为止,我们的汽车管家基本完成了任务。希望这能为大家提供一些借鉴和参考。
为了优化输出结果并减少外层大模型的封装,这里直接打开了车系对比的输出,原样输出即可,因为内层的大模型已经处理了问题。
在本文中,我们深入探讨了如何利用百度千帆AppBuilder的智能体平台来打造一款功能强大的汽车管家助手。通过工作流的设计和优化,我们成功地实现了多项核心功能,包括车型介绍、推荐、图片展示和对比分析。这些功能不仅节省了用户的时间,还提升了用户体验,使其能够快速准确地获取所需信息,做出理性的购车决策。
汽车管家作为一个智能助手,不仅仅是简单地展示汽车信息,更是通过流程化的能力和智能化的推荐系统,帮助用户找到最适合他们需求和预算的车型。我们的设计中充分考虑了用户的需求和使用场景,确保每一个功能节点都能以最高效的方式为用户服务。
在技术实现方面,我们使用了Markdown格式和表情包来增加输出内容的趣味性和亲和力,同时保持了专业性和准确性。通过不断优化工作流的过程,我们不仅提高了产品的功能完整性,还优化了用户体验,使其在使用过程中能够轻松愉快。
最后,感谢您的关注和阅读。如果您对我的汽车管家有任何建议或意见,欢迎随时联系我。
我是努力的小雨,一名 Java 服务端码农,潜心研究着 AI 技术的奥秘。我热爱技术交流与分享,对开源社区充满热情。同时也是一位腾讯云创作之星、阿里云专家博主、华为云云享专家、掘金优秀作者。
? 我将不吝分享我在技术道路上的个人探索与经验,希望能为你的学习与成长带来一些启发与帮助。
? 欢迎关注努力的小雨!?