Как использовать OpenAI function calling python?
Я создаю бота ИИ и хочу использовать function calling, но не понимаю, как это сделать.
from openai import OpenAI
import json
from datetime import datetime
client = OpenAI(api_key="key")
def get_current_datetime():
return {"current_datetime": datetime.now().isoformat()}
functions = [
{
"name": "get_current_datetime",
"description": "Возвращает текущую дату и время в формате ISO 8601.",
"parameters": {
"type": "object",
"properties": {}
}
}
]
messages = [
{"role": "system", "content": "Ты можешь вызывать функции для получения информации."},
{"role": "user", "content": "Какое сейчас время?"}
]
response = client.chat.completions.create(
model="gpt-4o",
messages=messages,
functions=functions,
function_call="auto"
)
print(response)
Для начала создал простую функцию, которая возвращает дату, вроде все правильно, но OpenAI возвращает none.
Ответы (1 шт):
Автор решения: AnnaBazueva
→ Ссылка
Первое:
- Вы в
response
для аргументаfunction_call="auto"
— указали "auto"
т.е., применение функции зависит от того, как OpenAI интерпретирует запрос.- Можно передать более конкретную инструкцию:
function_call={"name": "get_current_datetime"} # Вызов нужной функции
Второе:
Каждый из описанных выше вариантов требует проверки ответа на валидность.
# Обрабатываем ответ
if "function_call" in response.choices[0].message:
pass
# Здесь обработайте результат применения функции.
else:
print("Ответ от OpenAI:", response.choices[0].message["content"])