您的位置 首页 编程知识

OpenAI工具呼叫示例

from json import loads from signal import signal, sigin…

from json import loads from signal import signal, sigint  from requests import get  # pip install requests from openai import openai  # pip install openai  # suppressing "keyboardinterrupt" message signal(sigint, lambda _, __: exit())   def get_weather(latitude, longitude):     response = get(f"https://api.open-meteo.com/v1/forecast?latitude={latitude}&longitude={longitude}&current=temperature_2m")      data = response.json()     temperature = data['current']['temperature_2m']      return str(temperature)   tools = [{     "type": "function",     "function": {         "name": "get_weather",         "description": "get current temperature for provided coordinates in celsius.",         "parameters": {             "type": "object",             "properties": {                 "latitude": {"type": "number"},                 "longitude": {"type": "number"}             },             "required": ["latitude", "longitude"],             "additionalproperties": false         },         "strict": true     } }]  # openai client and chat history with the first (system) message client = openai() messages = [{"role": "system", "content": "you are a weather assistant."}]  while true:      # sending message and getting a response back (chat completion)     completion = client.chat.completions.create(model="gpt-4o-mini", messages=messages, tools=tools)      # getting the first choice (is it possible to get more than one at a time?)     choice = completion.choices[0]      # appending the message to the conversation history     messages.append(choice.message)      # switch based on the finish reason     match choice.finish_reason:          # stop (weirdly) means we got a message response         case "stop":              # asking for the user for a prompt             print(" chatgpt:", choice.message.content)             prompt = input(" user: ").strip()              # appending the user message to the conversation history             messages.append({"role": "user", "content": prompt})          # in case we got a tool call         case "tool_calls":              # getting the first tool call (is it possible to get more than one at a time?)             tool_call = choice.message.tool_calls[0]              # function name and arguments             function_name = tool_call.function.name             arguments = loads(tool_call.function.arguments)              match function_name:                  # calling the function and appending the result to conversation history                 case "get_weather":                     result = get_weather(**arguments)                     messages.append({"role": "tool", "tool_call_id": tool_call.id, "content": result})                  case unexpected_function:                     raise exception(f"unexpected function call: {unexpected_function}")          case unexpected_reason:             raise exception(f"unexpected "finish_reason": {unexpected_reason}") 
登录后复制

>运行它:

ChatGPT: How can I assist you with the weather today?  User: whats the weather in ny right now  ChatGPT: The current temperature in New York is -2.9°C. If you need more information about the weather or forecast, just let me know! 
登录后复制

以上就是OpenAI工具呼叫示例的详细内容,更多请关注php中文网其它相关文章!

本文来自网络,不代表四平甲倪网络网站制作专家立场,转载请注明出处:http://www.elephantgpt.cn/6984.html

作者: nijia

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

联系我们

联系我们

18844404989

在线咨询: QQ交谈

邮箱: 641522856@qq.com

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部