ChatGPT 更新:大杀器!函数调用示范

自ChatGPT 3.5/4 双双升级:更长,更便宜,更开放,更可控发出去之后,有朋友问怎么接入 API。‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

什么是函数调用?

函数调用指 Chat-GPT 模型会自动逻辑判断后,调用在代码中预先定义好的某个或者多个函数,获得返回的信息后,再用自然语言形式回复用户。

以官方的回答天气情况时,调用天气网站的提供的API来回答用户问题举例。‍‍‍‍‍

d2586e8cf646247382e2acf55fd15c2b.png

调用过程两部分:

一、定义函数,

functions = [{"name": "get_current_weather","description": "获取指定地点的当前天气","parameters": {"type": "object","properties": {"location": {"type": "string","description": "城市和州,例如:San Francisco, CA",},"unit": {"type": "string", "enum": ["washington", "boston"]},},"required": ["location"],},}]

二、发消息给ChatGPT,模型决定要不要调用,调用则把外部API返回信息再发给模型,模型把包括函数返回信息的完整回复返回给用户。‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

全部完整代码如下:

import openai
import json
Import os
openai.api_key = os.getenv("OPENAI_API_KEY")// 此函数为固定返回相同天气的示例的函数,实际应用中替换成你需要调用的外部API
def get_current_weather(location, unit="boston"):"""获取指定地点的当前天气"""weather_info = {"location": location,"temperature": "72","unit": unit,"forecast": ["sunny", "windy"],}return json.dumps(weather_info)def chat(content):content = "What's the weather like in Boston?"# 1:将用户的提问和函数定义发送给GPTmessages = [{"role": "user", "content": content}]functions = [{"name": "get_current_weather","description": "获取指定地点的当前天气","parameters": {"type": "object","properties": {"location": {"type": "string","description": "城市和州,例如:San Francisco, CA",},"unit": {"type": "string", "enum": ["washington", "boston"]},},"required": ["location"],},}]# 2:获取 GPT 的返回response = openai.ChatCompletion.create(model="gpt-3.5-turbo-0613",messages=messages,functions=functions,function_call="auto",  # 是否调用函数,auto是默认值,可以不指定)response_message = response["choices"][0]["message"]# 3:GPT会判断是否需要调用函数,是则返回调用标记为真。if response_message.get("function_call"):# 4:调用函数available_functions = {# 此处可以多个函数"get_current_weather": get_current_weather,}  function_name = response_message["function_call"]["name"]fuction_to_call = available_functions[function_name]function_args = json.loads(response_message["function_call"]["arguments"])# 5:获得函数返回信息function_response = fuction_to_call(location=function_args.get("location"),unit=function_args.get("unit"),)# 6:用返回信息封装助手信息结构体messages.append(response_message)  # 将助手的回复加入对话messages.append({"role": "function","name": function_name,"content": function_response,})  # 7: 将封装好,包含函数返回信息再发送给GPT,并获得GPT自然语言形式的回答second_response = openai.ChatCompletion.create(model="gpt-3.5-turbo-0613",messages=messages,)  # 从GPT获取一个新的响应,这个响应可以看到函数的响应return second_response# 输出应答
print(run_conversation())

整个用户交互及程序的流程如下:

  1. 用户问一个问题,例如“波士顿现在的天气怎么样?”

  2. 这个问题被发送给GPT模型,并告知其有一个可以调用的函数get_current_weather。

  3. GPT模型确定它需要调用这个函数来回答用户的问题,所以它返回一个“函数调用”的请求,指定要调用的函数名称和参数。

  4. 代码中的运行会查找对应的函数(在这个例子中是get_current_weather),并用GPT模型指定的参数调用它。

  5. 函数返回天气信息,这个信息被发送回GPT模型。

  6. GPT模型使用这个天气信息来生成一个回答,例如“波士顿现在的天气是晴朗的,温度是72度”。

也有朋友问:它实际应用场景是什么样的?

问了一下 ChatGPT:‍‍‍‍‍‍

填充模板:可以将特定的信息填充到预定义的模板中,生成个性化的文本,如生成定制化的邮件、通知或报告。  

条件逻辑:用于在生成的文本中实现条件分支和逻辑判断,根据特定条件生成不同的文本输出,增强了文本的灵活性和可定制性。  

变量和状态管理:可以引入变量和状态管理,使得文本可以跟踪和操作特定的信息,实现更加复杂的任务和交互。  

上下文控制:可以在生成文本的过程中引入上下文信息,控制模型对上下文的理解和应答,提高文本的连贯性和一致性。  

多模态输入和输出:可以实现多模态数据(如文本、图像、视频等)的输入和输出,更加丰富和多样化的文本生成和理解任务。

