开放人工智能 -函数调用入门体验

发布于:2024-10-24 编辑:匿名 来源:网络

简介LLM的基本用法是text in -> text out,输出是文本。但很多时候,我们希望能够以固定的格式输出,以便能够解析为结构化数据并传递给后续的处理逻辑。

在OpenAI发布函数调用之前,我们可能会使用文本输入,要求LLM在Prompt中格式化输出,或者传递LangChain框架提供的Parsers相关抽象。现在,OpenAI提供了函数调用,用于将LLM的输出格式化为函数调用所需的参数。

函数调用简介简单来说,函数调用就是根据(自定义)函数调用所需的参数,输出可识别的格式化输出。在 API 调用中,我们可以描述一个函数(函数名称、参数等),并让模型智能地选择输出一个包含调用一个或多个函数参数的 JSON 对象。

聊天完成 API 不直接调用函数;它只生成 JSON。我们可以在代码中使用这个 JSON 对象来调用我们描述的函数。

例如:我们想要构建一个电子邮件助手,可以根据用户输入发送电子邮件。用户的输入类似于“请发送电子邮件至xxx@.com,内容为:请参加明天上午9:00在学校礼堂举行的会议”。

发送邮件需要调用外部API,通常会封装在代码中,参数如send_email(to: string, body: string)。如您所见,send_email(to: string, body: string) 需要两个参数:收件人和电子邮件内容正文。

这两个参数需要用户输入才能提取。我们描述 send_email(to: string, body: string) 并将其传递给 Chat Completions API。

其返回内容将包含以下内容: 代码语言:javascript copy function=Function(arguments='{"to": "xxx@.com", "body": "请明天上??午9:00到学校礼堂参加会议"}', name='send_email') 您可以看到 OpenAI 从用户的文本输入中提取了调用 send_email 所需的参数。收件人和电子邮件内容正文以 JSON 形式分配给参数字段。

函数调用使用流程 下面以查询指定城市指定日期的天气为例介绍函数调用使用流程。天气查询使用高德地图的API。

定义函数代码语言:javascript copy def get_weather(city, date): base_url = "< api_key = os.getenv("AMAP_API_KEY") # AMAP API的API-KEY是从环境变量中获取的 params = { 'key': api_key, 'city': city, 'extensions': 'base', # 根据需要选择 'base' 或 'all' 'output': 'json', 'date': date # 指定日期中的日期格式:01-01 } 尝试:response = requests.get(base_url, params=params) data = response.json() logger.info(data) if data['status'] == '1': Weather_info = data[ 'lives'][0 ] # 如果选择了 'base' 扩展,则使用 'lives';如果选择 'all' 扩展,则使用 'forecasts' # logger.debug(f"City: {weather_info['city') ]}") # logger.debug(f "日期: {date}") # logger.debug(f"天气: {weather_info['weather']}")# logger.debug(f"温度:{weather_info['温度']} ℃") # logger.debug(f"风力:{weather_info['windpower']} 等级") return json.dumps(weather_info) else: print ("查询天气信息失败,错误代码:" + data['infocode']) except Exception as e: print("查询天气信息时出错:" + str(e)) 是 OpenAI 的 API 描述函数调用支持以数组形式传入多个函数描述代码语言:javascript copy tools = [ { "type": "function", "function": { "name": "get_weather", "description": "查询指定城市、指定日期的天气状况", " parameters": { "type": "object", "properties": { "city": { "type": "string", "description": "要查询的城市名称,如:北京", }, # "unit": {"type": "string", "enum": ["celsius", "fahrenheit"]}, "date": { "type": "string", "description": "需要查询的日期,例如:11-23",} }, "required": ["city", "date"], }, }, } ]completions API 以 JSON 格式提取参数 代码语言:javascript copy client = OpenAI()## 我们需要结合用户的输入 通过向OpenAI提取函数调用所需的参数 messages = [ { "role": "user", "content": "How is the Weather in Shen on December 1st" } ]### 第一次调用Chat Completions API,提取参数response = client.chat.completions.create( model="gpt-3.5-turbo-", messages=messages, tools=tools, tool_choice="auto", # auto 是默认值,但我们会明确表示 )response_message = response.choices[0].messagetool_calls = response_message.tool_calls # 包含函数调用所需的信息。响应中的tool_calls包括与我们描述的函数相关的信息以及所需的参数。

开放人工智能 -函数调用入门体验

站长声明

版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,欢迎发送邮件 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。

标签:

