智能体小试牛刀:用文心智能体做一个模拟的服务器
随着近来大语言模型(Large Language Model,简称LLM)的愈加成熟,大厂们都纷纷推出了自己的大语言模型,本文对使用百度文心智能体创建一个模拟服务器智能体的过程进行了分享。
目录
一、前言
(PS:好久没来这里码字了,上一次竟然已经是2年之前了……)
随着近来大语言模型(Large Language Model,简称LLM)的愈加成熟,大厂们都纷纷推出了自己的大语言模型,以下是以下我们常见的平台:
- 百度文心一言:文心一言
- 腾讯元宝:https://yuanbao.tencent.com/
- 阿里通义千问:通义tongyi.ai_你的全能AI助手-通义千问
- 豆包:豆包
- 扣子:扣子
- 另外还有视频生成,比如快手的可灵:KLING AI
在此基础之上,又进一步的推出了面向普通用户 “零门槛”的智能体平台,让普通用户可以亲自动手“调教”出满足具体应用场景和业务的大模型应用,使得AIGC不再那么遥不可及,比如一个帮你记录家庭日常开销的家庭管家、帮你记录日常工作和做工作总结的智能助理,在或者是一个陪你聊天解闷的聊天机器人,所有这些,现在,都只需要简单的几句提示词。
二、开始吧
好了好了,前面废话好像有点多了,回到今天的主角:百度文心智能体(文心智能体平台AgentBuilder | 想象即现实)。
最近这段时间接触了一些类似的智能体平台,大家都默契的使用了“智能体”这个名字,不知道是怎么来的,哪位大佬如果知道,可以给答疑解惑一下。
这是已经发布的智能体,欢迎大家体验,也欢迎提出改进的建议,智能体主要用于CentOS操作系统命令查询、学习等,还有个比较好玩的,可以模拟真实操作系统执行用户输入的命令,下面是智能体的链接地址,点击可以直接打开链接进行体验。
模拟服务器智能体,点击右边的链接开始体验:模拟服务器
三、设计思路
想到几年前,项目上的服务器开始陆陆续续的迁移到Linux系统,那时候一个命令一个命令的去网上搜,确实挺痛苦的,这段时间接触智能体之后,就想着做一个智能体,可以真实的模拟操作系统来执行命令,并可以对命令进行讲解,一方面可以拿来当作学习的平台,另一方面,可以测试命令知否正确,也可以提前观察命令的运行结果,评估操作风险,多次调试之后,终于发布。
下面是一些截图,大家先看看效果:
四、创建智能体
直接通过文心智能体基础模式创建,创建后,便开始了野生智能体的“调教”之旅。
最主要的是在“人设与回复逻辑”中添加适当的提示词,来达到预期的效果,官方的结构包含三个部分,照着给的例子,直接码字就可以了。
1、角色与目标
这里描述了智能体的基础人设和目标,对智能体的行为边界进行限制。为了使智能体能更加真实的模仿真实系统,我还添加的服务器的一些基本配置信息,如CPU、内存、磁盘、网络环境等等,还对一些基础的软件环境做了描述。
你是一个CentOS操作系统智能体,拥有丰富、专业的CentOS操作系统核心技术,核心任务是模拟真实的CentOS操作系统的行为运行用户输入的系统命令和为用户提供关于系统学习、使用方面的指导。
2、思考路径
这里描述的智能体在收到用户提问时的思考逻辑,你想智能体如何回复用户,就在这里进行表述,以下是部分内容:
1. 除非用户特别说明,否则,对于用户的所有输入,都要当成是CentOS系统命令在模拟在命令行工具中运行。
2. 对于用户输入的CentOS系统命令,要模拟真实的CentOS系统命令行工具环境,在命令行工具中运行命令,把命令行工具中输出结果字符原封不动的回复给用户。3. 深入理解用户的意图,如果用户提问关于CentOS系统的技术问题,要提供专业准确的解答,可以使用联网搜索工具检索与CentOS相关的技术资料,要确保获取的技术资料准确、可靠,帮助用户学习操作系统相关的知识。
为了对智能体的一些行为进行严格限制,我们可以继续添加约束说明
##运行命令,必须严格遵守以下规则:
** 用户输入的正确的CentOS系统命令,严格遵循CentOS系统的行为规则来模拟运行,运行命令要结合上下文,根据CentOS系统的行为规范来控制命令的执行效果。
** 模拟运行命令时,要对命令运行的结果进行充分的假设和模拟,提供准确、符合系统规范的模拟结果,让用户获得真实的操作系统交互体验。
比如我想让智能体不要响应某些命令,则在提示词里进行约束,当用户输入这个命令时,智能体则会根据我们的设定进行答复。
** 禁止运行"vi"文件编辑命令,提示命令已被禁止,格式如“bash: vi: 命令已被禁止”。
3、个性化
在个性化这部分内容中,我们可以对智能体回复用户时的语气、以及回复的格式进行描述,以下时一部分内容:
1. 对于拒绝回答的问题,直接回复“对不起,我无法回答与操作系统使用无关的问题”即可,不要额外的进行解释。
##对于与用户输入系统命令,你的回复参考如下例子:
-用户输入:su user_name
-你返回:su: user user_name does not exist-用户输入:cd /opt
-你返回:[root@data-center-server-01 opt]###拒绝回答,参考如下例子进行答复:
-用户输入:明天天气这么样
-你输出:对不起,我无法回答与操作系统使用无关的问题2. 保持交流过程的一致性,确保用户感受到真实的操作系统环境。
4、避坑总结
完成上面的步骤后,智能体积本就搭建完成了,再添加一些开场白和开场引导问题后,就可以发布了,开始运行还算满意,能解答用户的问题,也能模拟运行命令,而且很快就百度搜索进行了搜录、分发。
正当高兴的时候,不出意外的话意外出现了。当你询问无关的问题时,智能体的角色设定不稳定,经常回答无关的问题,及时在提示词中明确说明不能回答与角色无关的问题,仍然无法避免,如:
接下来,野生智能体的驯服工作开始了,经过多次调试和测试后,终于达到较好的效果,这里做个总结,给大家参考:
1、关闭“联网搜索”功能,关闭后,智能体严格受限于提示词的约束,根据提示词的限制,不会回答无关的问题,但是这个在一定程度上可能会限制了智能体的知识的及时和准确性;
我使用的是另外的方法:
1、打开“联网搜索”功能,在“思考路径”中添加约束描述,限制智能体回复与角色设定无关的话题;
2、(重点)启用知识库,并在知识库中添加对操作系统相关知识的描述,知识库的内容不用太全面,仅仅是角色设定中一方面的内容即可,如下我直接百度百科中摘抄了一部分CentOS的内容放入知识库:
五、最后玩个好玩的
通过前面的步骤,已经完成智能体的创建了。智能体发布之后,提供了API的调用方式,目前每天智能调用500次,虽然有点少,不过想到了个好玩的。
做一个HTML页面,可以输入命令和运行命令,模拟一台CentOS操作系统,来看看效果吧:
模拟程度还是挺高的,自行模拟了html页面的内容,删除文件后,还可以根据前面的代码逻辑,返回404,有点好玩。
更多推荐
所有评论(0)