ai智能体如何实现函数调用?我的猜测

这篇具有很好参考价值的文章主要介绍了ai智能体如何实现函数调用?我的猜测。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

ai智能体,又名ai agent,是一种基于ai大模型推理能力,具有外部感知、工具使用、信息反馈的智能系统。

自从2023年3月autoGPT发布以来,已经诞生了许多ai agent框架。他们大多遵循这个基本的结构:

ai智能体如何实现函数调用?我的猜测,人工智能,人工智能,python,语言模型

大部分框架基本都提供了让开发者自定义添加行为与函数调用的方法。openai在2023年8月份也新增了function calling的接口支持,方便开发者直接在调用openai api时传入可执行的函数列表描述。

但我对此有个疑惑,在openai提供接口之前,或者有些框架根本就不使用openai的特殊接口情况下,他们是怎么实现从与ai对话的内容中抽离出下一个行为与函数列表之类的语句的?

不得不说,在我思考这个问题的过程中,微软的autogen有点“误导”的嫌疑,因为在autogen的设计中,多个agent之间的对话竟然采用提示词要求结尾加上“TERMINATE"来作为对话结束的标志,而这个设计对于GPT3.5来说,是一个需要”碰运气“才能成功的判断。在我的实际测试中,能够及时判断退出的成功率很低。当然,这不是重点。只不过,这个设计一度让我以为应该扫描整个回复内容,找到关键字来触发对应函数。

后来,我重新思考了这个问题,发现答案或许相当简单。

我的猜测

既然我想要的是能够精确获取回复的文本中的关键字,那不如要求结构化的回复内容,那么,要求大模型回复的内容必须以json格式呈现,不就行了吗?

于是我做了如下试验,设计了这样一个提示词:

你接下来回复的所有内容必须以json格式呈现。你的回复包含3个标签,
"情感":表示你的心情,
"强度":表示你的情感强度,等级从0到10,
"内容":你的回复内容,
例如:
{
	"情感": "悲伤",
	"强度": "6",
	"内容": "我对此感到抱歉。"
}
接下来是我的回复:”我刚刚中了一百万美元大奖,打算分享给你一半“。

下面是各个模型的回答:

chatGPT3.5

{
	"情感": "惊喜",
	"强度": "9",
	"内容": "哇!这真是个令人惊喜的好消息!非常感谢你的慷慨分享!"
}

chatGPT4.0

{
	"情感": "高兴",
	"强度": "8",
	"内容": "这真是太棒了!恭喜你中奖,非常感谢你愿意分享!"
}

智谱清言(chatglm)

{
	"情感": "高兴",
	"强度": "8",
	"内容": "恭喜您!但作为AI,我无法接受或分享金钱。"
}

文心一言

{  
	"情感": "兴奋",  
	"强度": "8",  
	"内容": "哇!太棒了!中了大奖真是令人兴奋和高兴。非常感谢你的分享,我会珍惜这份幸运和祝福。祝贺你!" 
}

对于回复内容的分析来说,最担心的就是内容的结构不正确,或者ai出现胡说八道的情况。

测试到这一步,至少说明:几个常用的大模型,在简单的提示词下,都具有将回复内容完全结构化的能力。

函数调用模拟

我们以一个更详细的提示词模拟函数调用的过程。

你接下来回复的所有内容必须以json格式呈现。你的回复包含以下标签,
”action": 表示你接下来的行为,可选项为do_nothing, call_function, show_happy_face,
"function": 如果你要调用函数,则在这里填写函数名,否则,内容为空,
"args": 如果你调用函数,则需要填写对应函数的参数,可以为空,
“content": 对于你当前行为的描述.
这是一个例子:
{
"action": "call_function",
"function": "get_all",
"args": "true, abc",
"content": "I am going to get all."
}
以下是你可以使用的函数和函数的描述:
"get_myname": 获取你的名字;
"get_weather": 获取当前天气, 参数arg1为地点, 例如Beijing;
"shut_down": 关闭程序,参数arg1为一个数字n, 表示n秒后执行;
接下来是我的回复:"上海今天的天气如何?"

chatGPT3.5得到以下回复:

{
	"action": "call_function",
	"function": "get_weather",
	"args": "Shanghai",
	"content": "I am going to get the weather for Shanghai."
}

假设我们得到了这个回复的字符串,则在python中可以进行如下处理:

import json

# JSON 文本
json_text = '''
{
  "action": "call_function",
  "function": "get_weather",
  "args": "Shanghai",
  "content": "I am going to get the weather for Shanghai."
}
'''

def get_weather(location):
    print(f"Getting weather for {location}")
    # 这里可以添加实际获取天气的代码

# 解析 JSON
data = json.loads(json_text)

# 检查 action 是否为 call_function
if data["action"] == "call_function":
    # 获取函数名和参数
    function_name = data["function"]
    args = data["args"]

    # 根据函数名调用函数
    if function_name == "get_weather":
        get_weather(args)