ChatGPT

官方给了三个应用场景举例:

  1. 创建聊天机器人通过调用外部工具来回答问题

  2. 将自然语言转换为 API 调用或数据库查询

  3. 从文本中提取结构化数据

我的回答是:例子里只是列举了一个查询天气状况的情况。实际上它有很多场景可以扩展。‍‍‍‍‍

chatGPT 模型本质还是一个通用AI模型,它的能力大多数表现文字和图片方面。其次它的知识需要训练,无法做到实时更新数据。虽然它有接近人类的逻辑推理能力,可以根据已知信息来推导问题答案。‍‍‍‍‍‍‍

应用场景的落地可以往两个方面扩展:

一、实时性的信息获取和加工。例如新闻,天气,交通状况,售票情况,停车位情况,航班情况,考试分数查询等等;‍‍

二、垂直领域的能力。例如调用别的人工智能机器人:阿尔法围棋(AlphaGo) 来陪你下棋,调用运输机器人帮你把货物运到目的地,调用专门法律政策类型的智能助手(这类方面问题因为安全和政策的原因,GPT的输出被限制了)帮你查询和准备资料等等。‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍


关注我,领取九大类别,数百篇 AI 学习资源。

一起学习 ChatAI,掌握 AI 工具,不被时代淘汰。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/34826.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OpenAI 突然发布了一个 ChatGPT 的大更新

2023.06.14 凌晨,OpenAI 突然发布了一个 ChatGPT 的大更新。我关注的更新内容是:在 Chat Completions API 新增函数调用(Function call)功能 什么是函数调用? 开发者现在可以向 GPT 模型描述函数,并让模型…

MidJourney使用教程:二 初识Prompts

最近AIGC这么火,除了chatGPT以外,这种图像类的产品也是非常有意思,其中就有MidJourney和Stable Diffusion这俩个比较出圈。这里我先选择MidJourney来体验并整理出一个教程。一方面MidJourney最简单,能当路Discord,注册…

android 微信分享出去的图片不显示或显示成应用图标

第一次写博客,写得可能比较烂,大家见谅。 今天测试给提了个问题,先上一下出现的问题,自己分享后微信里面显示出来的界面(正常) 但是分享出去后,其他人看到要不就不显示图片要不就是显示应用的lo…

Qt 设置软件图标

文章目录 前言一、设计图标文件二、修改代码文件 1.方法一2.方法二三、生成可执行程序 前言 程序发布通常会配有设计的独特的图标。这里介绍一下在 windows上设置Qt应用程序图标的方法。 一、设计图标文件 图标文件支持多种格式。其中.ico与.png应用较多。创建.ico/png文件&am…

u-modal不能控制显示隐藏 icon图标不显示引入问题

Modal 对话框 使用了 v-model 控制对话框显示&#xff0c;但是在真实使用的使用&#xff0c;发现这个 值 改变了 true 之后&#xff0c;对话框仍然不显示 <u-modal v-model"showModal" width534rpx confirm-text保存 cancel-text不保存 :show-cancel-buttontrue …

chatgpt如何接入本地知识库?我们来看看EMNLP 2022 INFO是如何融入本地知识的

一、概述 title&#xff1a;You Truly Understand What I Need : Intellectual and Friendly Dialogue Agents grounding Knowledge and Persona 论文地址&#xff1a;You Truly Understand What I Need : Intellectual and Friendly Dialog Agents grounding Persona and Know…

唯一客服系统源码独立部署版+前端VUE开源+客服uniapp源码+ChatGPT知识库安装配置详细教程...

唯一客服系统是一款基于Golang Gin框架开发的在线客服系统&#xff0c;可以提供独立部署版&#xff0c;程序数据全部私有安装在自己服务器。访客咨询界面自适应响应式设计&#xff0c;完全可以适配于PC网站、移动端、APP内嵌等场景下。客服端提供PC后台管理&#xff0c;实时收到…

微软学生开发者峰会参加体验

#微软学生开发者峰会# #开源# #创业# 本次微软学生开发者峰会于2022年10月14日上午9:30在上海召开&#xff0c;线上线下均可参加。 峰会围绕技术、学术、开源、创业四大主题&#xff0c;帮助开发者认识各专业、行业领域那些熠熠闪光的同路人或先行者&#xff0c;感受那些伴随…

未来的两马之争,马化腾如何才能打赢马云?

论身高&#xff0c;马云目测165左右&#xff0c;马化腾173以上&#xff0c;两者差距接近10cm。 论年龄&#xff0c;马化腾出生于1971年&#xff0c;今年47岁&#xff0c;马云出生于1964年&#xff0c;今年54岁&#xff0c;不管身高和年龄&#xff0c;真打起来马云都没有优势啊。…