相关文章

  • 生物科技公司珠海贝斯昂科获近亿元天使轮融资

    生物科技公司珠海贝斯昂科获近亿元天使轮融资

    投资圈(ID:pedaily)据7月26日消息,生物科技公司珠海贝斯昂科(以下简称:贝斯生物)近日完成天使轮融资近亿元。 本轮融资,本轮主要投资方为弘晖资本、弘励 Ventures 和 Panacea Ventures。 横琴金投也参与了本轮投资。 本轮融资将主要用于贝斯生物独有的基因编辑NK平台和

    06-18

  • ONES半年融资近亿美元,打破国内研发管理领域历史记录

    ONES半年融资近亿美元,打破国内研发管理领域历史记录

    投资社区(ID:pedaily)9月22日,ONES宣布完成1万美元C轮融资。 这距离今年6月底ONES宣布连续完成3亿元B1、B2轮融资仅2个多月。 据悉,本轮融资领投方为新加坡政府投资公司GIC,老股东源码资本、XVC已连续三轮融资。 从投资者的角度来看,企业级研发管理工具ONES在半年内已连

    06-17

  • 力金科技获工机基金、中金资本、基石资本7.3亿战略投资

    力金科技获工机基金、中金资本、基石资本7.3亿战略投资

    投资界消息(ID:pedaily),力金科技(8)12月5日宣布引入战略投资者,工机基金、中金资本、基石资本、东方汇嘉等多家机构认购旗下深圳利金科技合计7.3亿元股权。 此次增资,距国投上次增资11.5亿仅两个多月。 先后获得多家战略投资者注资,带来一定估值溢价。 可见,一体化

    06-17

  • 马鞍山注册百亿新基金

    马鞍山注册百亿新基金

    据投资界(ID:pedaily)获悉,马鞍山高质量发展产业基金有限公司于2020年3月29日完成中国基金会计协会注册基金总规模1亿元,首期20亿元,由市财政出资。 该基金面向马鞍山市“1+N”产业,聚焦企业全生命周期,重点支持设立天使投资、科技创新、产业投资基金群,形成高质量发

    06-17

  • 美国:2022年光伏装机将超越风能

    美国:2022年光伏装机将超越风能

    据美国能源信息署(EIA)预测,到2022年,美国大规模太阳能装机将首次超过风电。 随着各国政府减少对陆上风电的支持,电网规模的光伏装机预计将超过风电16GW,而风电则为6GW。 美国能源信息署预计,2019年风电新增装机总量将达到18GW,略高于光伏的16GW。 随着光伏装机加速,

    06-08

  • 共享健身仓“公园盒子”获数千万元A+轮融资,华住酒店领投

    共享健身仓“公园盒子”获数千万元A+轮融资,华住酒店领投

    据投资界4月17日消息,共享健身仓“公园盒子”宣布,获得华住酒店集团领投的数千万投资。 人民币A+融资。   这是Park Box成立一年以来获得的第四笔投资。 此前于2018年3月获得个人天使轮融资; 2018年7月获得熊猫资本数百万元Pre-A轮融资;并于2020年11月获得海鲸资本数千

    06-18

  • 5G研究院、5G产业基金落地北京亦庄

    5G研究院、5G产业基金落地北京亦庄

    继北京50%的5G基站部署在北京经济技术开发区后,记者今日从开发区获悉,北京50亿5G产业基金和5G研究院正式落户北京亦庄。 据介绍,北京5G产业基金是北京市政府参与设立的首支5G产业专项基金,规模50亿元。 拟由开发区国有投融资平台亦庄国投、北京科技创新投资管理有限公司和

    06-06

  • 百康生物完成近亿元A轮融资,方盛基金领投

    百康生物完成近亿元A轮融资,方盛基金领投

    投资界(ID:pedaily)1月12日消息,体外诊断(IVD)及上游核心原材料开发商南京百康生物科技必康生物医药材料股份有限公司(以下简称“必康生物”)宣布完成近亿元A轮融资。 本轮融资是百康生物科技首笔市场化融资。 由方盛基金领投,新产业投资、国谦创投、邦盛资本跟投,青

    06-17

  • 商务部:与部分CPTPP成员国进行了非正式接触

    商务部:与部分CPTPP成员国进行了非正式接触

    商务部:与部分CPTPP成员国进行了非正式接触。

    06-18

  • 酷家乐全面收购Modelo,正式进军房地产和建筑领域

    酷家乐全面收购Modelo,正式进军房地产和建筑领域

    据投资界消息,酷家乐近日宣布完成全资收购“建筑地产设计资产管理及三维数据可视化平台”王牌” 。 收购后,Modelo品牌保持独立,在酷家乐技术、资本和业务的全力支持下,为建筑和房地产领域的企业客户提供一体化设计和营销解决方案。 随着精装修房的流行,家居企业的渠道发

    06-17

  • 手游新媒体小品:直投版与“三屏合一”

    手游新媒体小品:直投版与“三屏合一”

    在今年年初举办的中国手游产业峰会上,GMGC全球手游联盟秘书长宋炜发表了题为的主题演讲,据他预计,今年手游市场整体规模将突破1亿元。 而到年底我们看这个数字,已经突破了1亿,明年甚至会达到1亿。 如此繁荣的手游市场,自然会催生出大量参差不齐的手游媒体。 除了彼此之间

    06-18

  • 减少浪费的制造方法和技术

    减少浪费的制造方法和技术

    随着环境问题日益严峻,消费者对环保产品的需求不断上升,各行业再也不能忽视可持续发展的重要性。 当我们回顾历史时,我们会发现制造业的发展往往伴随着大量的资源浪费。 自工业革命以来,企业更加关注生产效率和产品数量,而不是资源的有效利用。 那个时候,资源似乎取之不

    06-17