总结

这只是一个针对智能体函数调用的简单实现。当前,无论是智能体框架还是openai自带的接口,都提供了添加函数、插件的方法,例如,openai提供了这种调用方式:

 response = openai.ChatCompletion.create(
     model="gpt-3.5-turbo-0613",
     messages=messages,
     functions=functions,
     function_call="auto",
)

因此,实际应用上也并不需要自己手动实现这一特性。

但是,考虑到如果开发者想自己添加功能标签,而这一功能并不在已有的结构化api信息中,那么,这种手动结构化的方式,或许是一种思路。文章来源地址https://www.toymoban.com/news/detail-811017.html

到了这里,关于ai智能体如何实现函数调用?我的猜测的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • java调用chatgpt接口,实现专属于自己的人工智能助手

    今天突然突发奇想,就想要用java来调用chatget的接口,实现自己的聊天机器人,但是网上找文章,属实是少的可怜(可能是不让发吧)。找到了一些文章,但是基本都是通过调用别人的库来完成的,导入其他的jar还有不低的学习成本,于是就自己使用HttpClient5写了一个,在这里讲

    2024年02月03日
    浏览(56)
  • 【AI人工智能大模型】如何基于大模型打造企业的智能底座?

    目录 如何基于大模型打造企业的智能底座? 1. 引言

    2024年02月08日
    浏览(78)
  • 对话人工智能 |新时代AI如何“落地“

    前言: Comate代码助手推出,现场生成了贪吃蛇游戏,我们距离AI自动编程还有多远? 在过去的几十年里,AI的发展取得了显著的进展,尤其是在机器学习和深度学习领域。然而,将AI应用于自动编程这一复杂任务依然面临着挑战。 AI自动编程的实现需要解决多个难题。首先,

    2024年02月08日
    浏览(56)
  • 人工智能该如何学习?详细的AI学习

    英杰社区 https://bbs.csdn.net/topics/617804998        OpenAI最近发布了一款名为ChatGPT的聊天机器人模型,它受到了广泛的关注和赞誉。ChatGPT以一种更贴近人类对话方式进行交互,可以回答问题、承认错误、挑战不正确的前提、拒绝不适当的请求等。它提供高质量的回答,并且与用

    2024年02月08日
    浏览(56)
  • 人工智能伦理:如何确保AI技术在智能家居领域的安全与隐私

    随着人工智能(AI)技术的不断发展和进步,智能家居已经成为了人们生活中不可或缺的一部分。智能家居系统可以帮助我们更方便、更高效地进行日常生活,例如控制家居设备、监控家庭安全、提供家庭服务等。然而,随着智能家居系统的普及,隐私和安全问题也逐渐成为了人

    2024年04月13日
    浏览(56)
  • AI赋能智能交通:人工智能如何改善交通流量管理和道路安全?

    *作者简介:国内 985在读博士生,人工智能、机器学习、云原生研究方向,发表多篇高水平CS论文。 *博客介绍: 主要分享攻读博士期间的所见所闻,欢迎交流合作科研项目。 导言: 当下,交通问题已成为城市化进程中的一个重要挑战。交通流量管理和道路安全一直是政府和

    2024年04月12日
    浏览(56)
  • 人工智能时代,你知道ai绘画如何使用吗?

    在数字时代的今天,人工智能正逐渐渗透到我们生活的方方面面,艺术创作也不例外。ai绘画软件作为一种创新的工具,为艺术爱好者、设计师和创作者提供了崭新的创作方式。但是,对于初次接触这类软件的人来说,可能会感到一些困惑和不知所措。如果你对ai绘画软件感兴

    2024年02月15日
    浏览(64)
  • 人工智能 AI 如何让我们的生活更加便利

    每个人都可以从新技术中获益,一想到工作或生活更为便利、简捷且拥有更多空余时间,谁会不为之高兴呢?借助人工智能,每天能够多一些空余时间,或丰富自己的业余生活,为培养日常兴趣爱好增添一点便利。从电子阅读器到智能家居,再到植物识别应用和智能室内花园

    2024年01月18日
    浏览(66)
  • 人工智能AI如何影响人力资源招聘工作?

    招聘作为一种职业,是大海捞针的缩影。经济波动、特定领域的需求、毕业生过多——所有这些因素,都会导致有成百上千人来争夺同一职位。 既然有这么多人在竞争有限数量的职位,那么HR应该如何让工作变得更加简单、容易管理呢?这就是人工智能发挥作用的地方。在这

    2024年01月17日
    浏览(61)
  • 【人工智能】企业如何使用 AI与人工智能的定义、研究价值、发展阶段的深刻讨论

    前言 人工智能(Artificial Intelligence),英文缩写为AI 。 它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。人工智能是新一轮科技革命和产业变革的重要驱动力量。 📕作者简介: 热爱跑步的恒川 ,致力于C/C++、Java、Python等

    2024年02月08日
    浏览(64)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包