【每日新闻】马云:腾讯是阿里巴巴发展中的一个伴侣

点击蓝字关注我们 更多精彩&#xff0c;请点击上方蓝字关注我们&#xff01; 每日新闻播报 第04-23期 1 趋势洞察 马云&#xff1a;腾讯是阿里巴巴发展中的一个伴侣 中国企业家俱乐部主席、阿里巴巴集团董事局主席马云表示&#xff0c;今天其实我们社会问题很多&#xff0c;挑战…

快半步是天才,快一步是疯子,马云14年前错失一个“微信”?

作者丨电商君 来源丨电商报&#xff08;ID&#xff1a;kandianshang&#xff09;中国电商影响力媒体&#xff01; 马云14年前错失一个“微信”&#xff1f; 如今的阿里巴巴&#xff0c;在全球范围里都是航母级的超级国际公司&#xff0c;但是如果要说阿里巴巴还有那么一点遗憾的…

孙正义与马云的故事:马云就是他心目中的那个人

阿里巴巴集团IPO&#xff0c;大家都说孙正义是最大赢家。在我看来&#xff0c;孙正义既是赢家&#xff0c;也是输家。 孙正义是赢家很好理解&#xff0c;阿里集团IPO&#xff0c;孙正义赚得最多。 关于孙正义与马云的故事&#xff0c;故事的开始是这样的&#xff1a;1999年10月…

他是马云最敬佩的人,白手起家,28岁已经成为世界名人

互联网是一个创造奇迹的地方&#xff0c;这位年轻的世界名人来自中国广东&#xff0c;他是农村穷小子出身&#xff0c;没背景没学历&#xff0c;白手起家&#xff0c;如今是马云最敬佩的人&#xff0c;28岁的郭盛华已经是世界互联网响当当的人物了&#xff0c;他是东方联盟的CE…

心理学博士做了阿里巴巴首席技术官并且给马云赚了5000亿

编 辑&#xff1a;钟灵 来 源&#xff1a;正和岛&#xff08;ID&#xff1a;zhenghedao&#xff09; 那个“骗”走马云10个亿&#xff0c;被阿里同事指着鼻子让他滚蛋的人&#xff0c;后来怎么样了&#xff1f; 后来&#xff0c;他成为阿里巴巴集团首席技术官&#xff0c;而且被…

马云对话马斯克(全文):要警惕AI?该移民火星?如何更长寿?马化腾反对产业割裂和技术脱钩...

来源&#xff1a;未来论坛 今天&#xff08;8月29日&#xff09;&#xff0c;2019年世界人工智能大会在上海召开&#xff0c;500余位国内外顶尖高校、行业领军企业、国际组织的重要嘉宾&#xff0c;全球AI知名企业领袖齐聚于此。本次大会以“智联世界&#xff0c;无限可能”为主…

马云与马化腾的疫情对决:一场“文科生”与“理工男”的较量

作者 | 良叔 来源 | 良大师&#xff08;ID:liang_da_shi) 疫情发生后&#xff0c;各大公司和企业家在危难中&#xff0c;积极援助&#xff1a; 万达捐款1000万&#xff0c;免除租金超40亿元&#xff0c;保障就业岗位136万个&#xff1b; 华为捐款3000万&#xff0c;还为火神山…

谁将会成为马云的第九个孩子?

狂人马云其实可以算得上互联网领域的大龄超生“产妇”&#xff0c;光阴即逝&#xff0c;十年的光阴&#xff0c;马云产下8个“孩子”&#xff0c;阿里巴巴、淘宝网、支付宝、雅虎中国、口碑网、阿里旺旺&#xff08;软件&#xff09;、阿里妈妈和刚2个月大的阿里云&#xff0c;…

马云像火,马化腾像水:8000字深度拆解互联网二马的不同人生

作者 l 鱼樵 来源 l 鱼樵&#xff08;ID&#xff1a;yuqiaofeiyu&#xff09; 火走虚&#xff0c;水走实。 二马当先&#xff0c;可谓冰火两重天。 江湖中人马云像火&#xff0c;“火”烧“云”&#xff0c;性格如燎原烈火&#xff0c;噼里啪啦火光冲天&#xff1b;影子企业家马…

BAT掌舵人 马云李彦宏马化腾的星座故事

马化腾低调有原因&#xff1a;跟李彦宏同星座 2015-10-12 10:00:00 作者&#xff1a;TechWeb 收藏文章 分享到 评论(3) 10月12日消息&#xff0c;此前&#xff0c;百度CEO李彦宏参加央视《开讲啦》时曾被撒贝宁问及为何如此低调&#xff0c;他回答道因为自己是天蝎座。其实…