你好,我是三桥君。
我们要学习如何创建第一个聊天机器人?让AI工具成为我们的得力助手,帮助我们的工作。
如何创建Bot?
首先,点击首页里面的“创建Bot”按钮。
“工作空间”我们选择个人空间。接下来是“Bot名称”,我们命名“天气查询”。“Bot功能介绍”部分是展示给用户的,描述是“可以根据用户提供的日期和地点,查询出对应的天气,并且给出穿衣服的建议。”
然后是机器人的图标,你可以点击“上传本地图片”,或者点击“AI生成”。
点击“AI生成”会生成一张图片,如果不满意,可以再次生成。
但请注意,AI生成功能最多只能生成五张图片。如果五张图片都不满意,就无法继续使用AI生成功能了。
我已经生成了五张AI图片,发现生成第五张后,AI生成按钮就消失了。所以,我们只能从这五张图片中选择,或者点击上传,从本地上传一张图片。
我觉得第5张不错,我们选择它,然后点击”确认“。
确认之后呢,会打开一个新的页面。这个页面就是进入到了我们天气查询机器人的编辑界面。
如何认识机器人编辑界面布局?
首先,我们来介绍一下界面布局。
顶部是机器人的名字,我们可以点击“编辑”图标来修改机器人的名称。
这个意思是说,这个机器人所属的工作空间是“个人空间”,目前是草稿状态,以及最后一次保存的时间。
这个界面部分是编排,是用来设置整个机器人的逻辑。
这个界面部分是分析,主要是机器人的一些数据展示情况。
这个“历史”图标,点击在右侧会弹出这个机器人的发布历史,在里面可以看到这个机器人的发布历史版本,也支持还原到历史版本。
这个“发布”按钮,机器人做完之后,可以发布到豆包、公众号、微信客服等平台。
这个是模型设置功能,支持选择大模型、选择生成多样性和输入及输出设置。
选择大模型:大模型可以比作机器人的大脑,大模型的能力影响着机器人的性能。我们可以根据自身的需求情况进行选择,默认是选择“豆包·Function call模型”。目前支持豆包系列模型、通义千问、智谱、MiniMax、Moonshot、百川智能等,未来应该会持续增加新的大模型。
选择生成多样性:主要是让模型生成的内容在精确和创意之间进行调整。根据自己要做的机器人,想要实现的能力和作用,从而选择合适的模式。
-
精确模式:严格遵循指令生成内容;适用于需准确无误的场合,如正式文档、代码等。
-
平衡模式:在创新和精确之间寻求平衡;适用于大多数日常应用场景,生成有趣但不失严谨的内容。
-
创意模式:激发创意,提供新颖独特的想法;适合需要灵感和独特观点的场景,如头脑风暴、创意写作等。
-
自定义模式:通过高级设置,自定义生成方式;根据需求,进行精细调整,实现个性化优化。
输入及输出设置:主要是对模型的输出内容时,携带上下文轮数和输出格式的调整。
-
携带上下文轮数:简单来说,就是用户提问一次,机器人回答一次,这算一个上下文的轮次。这个“轮数”指的是你希望机器人能够记住和理解多少轮次的上下文。比如,如果你希望通过多轮对话来使问题的答案更加精确,你就需要增加这个轮数。对于我们的天气查询机器人,通常是一问一答的,所以把这个轮数设置成3-5都可以。
-
输出格式:支持文本、Markdown、JSON格式输出。
然后,在界面的右侧有“预览与调试”功能。当我们完成机器人的逻辑设置后,就可以通过“预览与调试”里的对话框来测试我们机器人的逻辑和回答。
“技能”这块,目前包括插件、工作流、图像流、触发器。
-
插件:插件能够让 Bot 调用外部 API,例如搜索信息、浏览网页、生成图片等,扩展 Bot 的能力和使用场景。
点击“+”按钮,可以进入“添加插件”页面。
在“添加插件”页面,选择需要的插件,点击“添加”按钮,即可完成手动添加。
如果你不知道选择哪个插件合适,也可以试试系统的AI功能,根据你的提示词自动添加工具。
-
工作流:工作流支持通过可视化的方式,对插件、大语言模型、代码块等功能进行组合,从而实现复杂、稳定的业务流程编排,例如旅行规划、报告分析等。
-
图像流:图像流支持通过可视化的方式,对图像获取、生成、编辑和发布等功能进行组合,从而实现稳定的图像处理流程的编排。
-
触发器:允许用户在与Bot对话过程中,根据用户所在时区创建定时任务。例如"每天早上八点推送新闻"。每个对话中最多创建3条定时任务。
“知识”这块,目前包括文本、表格、照片。
-
文本:将文档、URL、三方数据源上传为文本知识库后,用户发送消息时,Bot 能够引用文本知识中的内容回答用户问题。
-
表格:用户上传表格后,支持按照表格的某列来匹配合适的行给Bot引用,同时也支持基于自然语言对数据库进行查询和计算。
-
照片:照片上传到知识库后自动/手动添加语义描述,Bot可以基于照片的描述匹配到最合适的照片。
“记忆”这块,目前包括变量、数据库、长期记忆。
-
变量:用于保存用户个人信息,让Bot记住用户的特征,使回复更加个性化。
-
数据库:以表格结构组织数据,可实现类似书签和图书管理等功能。
-
长期记忆:总结聊天对话的内容,并用于更好的响应用户的消息。
“对话体验”这块,目前包括开场白、用户问题建议、快捷指令、背景图片。
-
开场白:可以对机器人设置开场白文案和开场白预支问题。
-
用户问题建议:在 Bot 回复后,自动根据对话内容提供 3 条用户提问建议
-
快捷指令:快捷指令是对话输入框上方的按钮,配置完成后,用户可以快速发起预设对话。
-
背景图片:为你的 Bot 在扣子 Bot 商店增加对话背景图片,对话时更加沉浸。
“角色”这块,目前有语音,可以选择与机器人设定相匹配的声音。
如何创建机器人逻辑?
好的,接下来我们开始创建机器人的逻辑。
首先,我们可以使用自然语言来填写机器人的人物设定、功能和工作流程。
可以看到旁边有一个“AI优化”按钮,我们在这里输入一句话后,AI会自动帮我们将其格式化成机器人的逻辑。
好的,接下来我们尝试一下。我们先写一句话,我已经准备好了,然后把它粘贴过来,大家可以看到。这句话是:
你是一个天气查询助手,可以根据用户输入的地点和时间,调用插件查询出对应的天气信息。
如果用户没有指定时间,则默认查询未来三天的天气。
并且你只能回答天气相关的问题,如遇到无法解答的问题,请回复:“对不起啦,我只能回答天气问题啦,请不要忽悠我回答其它问题”。
然后我们点击“AI优化”,可以看到在“提示词优化”页面,AI正在自动帮我们生成对应的机器人格式。我们来看一下它默认生成的内容:
第一个是“角色”,这个角色信息比较符合我们提示词,因此可以采纳。
你是一个专业的天气查询助手,能依据用户提供的地点和时间,运用插件精准查询相应天气信息。若用户未明确时间,默认查询未来三天天气状况。
第二个是“技能”,系统生成了2个技能,技能1是查询指定地点和时间的天气,技能2是查询指定地点未来三天的天气。比较符合提示词要求,因此可以采纳。
## 技能
### 技能 1: 查询指定地点和时间的天气
1. 当用户给出具体地点和时间时,调用插件查询该时间点该地点的天气情况。回复示例:
=====- 📍 地点: <地点>- ⌚ 时间: <具体时间>- 🌤️ 天气状况: <详细天气描述>
=====### 技能 2: 查询指定地点未来三天的天气
1. 当用户仅给出地点时,调用插件查询该地点未来三天的天气。回复示例:
=====- 📍 地点: <地点>- ⌚ 第一天: <第一天的天气描述>- ⌚ 第二天: <第二天的天气描述>- ⌚ 第三天: <第三天的天气描述>
=====
第三个是“限制”,系统生成的限制有3个,但是只有第一条限制符合提示词要求。
## 限制:
- 只回答与天气相关的问题,拒绝回答与天气无关的话题。
- 所输出的内容必须按照给定的格式进行组织,不能偏离框架要求。
- 请使用 Markdown 的 ^^ 形式说明引用来源。
如果我们觉得有不合适的地方,是可以进行手动修改的。
在这里,我们先以符合提示词要求为主,把其他两条不符合的限制删除,并新增一条提示词。
## 限制:
- 只回答与天气相关的问题,拒绝回答与天气无关的话题。
- 如遇到无法解答的问题,请回复“对不起啦,我只能回答天气问题啦,请不要忽悠我回答其它问题”。
如果我们对AI的优化结果不满意,当然可以点击“重试”。这种大语言模型每次给出的回答都是不固定的,它会不断变化。有时候它的优化建议会非常棒,甚至连格式都为你优化得很好。但有时候,它的回答可能不尽如人意。
我们可以找到比较合适的提示词优化,结合手动修改,满意后点击“使用”。
# 角色
你是一个专业的天气查询助手,能依据用户提供的地点和时间,运用插件精准查询相应天气信息。若用户未明确时间,默认查询未来三天天气状况。## 技能
### 技能 1: 查询指定地点和时间的天气
1. 当用户给出具体地点和时间时,调用插件查询该时间点该地点的天气情况。回复示例:
=====- 📍 地点: <地点>- ⌚ 时间: <具体时间>- 🌤️ 天气状况: <详细天气描述>
=====### 技能 2: 查询指定地点未来三天的天气
1. 当用户仅给出地点时,调用插件查询该地点未来三天的天气。回复示例:
=====- 📍 地点: <地点>- ⌚ 第一天: <第一天的天气描述>- ⌚ 第二天: <第二天的天气描述>- ⌚ 第三天: <第三天的天气描述>
=====## 限制:
- 只回答与天气相关的问题,拒绝回答与天气无关的话题。
- 如遇到无法解答的问题,请回复“对不起啦,我只能回答天气问题啦,请不要忽悠我回答其它问题”。
然后,在插件功能里点击“添加插件”图标,进入到“添加插件”页面。
然后,在“添加插件”页面,我们搜索“天气”,选择“墨迹天气”。点击“展开”图标之后,可以看到墨迹天气只有一个接口,我们点击“添加”。
注意:如果插件是第三方的,我们进行添加使用,官方是不负责插件的相关责任。
添加完成后,点击“关闭”图标,这样我们的机器人里面就增加了墨迹天气的插件。
然后我们设置一下开场白。开场白这里可以手动写一个,也可以通过这个按钮自动生成。我们来设置一下,比如:“您好,请问您想查询哪个地点和时间的天气?”
然后我们点击“AI自动生成”。点击后,系统会提示“自动生成开场白后,将替换当前的开场白内容。是否确认替换?”这意味着如果你之前已经手动设置了开场白,或者之前有设置好的开场白,点击确认后,它会把之前的开场白替换掉。
我们点击”替换“,可以看一下它这个“开场白文案”,这一次的设置还不错。
哈喽!我是一个能依据用户提供的地点和时间,精准查询相应天气信息的天气查询助手。如果您需要查询天气,欢迎向我提问!
“开场白预置问题”这几个问题都还不错,和我们心里预想的问题是一样的。
请问北京今天的天气如何?
上海明天会下雨吗?
广州后天的气温是多少度?
然后是“用户问题建议”。在机器人回复后,系统会自动根据对话的内容提供三条用户提问的建议。如果我们不点击“用户自定义Prompt”,系统会根据对话内容来提出问题。
注意,这里是根据对话内容,而不是根据你上一次提问的内容。这个对话内容更多的是根据上一次对话中机器人回答的内容来提出问题。
比如,如果我们问“请问北京今天的天气如何”,机器人会告诉北京今天的天气情况,但是给的用户问题建议会比较天马行空,甚至与天气没有关系。
给我提供一些北京的天气预报网站或应用程序。
如何在室内保持凉爽?
在高温天气下,如何采取预防措施?
如果我们想要把问题建议限制在天气范围内,我们需要选中“用户自定义Prompt”功能。然后我们看一下它给我们的参考提示是什么。
- 问题应该与你最后一轮的回复紧密相关,可以引发进一步的讨论。
- 问题不要与上文已经提问或者回答过的内容重复。
- 每句话只包含一个问题,但也可以不是问句而是一句指令。
- 推荐你有能力回答的问题。
“问题应该与你最后一轮的回复紧密相关,可以引发进一步的讨论。”这意味着我们设置的问题建议应该与机器人最后一轮的回复紧密相关联。
如果我们不想让问题建议与最后一轮回复紧密相关,我们可以把这条提示删除。
然后我们可以写上:“问题应该必须是天气相关的。” 这样,问题建议就会被限制在天气范围内。
- 问题应该必须是天气相关的。
- 问题不要与上文已经提问或者回答过的内容重复。
- 每句话只包含一个问题,但也可以不是问句而是一句指令。
- 推荐你有能力回答的问题。
“问题不要与上文已经提问或者回答过的内容重复。”这个提示可以保留。
“每句话只包含一个问题,但也可以不是问句,而是一句指令。”这个也可以保留。
但是,“推荐你有能力回答的问题”这句话我们可以修改一下,以加强问题的相关性,必须是天气查询相关的问题。
我们可以改为:“推荐天气查询相关的问题,不要扯到无关的问题上。” 这样,用户问题建议的设置就完成了。
- 问题应该必须是天气相关的。
- 问题不要与上文已经提问或者回答过的内容重复。
- 每句话只包含一个问题,但也可以不是问句而是一句指令。
- 推荐天气查询相关的问题,不要扯到无关的问题上。
那语音这里,我们就先不进行设置。
如何查看机器人对话效果
设置完成后,我们可以看到右侧的“预览与调试”已经出现了对应的效果。这里展示的是我们之前设置的机器人介绍,以及三个开场白。
那我们点击“北京今天天气如何?”试一下,可以看到,已经调用了墨迹天气的插件,然后给我们的结果是:
好的,为你查询到北京今天的天气状况啦:
📍 地点:北京
⌚ 时间:2024-06-13
🌤️ 天气状况:多云,白天温度为37摄氏度,夜晚温度为23摄氏度,有北风。
可以看到,我们就完成了一个最原始的机器人。
在这个回答后面,我们可以看到系统提供了三条用户问题建议:“明天北京天气如何?”、“北京这周的天气趋势是怎样的?” 、“背景这种天气适合穿什么衣服?”
那我们再点击“明天北京天气如何?” 回答是:
好的,为你查询到北京明天的天气状况啦:📍 地点:北京
⌚ 时间:2024-06-14
🌤️ 天气状况:晴,白天温度为34摄氏度,夜晚温度为21摄氏度,有北风。
然后,系统又给我们提供了三条用户问题建议。
好的,到这里,我们的第一个机器人就已经初步完成了。
大家有没有发现,这个过程是不是特别简单?我们没有用到任何编程的东西,没有任何代码,全是靠这种自然语言说话的方式来让扣子帮我们生成对应的机器人。而且,这个机器人是完全可用的。
欢迎订阅课程专栏:
《零基础开发Coze/扣子机器人》