Работа в режиме рассуждений
Режим рассуждений повышает качество генерации, когда ответ на вопрос зависит от комбинации действий, порядка операций или неявных ограничений. Например:
-
в арифметических задачах с несколькими операциями:
(34 + 67) * 2 - 15 -
в логических задачах с условиями:
Если все А — Б, некоторые Б — В, то все ли А — В? -
при составлении маршрута:
Встреча в 14:00, дорога 45 минут, нужно прибыть за 10 минут
Генерация в режиме рассуждений расходует больше токенов.
В этом разделе вы узнаете как запускать модели GigaChat в режиме рассуждений в зависимости от версии эндпоинта /chat/completions.
Запуск модели в режиме рассуждений
Для запуска режима рассуждений, в запросе к эндпоинту /chat/completions задайте параметр effort, который отвечает за глубину расс уждений модели.
Это можно сделать по-разному, в зависимости от версии эндпоинта.
Запрос формата v2
Чтобы запустить режим рассуждений в запросе POST /v2/chat/completions передайте параметр model_options.reasoning.effort:
Для работы с запросами формата V2 используйте GigaChat SDK версии 0.2.2a3 и выше. Запрос можно сформировать в виде простого словаря или задать с помощью моделей.
from gigachat import GigaChat
from gigachat.models import ChatCompletionRequest, ChatMessage, ChatReasoning, ChatModelOptions
request_dict = {
"model": "GigaChat-2-Max",
"messages": [
{
"role": "user",
"content": [
{
"text": "Как полететь на луну?"
}
]
}
],
"model_options": {
"reasoning": {
"effort": "medium"
}
}
}
# Использование моделей для запуска рассуждений
request_model = ChatCompletionRequest(
model="GigaChat-2-Max",
messages=[
ChatMessage(
role="user",
content="Как полететь на луну?",
)
],
model_options=ChatModelOptions(
reasoning=ChatReasoning (
effort="medium"
),
),
)
with GigaChat(
base_url="https://gigachat-ift.sberdevices.delta.sbrf.ru/v2",
cert_file="./certs/<сертификат>.pem",
key_file="./certs/<ключ>.key",
verify_ssl_certs=False,
) as client:
response_dict = client.chat.create(request_dict)
response_model = client.chat.create(request_model)
print("Ответ на запрос со словарем:")
print(response_dict)
print("\nРассуждения:")
print(response_dict.messages[0].content[0].text)
print("\n" + "="*50 + "\n")
print("Ответ на запрос с моделями:")
print(response_model)
print("\nРассуждения:")
print(response_model.messages[0].content[0].text)