浪漫仪式小管家
以前我们曾经打造过学习助手和待办助手,但这一次,我们决定创造一个与众不同的智能体,而浪漫将成为我们的主题。我们选择浪漫作为主题,是因为我们感到在之前的打造过程中缺乏了一些仪式感,无法给对方带来真正的惊喜。因此,这一次我们计划慢慢调试,将它发展成一个真正能够帮助我解决这一烦恼的情人节仪式管家。
首先,我们需要考虑情人节可能存在的一些痛点。这包括选择礼物、创作情诗、制作专属短视频(包含图片和背景音乐),以及写下一份真挚的誓言来烘托气氛。最后,最关键的一步是将自己的心意真诚地表达给对方。
首先,本教程的主旨是为您打造一个浪漫仪式小管家。为了照顾到各位对智能体的理解程度,我将内容分为了快速入门和高级进阶两个部分。如果您已经具备一定基础,可以直接跳过快速入门部分,直接深入了解我的助手是如何逐步实现的。那么,让我们开始吧!
在开始实现之前,我打算先为大家绘制一个完整的能力图,展示我即将搭建的助手的各项功能,以免冗长的文档影响大家的思维清晰度。
快速上手
元器智能体
助手开发地址:https://yuanqi.tencent.com/application
详细文档地址:https://docs.qq.com/doc/DTWxpclVNeFRUUlh3
元器是由腾讯混元大模型团队推出的一款智能体创作工具。它提供了一系列功能,包括添加提示词设定、插件、知识库等,以便您可以轻松地塑造出符合自己喜好的智能体。这里简要介绍一下智能体的概念:智能体实际上是通过调用function calling大模型的函数来增强其功能的一种机制。它可以利用各种外部接口,包括但不限于API插件、知识库(用于数据检索)、数据库和变量等。
在这个系统中,还存在着工作流这一特殊形式,它涵盖了所有可利用的外部能力,根据业务需求逐步完成流程调用的过程。
当与每个外部系统接口交互时,必须提供详细的描述,以确保大型模型能够准确理解并生成固定格式的结构内容。这一步骤可以看作是使用该工具的入门课程,它要求对每个组件及其参数的作用进行详细描述。如果这一步不够详尽,大型模型的调用错误率将会显著增加。
智能体创建
商店中提供了各种助手,供你免费使用。我们直接跳过商店的使用方法,直接进入主页并首先创建一个属于自己的智能体。
元器智能体布局
一旦进入系统,界面将分为左右两侧,左侧主要负责助手的各项设置,包括但不限于名称、简介、头像、提示词、开场白、引导问题、用户问题建议、插件、知识库以及工作流。右侧则主要用于测试左侧设置的效果,以便及时发现并调整左侧设置中的任何问题。
详细设定解读
我们将不再赘述显而易见的内容,而是集中关注那些更具挑战性的方面。首先,让我们着眼于详细的设定,它实际上是提示性的,为我们勾勒了整体框架,具体如下所示:
代码语言:python代码运行次数:11复制# 角色:你是一个天气预报员,可以查询天气信息。
## 技能
- 询问用户地理位置、时间天气需求
- 提供详细的天气预报:包含气温、湿度、天气状况、风速、紫外线和PM2.5值。
## 原则
- 只能提供天气信息,不回答其他问题;
- 所有数据都要从工具中获取,不能自行编造;
所以结构化不仅对于本身来讲更好的去进行优化,而且对于大模型来说也会提高回答响应的准确率,然后根据这些规则,你完全可以让大模型帮助你生成相应的提示词,比如这样写:
代码语言:python代码运行次数:1复制我想给我的情人节仪式管家机器人创建一个prompt,主要用于挑选情人节礼物、写情诗、制作独特的专属短视频(图片、背景音乐),再来一个誓言烘托一下气氛,最后最重要的就是把自己的心意发送给对方。,你需要生成的格式如下:
# 角色
## 技能:
## 原则:
另外我帮你提前写好了一个模版样例,你可以参考一下:
模版样例:
# 角色:你是一个天气预报员,可以查询天气信息。
## 技能
- 询问用户地理位置、时间天气需求
- 提供详细的天气预报:包含气温、湿度、天气状况、风速、紫外线和PM2.5值。
## 原则
- 只能提供天气信息,不回答其他问题;
- 所有数据都要从工具中获取,不能自行编造;
终于,我们得出了最后一个简单的设定,让我们来看看它吧。
代码语言:python代码运行次数:1复制# 角色:情人节仪式管家机器人
## 技能:
- 选择情人节礼物:根据收集到的信息和对方喜好,提供个性化的礼物建议,包括但不限于鲜花、巧克力、珠宝、书籍等。
- 写情诗:根据用户提供的关键词和情感,生成温馨浪漫的情诗,表达真挚的感情。
- 制作独特的专属短视频:根据用户提供的照片、视频素材和背景音乐,自动生成精美短视频,展现美好回忆和爱意。
- 发布誓言:提供多种誓言模板或根据用户需求定制,烘托浪漫气氛,表达对对方的承诺和爱意。
- 发送心意:整合上述内容,将用户准备的礼物建议、情诗、短视频和誓言,以温馨的方式发送给对方。
## 原则:
- 尊重用户隐私和个人喜好,不泄露用户信息或行为。
- 提供个性化服务,根据用户需求定制内容,确保满足用户期望。
- 保持专业和礼貌,为用户营造浪漫、温馨的情人节氛围。
- 在处理用户数据和内容时,严格遵守隐私政策和法律法规,确保信息安全和合规性。
虽然目前生成结果存在一些问题,但我们所面临的挑战已经变得清晰明了,剩下的任务就是集中精力解决这些问题。
插件解读
当谈到某些技能,比如制作独特的专属短视频,这种技能在一眼看上去,大型模型可能无法准确模仿。但是,我们不必担心,因为正是插件的存在填补了这一空缺。就像我在前文所提到的,我们只需要生成对应的风格图片,然后借助手机应用的一键成片功能,便可轻松完成剩下的工作。举例来说,元器提供了一款独家的文生图插件,通过它,您可以将您的创意转化为精美的图片。不妨看一下这个插件的操作界面:
在选择适当的插件后,您只需轻松添加即可,这样可以简化流程并提高效率。
另外,还有一项关键技能——发送心意,但这方面存在一些挑战。由于大型模型与我们实际处于隔离状态,因此需要通过邮件提醒来传达这一信息。然而,目前插件商店尚未提供此功能,因此我们需要自行开发。这个话题将在高级部分详细讨论,但这种复杂性可能会让一些人望而却步。
在优化语句时,我们可以这样表达:绝大多数技能点其实可以由大模型自行解答,占据了整体的80%。然而,剩下的20%可能需要更高水平的文采,这时我们就需要提供参考文本。那么,谁来提供这些文本呢?这里有两种方式:第一种是利用搜索插件,在网络上搜索已有的文案,然后让大模型结合这些文本进行回答。
知识库解读
第二种方案涉及我们建立自己的知识库,其中包含我们从各种来源收集的优质短语或片段。这样做的好处是,我们可以为大型模型提供更多优质的输入,从而促使其生成更加出色的回答。
在我们进行调试的过程中,会根据实现方式的效果选择最佳方案进行使用。接下来,让我们谈谈工作流。目前,我们尚未采用工作流的方式。通常情况下,工作流的使用旨在提高大型模型的输出稳定性,降低错误率。因为有时,虽然单个插件的调用对于大型模型可能没有问题,但当需要调用多个插件来完成综合或满足各种需求时,即使底层所使用的大型模型非常先进,也无法像人类一样按照我们预设的指令按部就班地执行操作。因此,工作流显得尤为重要。比如,让我们进行一次演示:
工作流解读
回答了跟没回答一样,和我设定的里的内容举例一样,虽然插件可以帮助我们找到大部分的答案,但有些特定或者个性化的问题,插件可能就无法完全胜任。因此,建立一个知识库,包括各种礼物及其含义等内容,将会是一个非常有意义的举措。通过这个知识库,我们可以更加深入地了解你的需求,并建立一个定制化的工作流程,根据你的意愿逐步生成用户想要的答案。这样一来,我们就可以确保每个回答都是经过深思熟虑和个性化定制的,而不仅仅是简单的表面回应。
小结
当考虑到我之前提到的内容时,我简要地描述了整个流程,并绘制了一张简化的图表,以帮助您更清晰地理解并掌握这个流程。
当我们尝试按照入门者的方式构建助手时,我们已经完成了基础工作,但很显然,这个助手存在着严重的问题和漏洞,使其无法提供有效的帮助,更不用说让其他人使用了。因此,接下来的高级进阶部分将重点解决这些问题。通过分享这些解决方案,我们也希望能够帮助你们构建自己的助手。那么,让我们开始吧。
高级进阶
好的,让我们系统地总结一下助手存在的问题,以便逐一解决:
- 挑选礼物回复不够细致和个性化。
- 情诗缺乏文采,显得简单单调,需要提升至更高水平。
- 图片制作依赖混元文生图,但需要进一步增加功能,包括推荐合适的背景音乐。
- 发送心意的过程需要更人性化和个性化,避免让男(女)朋友直接使用助手,考虑通过邮件提醒等方式。
对于每个问题,我们将采取逐步解决的方式,确保助手在各个方面都能达到更高水平。
功能实现-插件
当我们探讨解决插件问题时,我们首先要认识到邮件功能的重要性,而正如你所提到的,官方并没有提供专门的邮局插件。因此,我们需要动手自己实现一个。早前,我已经完成了搭建自己的邮局服务器的工作,如果有人对此感兴趣,可以尝试搭建一个类似的服务器。以下是相关的连接:
5分钟教你搭建邮件服务器的实用指南
为了确保大家的思绪不会被下面即将呈现的长篇文字所干扰,我打算先简要地绘制一张插件制作流程图,以便为接下来的讨论提供清晰的指引和视觉参考。
接下来,让我们深入探讨这个插件的自定义功能,以便于您能够根据自身需求来创建和定制专属的插件。
在进入工作流程后的第一步是详细描述我们插件的功能。这一描述必须清晰易懂,以确保人类用户能够理解,同时也要考虑到大型模型的理解能力。如果描述不清晰,就有可能导致模型在使用插件时出现错误的调用或者根本不调用的情况。当然,关于插件在工作流程中的使用方式会另行说明。
另外,我建议我们的API接口设计要尽可能简单。过于复杂的接口会增加调试的难度,因此应尽量避免。好的,我们可以继续深入讨论了。
在这里,我建议您采用官方提供的 YAML 格式创建您自己的接口描述,而不要使用大型模型提供的描述,因为通常情况下它们的错误率相当高。您只需按照下图所示的操作流程进行修改即可。相比其他同类产品,使用原生操作确实需要一定的代码能力,这增加了一些门槛,导致一部分用户望而却步。因此,简化的操作方式更受欢迎。
为了提供更多灵活性,我们提供了一个由 YAML 创建的模板,供大家使用。你可以根据自己的需求进行自定义修改,以满足个性化的要求。
代码语言:yaml复制openapi: "3.0.0"
info:
title: "API标题"
version: "1.0.0"
description: "描述"
servers:
- url: "http://ip/path"
description: "描述"
paths:
"path":
post:
summary: "描述"
description: "描述"
operationId: "唯一id"
parameters:
- name: "参数一"
in: "query"
description: "邮件格式"
required: false
schema:
type: "string"
default: "plain"
enum: ["参数示例一", "参数示例二"]
responses:
"200":
description: "成功的响应"
content:
application/json:
schema:
type: "object"
properties:
status:
type: "boolean"
description: "返回状态"
msg:
type: "string"
description: "返回结果描述"
"400":
description: "错误的请求"
"401":
description: "未授权"
"500":
description: "服务器内部错误"
在执行下一步之后,我们将进行插件接口的调试,确保其顺利运行,随后方可进行发布。值得注意的是,目前我们的系统并未对元器进行此步骤的发布成功验证,因此如果有人故意提交恶意插件,将会对人工审核速度和资源造成严重耗费。
一旦我们的插件成功发布,用户便能够将其轻松添加到他们的助手或工作流中,实现更便捷的功能扩展。
功能实现-知识库
在我的知识库中,我依托的是一系列丰富多彩的诗集,存放着各种各样的文学风格和诗歌形式。在这里,我仅仅是对不同诗集的风格和规则做了简单的列举,以供参考。
为什么要将诗集导入知识库呢?因为诗集涵盖了多种类别,而知识库中的内容正是引导大型模型输出符合用户需求格式的关键。若每个诗集类别都需要在工作流程中使用一个大型模型节点来固定输出,将显得繁琐冗余。因此,我们可直接将其作为参数引入大型模型节点进行匹配,如下图所示:
在这里我想提醒一下,鉴于当前知识库支持的分段形式(即换行)并不十分友好,我们需要考虑对知识库内容进行全面转换,将其统一为一行,并且确保清晰描述每个类别。
一旦我们维护好了知识库内容文件,我们就可以着手进行添加工作了。
功能实现-工作流
目前我们的工作流任务相当繁重,因此让我们首先梳理一下,然后逐一实现,看看效果如何吧:
- 情诗定制:为了创造出一首贴合用户诗集要求和关键词的情诗,这个任务不可或缺。
- Emoji翻译器:除了文字,表情也是情感表达的重要方式,受到kimi启发,我们要设计一段富有含义的表情,以此来传达爱意。
- 个性化礼物策划:挑选礼物常常令人头疼,但受kimi启发,我们将根据用户的爱好、MBTI类型、职业等因素,并考虑到双方关系,精心策划出个性化的礼物选择。
- 美食参考:灵感源自kimi,为另一半准备一顿丰盛晚餐,美食是表达爱意的最佳方式。
- 发送邮件:一切准备就绪,只等东风,通过邮件将自己的爱意传递出去吧。
工作流-情诗定制
在前文中,我们讨论了知识库的应用,特别是关于引入相关知识库并通过参数调整来优化大型模型对关键词的诗集内容生成。考虑到用户可能存在不愿意或者选择困难的情况,我并未将诗集类别设置为必选参数。因此,我进行了一项判断,如果用户没有明确指定诗集类别,系统将默认采用中国七言律诗。接着,大型模型将根据相关关键词和诗集类别的要求生成相应的情诗。
好的,现在让我们具体看一下工作流的整体调用情况。
可以看一下演示效果。
工作流-emoji翻译器
当我们思考为什么要创建这样一个项目时,其实目的很简单:我们希望用户能够在与另一半的聊天中拥有更有趣的话题,而不是陷入尬聊的境地。因此,我们参考了Kimi开发的emoji翻译器,决定开展类似的工作。这个项目的需求非常简单明了:我们只需要引入一个大型模型节点即可完成。这个节点的主要功能是通过理解每个emoji表情来帮助用户提供有趣的话题。我们只需向模型提供一些示例,它就能够完成任务。现在让我们来看一下工作流的情况:
可以看一下演示效果。
工作流-个性化礼物策划
其实,在情人节当天选择礼物是最困难的事情之一。对于刚开始的恋人来说,这个过程充满了新鲜感,因为他们之前从未为对方选择过礼物。然而,随着时间的推移,选择礼物变得越来越难,因为似乎所有的选择都缺乏新意。因此,我们需要一个工作流程来帮助我们根据对方的个性、爱好和兴趣来确定最合适的礼物。这个工作流程主要依赖于一个大型模型节点,它会根据用户的类型和喜好来推荐礼物。现在让我们来看看这个工作流程的情况:
可以看一下演示效果。
我认为,如果你真的给我买这些礼物的话,我其实还挺满意的。哈哈哈,也希望他可以帮助你挑选出合适的礼物。
工作流-美食参考
因为我通常在家自己做饭,所以每天晚上都需要考虑晚餐吃什么。虽然我曾考虑去外面吃饭,但我觉得自己亲手做出来的餐点更温馨贴心。因此,我借鉴了Kimi的创意,来提升我的助手的能力,让它更好地帮助我解决这个问题。
同样的一个大模型节点完成所有能力并提供表格输出接口,我们来详细审视一下工作流程。
演示效果来一个,这里的表格有些宽,到前等大家伙使用的时候就可以看到全貌了。
工作流-发送邮件
在这个工作流程中,最关键的一环是将我们深沉的爱意传达给对方。这一任务的逻辑相当复杂,需要与元器官方人员反复沟通,解决各种问题,才最终完成。在此过程中,我们首先绘制了工作流程的图表,以便为大家提供参考。
看到这些节点,实际上已经帮助我完全理解了整个事情的来龙去脉,现在需要关注的是具体的执行步骤,而这些已经不再需要我逐一详述了。我来简要介绍一下我的工作流程。
这里说一下卡点,因为插件的形式调用不了我的API,一直在报错并且他只能通过Python代码才可以发送调用,但是工作流中的代码节点无法使用第三方依赖包所以我这里一直无法解决,所以这里直接吐出了HTML代码,这里我也不强求了。
因为这个邮件毕竟是发送给对方的,并不像我之前创建的助手那样发送邮件给自己,大模型就算发的有问题对于自己来说也没什么大碍,但是如果发送给对方,而且还是爱人,那这封邮件发之前还是检查一下比较好一些,而且邮件由自己亲自发出去的话,仪式感会更强一些。我就说服了自己,不要太去请求一定发送一封邮件。好的,我们来看下效果吧:
首先我们生成好图片,我这里为了示例就直接根据描述生成图片了,你完全可以将自己的图片上传上来然后进行修改下:
接着右键复制所有图片链接。然后我们去对话。
代码语言:yaml复制/email
关键字:小雨
相恋开始时间:2018-05-20
图片列表:https://cdn.yuanqi.tencent.com/hunyuan_open/default/c73af7034b280d895dcf8986cc03fe70.png?sign=1716813442-1716813442-0-fe644ff16f7547005b4ba76552464ae4c8e7abae7c1fa9f4d8333e2407f47fa7,https://cdn.yuanqi.tencent.com/hunyuan_open/default/5aec9c9704df47e4fe2ba93474bdf12c.png?sign=1716813376-1716813376-0-2c6a9368fc7288e8a26355c8d14e6438fb23943a927586c245d8c6d81e14bb05,https://cdn.yuanqi.tencent.com/hunyuan_open/default/c73af7034b280d895dcf8986cc03fe70.png?sign=1716813442-1716813442-0-fe644ff16f7547005b4ba76552464ae4c8e7abae7c1fa9f4d8333e2407f47fa7,https://cdn.yuanqi.tencent.com/hunyuan_open/default/5aec9c9704df47e4fe2ba93474bdf12c.png?sign=1716813376-1716813376-0-2c6a9368fc7288e8a26355c8d14e6438fb23943a927586c245d8c6d81e14bb05,https://cdn.yuanqi.tencent.com/hunyuan_open/default/c73af7034b280d895dcf8986cc03fe70.png?sign=1716813442-1716813442-0-fe644ff16f7547005b4ba76552464ae4c8e7abae7c1fa9f4d8333e2407f47fa7,https://cdn.yuanqi.tencent.com/hunyuan_open/default/5aec9c9704df47e4fe2ba93474bdf12c.png?sign=1716813376-1716813376-0-2c6a9368fc7288e8a26355c8d14e6438fb23943a927586c245d8c6d81e14bb05
然后我们将生成的邮件内容复制出来,粘贴到我们的QQ邮件中。如下所示:
然后返回一下:
效果演示
在经过数天的辛勤努力后,我终于完成了浪漫仪式小管家的打造。这个过程虽然耗费了不少心血,但也是我第一次尝试元器智能体的制作,算是一次难得的体验。作为一个资深的智能体爱好者,我本以为会游刃有余,然而使用起来却并非如此。特别是在插件的自定义创建和工作流的搭建方面,遇到了不少困难,整体体验略显不足。尽管如此,我还是成功完成了自己的助手。如果你有时间,不妨观看一下浪漫仪式小管家最终的演示视频,或许能给你带来一些启发与收获。
【番外篇 | 体验一下腾讯的元器智能体】 https://www.bilibili.com/video/BV1wgTgeUEfD/?share_source=copy_web&vd_source=2edd5e420287ed09aa5971e2cc86b90a
【番外篇 | 体验一下腾讯的元器智能体】 https://cloud.tencent.com/developer/video/80347
总结
通过本次的浪漫仪式小管家的打造,我深刻体会到了智能体在情感表达和仪式感营造方面的潜力和重要性。从挑选礼物到写情诗,再到制作独特的专属短视频和发送心意,每一个步骤都是为了让浪漮更加丰富和令人难忘。
在快速上手的部分,我介绍了如何使用元器智能体进行助手的搭建,包括元器智能体的功能、创建流程以及插件、知识库和工作流的设置。通过这些步骤,我们可以初步搭建一个浪漫仪式小管家,为后续的功能实现奠定基础。
在高级进阶部分,我详细讲解了如何解决一些问题,包括情诗定制、emoji翻译器、个性化礼物策划、美食参考以及发送邮件等功能的实现。这些功能的加入让浪漫仪式小管家变得更加智能和贴心,可以帮助用户更好地表达情感和营造浪漫氛围。
通过本次的打造过程,我不仅提升了对智能体开发的理解和技能,也让我更加深刻地认识到智能体在情感表达和仪式感营造方面的潜力。希望这个浪漫仪式小管家可以为您带来更多惊喜和幸福,让您的浪漫时刻更加难忘和美好。让我们一起享受这份浪漫,感受爱的温暖和力量。愿您的爱情长存,浪漫永远!
***
我是努力的小雨,一名 Java 服务端码农,潜心研究着 AI 技术的奥秘。我热爱技术交流与分享,对开源社区充满热情。身兼掘金优秀作者、腾讯云内容共创官、阿里云专家博主、华为云云享专家等多重身份。