Работа с OpenAI-запросами
Вы можете передавать в модели GigaChat запросы в формате OpenAI. Такая возможность помогает проверять и адаптировать работу различных решений, использующих формат, к работе с моделями GigaChat.
Для работы с OpenAI-запросами используйте метод POST /openai/v1/chat/completions.
Полученые запросы преобразуются в формат POST /v2/chat/completions и передаются в модель.
Метод возвращает ответ в формате OpenAI chat.completion.
Описание формата запросов и ответов — в официальной документации OpenAI . Официальный формат ответа может отличаться от реализации в GigaChat API B2Bank.
Для работы с методом нужно получить доступ .
В этом разделе вы найдете примеры запросов, демонстрирующих основные сценарии работы с моделями.
Примеры запросов
Генерация текста
Наряду с обычной поддерживается генерация в режиме потоковой передачи токенов.
curl -X POST 'https://gigachat-ift.sberdevices.delta.sbrf.ru/openai/v1/chat/completions' \
--cert <сертификат>.pem \
--key <ключ>.key \
-H 'Content-Type: application/json' \
-d '{
"model": "GigaChat-3-Ultra",
"messages": [
{"role": "system", "content": "Ты — краткий помощник."},
{"role": "user", "content": "Объясни, что такое OAuth, двумя предложениями."}
],
"stream": false,
"max_completion_tokens": 256,
"temperature": 0.7
}'
curl -N -X POST 'https://gigachat-ift.sberdevices.delta.sbrf.ru/openai/v1/chat/completions' \
--cert <сертификат>.pem \
--key <ключ>.key \
-H 'Content-Type: application/json' \
-d '{
"model": "GigaChat-3-Ultra",
"messages": [
{"role": "user", "content": "Напиши короткий стих про прокси-сервер."}
],
"stream": true
}'
Распознавание изображений
Кроме изображений, сохраненных в хранилище, файлы можно передавать напрямую в запросе.
curl -X POST 'https://gigachat-ift.sberdevices.delta.sbrf.ru/openai/v1/chat/completions' \
--cert <сертификат>.pem \
--key <ключ>.key \
-H 'Content-Type: application/json' \
-d '{
"model": "GigaChat-3-Ultra",
"messages": [
{"role": "user", "content": [
{"type": "text", "text": "Что на картинке?"},
{"type": "file", "file": {"file_id": "<идентификатор_из_хранилища>"}}
]}
],
"stream": false
}'
curl -X POST 'https://gigachat-ift.sberdevices.delta.sbrf.ru/openai/v1/chat/completions' \
--cert <сертификат>.pem \
--key <ключ>.key \
-H 'Content-Type: application/json' \
-d '{
"model": "GigaChat-3-Ultra",
"stream": false,
"max_completion_tokens": 512,
"messages": [
{
"role": "user",
"content": [
{ "type": "text", "text": "Что изображено на картинке?" },
{ "type": "image_url", "image_url": { "url": "data:image/png;base64,{{b64}}" } }
]
}
]
}'
Работа с функциями
Генерация параметров для собственных функций
С помощью метода можно генерировать аргументы для собственных функций или использовать их в контексте истории сообщений.
curl -X POST 'https://gigachat-ift.sberdevices.delta.sbrf.ru/openai/v1/chat/completions' \
--cert <сертификат>.pem \
--key <ключ>.key \
-H 'Content-Type: application/json' \
-d '{
"model": "GigaChat-3-Ultra",
"messages": [
{"role": "user", "content": "Какая погода в Москве?"}
],
"tools": [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "Получить текущую погоду в городе",
"parameters": {
"type": "object",
"properties": {
"city": {"type": "string", "description": "Название города"}
},
"required": ["city"]
}
}
}
],
"tool_choice": "auto",
"stream": false
}'
Передайте описание функции вместе запросом:
curl -X POST 'https://gigachat-ift.sberdevices.delta.sbrf.ru/openai/v1/chat/completions' \
--cert <сертификат>.pem \
--key <ключ>.key \
-H 'Content-Type: application/json' \
-d '{
"model": "GigaChat-3-Ultra",
"messages": [
{"role": "user", "content": "Какая погода в Москве?"}
],
"tools": [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "Получить текущую погоду в городе",
"parameters": {
"type": "object",
"properties": {
"city": {"type": "string", "description": "Название города"}
},
"required": ["city"]
}
}
}
],
"tool_choice": "auto",
"stream": false
}'
В ответ модель вернет параметры для вызова функции:
{
"id": "f58ee13d-11ba-4391-9f9a-3dee6d29932e",
"choices": [
{
"index": 0,
"finish_reason": "tool_calls",
"message": {
"role": "assistant",
"content": null,
"tool_calls": [
{
"index": 0,
"type": "function",
"id": "ea274253-ad4b-496d-9586-06ce9e6243bc",
"function": {
"name": "get_weather",
"arguments": "{\"city\":\"Москва\"}"
}
},
{
"index": 1,
"type": "state",
"id": "019f6554-4f50-7626-86b2-b778ca1ce25d"
}
]
}
}
],
"created": 1784111451,
"model": "GigaChat-2-Max:32.9.23.6",
"object": "chat.completion",
"system_fingerprint": "",
"usage": {
"prompt_tokens": 63,
"completion_tokens": 39,
"total_tokens": 102
}
}
Передайте результат работы функции вместе с предыдущими сообщениями:
curl -X POST 'https://gigachat-ift.sberdevices.delta.sbrf.ru/openai/v1/chat/completions' \
--cert <сертификат>.pem \
--key <ключ>.key \
-H 'Content-Type: application/json' \
-d '{
"model": "GigaChat-3-Ultra",
"messages": [
{"role": "user", "content": "Какая погода в Москве?"},
{
"role": "assistant",
"content": null,
"tool_calls": [
{
"index": 0,
"type": "function",
"id": "ea274253-ad4b-496d-9586-06ce9e6243bc",
"function": {
"name": "get_weather",
"arguments": "{\"city\":\"Москва\"}"
}
},
{
"index": 1,
"type": "state",
"id": "019f6551-0567-7e59-a804-3f4ca6c213d1"
}
]
},
{"role": "tool", "tool_call_id": "ea274253-ad4b-496d-9586-06ce9e6243bc", "content": "+18, ясно, ветер 3 м/с"}
],
"tools": [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "Получить текущую погоду в городе",
"parameters": {
"type": "object",
"properties": {
"city": {"type": "string", "description": "Название города"}
},
"required": ["city"]
}
}
}
],
"tool_choice": "auto",
"stream": false
}'
Модель сгенерирует ответ за основе полученных сообщений:
{
"id": "a6c12372-fd11-478a-a6ad-b3ae666aac9c",
"choices": [
{
"index": 0,
"finish_reason": "stop",
"message": {
"role": "assistant",
"content": "В Москве сейчас +18, ясно, ветер 3 м/с.",
"tool_calls": [
{
"index": 0,
"type": "state",
"id": "019f6552-386b-74ea-af15-2488380e11c8"
}
]
}
}
],
"created": 1784111315,
"model": "GigaChat-2-Max:32.9.23.6",
"object": "chat.completion",
"system_fingerprint": "",
"usage": {
"prompt_tokens": 150,
"completion_tokens": 16,
"total_tokens": 166
}
}
Вызов встроенных функций
Встроенные функции, например, создание из ображений, можно вызывать в отдельном сообщении или в контексте истории сообщений. Поддерживаются встроенные функции, которые можно использовать в запросе POST /v2/chat/completions.
curl -X POST 'https://gigachat-ift.sberdevices.delta.sbrf.ru/openai/v1/chat/completions' \
--cert <сертификат>.pem \
--key <ключ>.key \
-H 'Content-Type: application/json' \
-d '{
"model": "GigaChat-3-Ultra",
"stream": false,
"messages": [
{ "role": "user", "content": "Нарисуй красного дракона на скале на закате" }
],
"tools": [
{ "type": "image_generate" }
],
"tool_choice": "auto"
}'
curl -X POST 'https://gigachat-ift.sberdevices.delta.sbrf.ru/openai/v1/chat/completions' \
--cert <сертификат>.pem \
--key <ключ>.key \
-H 'Content-Type: application/json' \
-d '{
"model": "GigaChat-3-Ultra",
"stream": false,
"messages": [
{ "role": "user", "content": "Как нынче погода?" },
{
"role": "assistant",
"tool_state_id": "019f6567-18c9-74f0-8739-5a1793bf5c77",
"content": "Сегодня, 17 июля 2026 года, погода в России сильно различается в зависимости от региона.\n\n- **В Москве и Подмосковье** ожидается ясная или малооблачная погода без осадков. Температура воздуха днем прогреется до +20…+25 °C, а ночью опустится до +8…+14 °C. Ветер будет северным со скоростью 4–11 м/с. [sources=[1, 3, 5]]\n- **В Санкт-Петербурге** прогнозируется переменная облачность и более теплая погода: утром около +14,5 °C, а днем воздух может прогреться до +23…+25 °C. [sources=[4]]\n- **В Кировской области** день будет холоднее и дождливее: ожидаются грозы, сильный северный ветер и температура днем от +17 до +22 °C. [sources=[2]]",
"annotations": [
{
"type": "url_citation",
"url_citation": {
"start_index": 0,
"end_index": 0,
"title": "Погода в Москве 17 июля 2026 года",
"url": "https://vm.ru/news/1343144-sinoptiki-poobeshali-moskvicham-yasnuyu-pogodu-bez-osadkov-17-iyulya"
}
},
{
"type": "url_citation",
"url_citation": {
"start_index": 0,
"end_index": 0,
"title": "Стал известен прогноз погоды в Кировской области на 17 июля 2026 года",
"url": "https://prochepetsk.ru/news/80446"
}
},
{
"type": "url_citation",
"url_citation": {
"start_index": 0,
"end_index": 0,
"title": "Гидрометцентр: 17 июля в Москве до +22 градусов, без осадков — EADaily, 17 июля 2026 — Общество. Новости, Новости России",
"url": "https://eadaily.com/ru/news/2026/07/17/gidrometcentr-17-iyulya-v-moskve-do-22-gradusov-bez-osadkov"
}
},
{
"type": "url_citation",
"url_citation": {
"start_index": 0,
"end_index": 0,
"title": "Прогноз погоды в Петербурге на 17 июля: жара и переменная облачность - 17 июля 2026 | ФОНТАНКА.ру",
"url": "https://www.fontanka.ru/2026/07/17/76538388/"
}
},
{
"type": "url_citation",
"url_citation": {
"start_index": 0,
"end_index": 0,
"title": "Погода в Москве и Подмосковье 17 июля 2026",
"url": "https://www.5-tv.ru/news/5078846/solnecnye-intervaly-isvezij-veter-kakaa-pogoda-zdet-moskvu-17iula-aii/"
}
}
],
"tool_calls": [
{
"index": 0,
"type": "state",
"id": "019f6ee5-2bad-7651-87c6-95c55878d794"
}
]
},
{ "role": "user", "content": "Так какое число говоришь?" }
],
"tools": [
{ "type": "web_search" }
],
"tool_choice": "auto"
}'