当前位置: 首页 > news >正文

OpenAI ChatGPT-4开发笔记2024-04:Chat之Tool之2:multiple functions

从程序员到ai Expert

  • 1 定义参数和函数
  • 2 第一轮chatgpt
  • 3 第一轮结果和function定义全部加入prompt再喂给chatgpt
  • 4 大结局
  • 7 参考资料

上一篇解决了调用一个函数的问题。这一篇扩展为调用3个。n个自行脑补。

1 定义参数和函数

#1.设定目标
import json
import openai#1.定义parameters for text completion
ai_prompt = [{"role": "user", "content": f"汇总3个function的aiXpert的结果"}
]#2.定义self-function,3个
def search_baidu(keyword):return f"{keyword}是一个技术博主"def search_google(keyword):return f"{keyword}很牛"def search_bing(keyword):return f"{keyword}喜欢水鱼"#3.设置参数
ai_function = [{"type": "function","function": {"name": "search_baidu","parameters": {"type": "object","properties": {"keyword": {"type": "string",}},"required": ["keyword"],},}},    {"type": "function","function": {"name": "search_google","parameters": {"type": "object","properties": {"keyword": {"type": "string",}},"required": ["keyword"],},}},        {"type": "function","function": {"name": "search_bing","parameters": {"type": "object","properties": {"keyword": {"type": "string",}},"required": ["keyword"],},}}
]available_functions = { "search_baidu": search_baidu, "search_google": search_google, "search_bing": search_bing } #4.define function to call ChatGPT 
def chat_completions(parameter_message):response = openai.chat.completions.create(model   ="gpt-3.5-turbo-1106",messages=parameter_message,tools   =ai_function,tool_choice="auto", )return response.choices[0].message

2 第一轮chatgpt

#5.发起首次请求,告诉gpt要做什么,已经有哪些函数可以调动
first_response = chat_completions(ai_prompt)
tool_calls = first_response.tool_calls

3 第一轮结果和function定义全部加入prompt再喂给chatgpt

# 第一轮chat completions的结果加入prompt,再把function参数加入prompt,然后一起喂给chatgptif tool_calls:ai_prompt.append(first_response)  # 第一轮chat completions的结果加入prompt,# 将所有函数调用的结果拼接到消息列表里for tool_call in tool_calls:function_name = tool_call.function.namefunction_to_call = available_functions[function_name]function_args = json.loads(tool_call.function.arguments)function_response = function_to_call(**function_args)ai_prompt.append({"tool_call_id": tool_call.id,"role": "tool","name": function_name,"content": function_response,}) print(chat_completions(ai_prompt))

4 大结局

ChatCompletionMessage(content='根据三个搜索引擎的结果,"AIxPert" 是一个技术博主,非常牛,也喜欢水鱼。', role='assistant', function_call=None, tool_calls=None)

在这里插入图片描述

7 参考资料

  1. OpenAI的多函数调用(Multiple Function Calling)简介
  2. OpenAI API
http://www.lryc.cn/news/277424.html

相关文章:

  • 14:00面试,14:07就出来了,问的问题有点变态。。。
  • 206. 反转链表(Java)
  • LeetCode 2807. 在链表中插入最大公约数【链表,迭代,递归】1279
  • Hive之set参数大全-3
  • Golang拼接字符串性能对比
  • 【问题解决】web页面html锚点定位后内容被遮挡问题解决【暗锚】
  • easyui datagrid无数据时显示无数据
  • 动态规划python简单例子-斐波那契数列
  • 免 费 搭 建 多模式商城:b2b2c、o2o、直播带货一网打尽
  • Python AttributeError: ‘NoneType‘ object has no attribute ‘shape‘如何解决
  • vue3自定义确认密码匹配验证规则
  • 岗位所处定位,岗位职责
  • 2024阿里云服务器配置推荐方案
  • OceanBase原生分布式数据库
  • 首次使用go-admin
  • 软件工程概论---内聚性和耦合性
  • 纯血鸿蒙「扩圈」100天,酝酿已久的突围
  • UICollection Compositional Layout全详解
  • 单例模式的模板
  • C#基础-空处理
  • 测试平台开发vue组件化重构前端代码
  • 龍运当头--html做一个中国火龙祝大家龙年大吉
  • Dockerfile语法和简单镜像构建
  • uniapp使用wxml-to-canvas开发小程序保存canvas图片
  • 关于数据库切换的麻烦
  • Qt/QML编程学习之心得:Linux下读写文件File(24)
  • 【Vue2+3入门到实战】(22)VUE3之组合式API - setup、reactive和ref函数、computed、watch、生命周期函数详细讲解
  • 如何在互联网上找到你想要的数据?
  • 揭秘淘宝商品详情API如何助力电商创新发展
  • vue element plus Space 间距