При вызове
через API доступны параметры для настройки поведения генерации. Но не все параметры поддерживаются всеми моделями. Конкретная совместимость зависит от выбранной модели и ее реализации.При использовании новых параметров рекомендуется тестировать их работу с конкретной моделью.
Ниже представлены основные параметры, которые можно использовать в запросах к моделям:
Тип | Параметр | Формат | Описание |
|---|---|---|---|
Управление выводом | stream | boolean | Включает потоковую передачу ответов, позволяя получать токены по мере их генерации для улучшения пользовательского опыта. |
stop | array | Токены или последовательности, при обнаружении которых генерация прекращается. Используется для структурированного вывода. | |
stop_sequences | array | Альтернативное название параметра stop в некоторых API. | |
timeout | int | Время ожидания ответа в секундах. | |
response_format | object | Определяет формат ответа. | |
Интеграция | functions | array | Определяет доступные функции, которые модель может вызывать для получения внешних данных или выполнения операций. |
tools | array | Список инструментов, доступных модели. | |
Совместимость с OpenAI | chat_template_kwargs | object | Параметры для настройки поведения моделей, совместимых с OpenAI API. Включает enable_thinking. |
extra_body | object | Дополнительные параметры запроса, передаваемые напрямую в API модели. | |
Генерация | temperature | float | Контролирует случайность в генерации ответов. 0.0 - 0.3 — точные ответы; 0.4 - 0.7 — умеренная креативность; 0.7 - 1.0+ — высокая креативность, творческие ответы. |
max_tokens | int | Максимальное количество токенов в ответе модели. Используется для ограничения длины генерируемого текста и контроля затрат. | |
top_p | float | Ядровый сэмплинг (nucleus sampling). Определяет долю наиболее вероятных токенов, из которых будет выбран следующий токен. Рекомендуемые значения: 0.8 - 0.95. | |
top_k | int | Ограничивает количество вариантов токенов при генерации. Альтернатива top_p для более строгого контроля словаря. | |
seed | int | Устанавливает воспроизводимость результатов генерации при одинаковых параметрах. | |
logit_bias | object | Корректирует логит-вероятности для конкретных токенов. Положительные значения увеличивают вероятность токена, отрицательные — уменьшают. | |
max_completion_tokens | int | Точное ограничение только на токены ответов, не включая входной промпт. | |
Диалог | messages | array | История диалога для контекста. Содержит объекты с полями: role (user, assistant, system) и content (текст сообщения). |
system | string | Системные инструкции, которые определяют роль и поведение модели на протяжении всей сессии. | |
Предотвращение повторений | frequency_penalty | float | Уменьшает вероятность повторения токенов в зависимости от их частоты в уже сгенерированном тексте. Диапазон: -2.0 - 2.0. |
presence_penalty | float | Поощряет введение новых токенов и концепций, предотвращая повторение уже упомянутых идей. Диапазон: -2.0 - 2.0. | |
Поддержка рассуждений | enable_thinking | boolean | Включает режим рассуждений (thinking mode) для моделей, которые поддерживают показ процесса мышления перед генерацией финального ответа. Когда enable_thinking: true, модель сначала генерирует свои рассуждения (thinking process), а затем дает финальный ответ. |
Примеры использования
Пример API-запроса с параметром поддержки рассуждений enable_thinking:
import osfrom dotenv import load_dotenvfrom openai import OpenAIload_dotenv()API_BASE_URL = os.getenv("fm_base")API_TOKEN = os.getenv("fm_token")MODEL = "zai-org/GLM-4.6"client = OpenAI(base_url=<api_base_url>,api_key=<api_token>,)response = client.chat.completions.create(model=<name_model>,messages=[{"role": "user","content": "Реши задачу: В саду растет 25 деревьев. Яблонь 12, груш на 5 меньше, остальные - вишни. Сколько вишневых деревьев?"}],extra_body={"chat_template_kwargs": {"enable_thinking": True}},)print(response)
Где:
fm_base — переменная окружения, которая содержит базовый URL для API ML Inference.
fm_token — переменная окружения, которая содержит API-токен для доступа к ML Inference.
api_base_url — базовый URL для API ML Inference.
api_token — API-токен для доступа к ML Inference.
Пример API-запроса для диалога:
import osfrom dotenv import load_dotenvfrom openai import OpenAIload_dotenv()API_BASE_URL = os.getenv("fm_base")API_TOKEN = os.getenv("fm_token")MODEL = "zai-org/GLM-4.6"client = OpenAI(base_url=<api_base_url>,api_key=<api_token>,)response = client.chat.completions.create(model=MODEL,messages=[{"role": "user", "content": "Объясни машинное обучение простыми словами"}],temperature=0.7,max_tokens=1000,stream=False)print(response)
Где:
fm_base — переменная окружения, которая содержит базовый URL для API ML Inference.
fm_token — переменная окружения, которая содержит API-токен для доступа к ML Inference.
api_base_url — базовый URL для API ML Inference.
api_token — API-токен для доступа к ML Inference.
Пример API-запроса с креативной генерацией:
import osfrom dotenv import load_dotenvfrom openai import OpenAIload_dotenv()API_BASE_URL = os.getenv("fm_base")API_TOKEN = os.getenv("fm_token")MODEL = "zai-org/GLM-4.6"client = OpenAI(base_url=<api_base_url>,api_key=<api_token>,)response = client.chat.completions.create(model=MODEL,messages=[{"role": "user", "content": "Напиши короткую историю о роботе"}],temperature=0.9,top_p=0.95,frequency_penalty=0.8,presence_penalty=0.6,max_tokens=800)print(response)
Где:
fm_base — переменная окружения, которая содержит базовый URL для API ML Inference.
fm_token — переменная окружения, которая содержит API-токен для доступа к ML Inference.
api_base_url — базовый URL для API ML Inference.
api_token — API-токен для доступа к ML Inference.
Рекомендации по использованию
Для точных ответов:
temperature: 0.1 - 0.3
top_p: 0.5 - 0.8
frequency_penalty: 0.0
presence_penalty: 0.0
Для творческих задач:
temperature: 0.8 - 1.0
top_p: 0.9 - 0.95
frequency_penalty: 0.5 - 0.8
presence_penalty: 0.3 - 0.6
Для диалогов:
temperature: 0.6 - 0.8
stream: true (для улучшения UX)
presence_penalty: 0.2 - 0.4
Для задач с рассуждениями:
enable_thinking: true
temperature: 0.2 - 0.5 (для точного анализа)