Инструменты и JSON-ответы
Модель может не только писать текст, но и просить ваш код что-то сделать: посмотреть погоду, поискать в базе, отправить письмо. А ответ можно получить строго по вашей схеме — без «лишних слов».
Вызов функций
Опишите функции, которые готовы выполнить, и передайте их в запросе.
{
"model": "gpt-5.6-sol",
"messages": [{ "role": "user", "content": "Погода в Калининграде?" }],
"tools": [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "Текущая погода в городе",
"parameters": {
"type": "object",
"properties": { "city": { "type": "string" } },
"required": ["city"]
}
}
}
]
}Дальше сценарий из двух шагов: модель просит вызов — вы отдаёте результат.
// 1. Модель просит вызвать функцию
const first = await client.chat.completions.create({ model, messages, tools });
const call = first.choices[0].message.tool_calls?.[0];
if (call) {
const args = JSON.parse(call.function.arguments);
const result = await getWeather(args.city); // ваш код
// 2. Возвращаем результат и получаем финальный ответ
messages.push(first.choices[0].message);
messages.push({ role: "tool", tool_call_id: call.id, content: JSON.stringify(result) });
const final = await client.chat.completions.create({ model, messages, tools });
console.log(final.choices[0].message.content);
}Выполняет функции всегда ваш код. Проверяйте аргументы перед выполнением — модель может передать неожиданные значения.
Строгий JSON
Если ответ идёт дальше в код, задайте схему — модель вернёт объект нужной структуры, парсить текст не придётся.
{
"model": "gpt-5.6-sol",
"messages": [{ "role": "user", "content": "Разбери адрес: Ленинский 12, Калининград" }],
"response_format": {
"type": "json_schema",
"json_schema": {
"name": "address",
"schema": {
"type": "object",
"properties": {
"street": { "type": "string" },
"house": { "type": "string" },
"city": { "type": "string" }
},
"required": ["street", "house", "city"],
"additionalProperties": false
}
}
}
}Поиск в интернете
Сам шлюз в сеть не ходит. Добавьте инструмент вида web_search, выполняйте поиск своим сервисом и передавайте найденное обратно в диалог — модель ответит с опорой на свежие данные.