Примеры используют эндпоинт
https://api.apiyi.com и ваш APIYI token. Упоминаемые модели: gpt-5.4-mini, deepseek-v4-pro, gemini-3.5-flash, claude-sonnet-4-6.Основной принцип: ведите историю сами
Одной фразой: модель не сохраняет состояние; вы (клиент) ведете историю и отправляете ее целиком на каждом ходе.OpenAI compatible mode (работает во всех моделях)
Самый универсальный подход, endpoint/v1/chat/completions. История хранится в массиве messages, при этом каждый элемент содержит role (system / user / assistant). Изменение строки model позволяет одному и тому же коду работать с разными моделями (gpt, deepseek, claude, gemini…).
Обработка истории для reasoning-моделей
Reasoning-модели, такие какdeepseek-v4-pro, возвращают дополнительное поле reasoning_content (цепочка рассуждений).
Подробнее о разборе ответов reasoning-моделей см. Вывод reasoning-модели.
Нативный формат OpenAI (Responses API)
Эндпоинт/v1/responses. Для многотурового взаимодействия передавайте полную историю в массиве input (каждая запись с role / content) — тот же подход с самостоятельным управлением, что и в совместимом режиме:
Нативный формат Gemini
Эндпоинт/v1beta/models/{model}:generateContent. История хранится в массиве contents. Обратите внимание, что роли — user / model (а не assistant), и содержимое каждой записи помещается в parts.
Ответы Gemini 3-series прикрепляют
thoughtSignature к частям. Для обычного текста в несколько ходов достаточно возвращать только text для сохранения контекста (и это дешевле по token); только сценарии, требующие строгой непрерывности рассуждения, такие как вызов функций, требуют передавать thoughtSignature обратно без изменений — официальный SDK делает это автоматически. См. Нативные вызовы Gemini и Вызов функций.Нативный формат Anthropic
Эндпоинт/v1/messages. История хранится в массиве messages с ролями user / assistant; content может быть обычной строкой. Обратите внимание, что max_tokens обязателен.
Сравнение четырех форматов
Вопросы и ответы
Длинный разговор стоит дороже?
Длинный разговор стоит дороже?
Да. Каждый ход повторно отправляет всю историю, поэтому число input tokens растет с количеством ходов и стоимость соответственно увеличивается. Основной способ сэкономить — кэширование контекста: при идентичном префиксе истории автоматически срабатывает ставка кэша (намного ниже базовой цены). См. OpenAI caching, Claude caching, Gemini caching.
Сколько ходов мне сохранять? Что делать, если я превышу контекстное окно?
Сколько ходов мне сохранять? Что делать, если я превышу контекстное окно?
Четкого правила нет, но более длинная история обходится дороже и может превысить контекстное окно модели. Типичные стратегии: (1) скользящее окно — хранить только последние N ходов; (2) сжатие summary — сжимать более ранние ходы в абзац в system prompt; (3) всегда сохранять системную инструкцию и самые последние ходы. Сопоставляйте это с тем, сколько «памяти» нужно вашему сценарию.
Где указывать system / системную инструкцию?
Где указывать system / системную инструкцию?
Совместимые с OpenAI и Anthropic: в начале разговора (совместимые используют
role:"system"; Anthropic использует верхнеуровневое поле system или первое сообщение). Gemini: используйте config.system_instruction. Системную инструкцию нужно задать только один раз — не нужно добавлять ее повторно на каждом ходе.Нужно ли возвращать обратно thinking reasoning model (reasoning_content)?
Нужно ли возвращать обратно thinking reasoning model (reasoning_content)?
Нет. Рассуждение — промежуточный результат хода; в истории следует хранить только финальный
content (для Gemini — только text). Возврат рассуждения впустую расходует tokens, и некоторые upstream его отклоняют. Исключение — thoughtSignature в function calling у Gemini: официальный SDK обрабатывает это автоматически.Может ли сервер запоминать разговор, чтобы мне не приходилось повторно отправлять историю?
Может ли сервер запоминать разговор, чтобы мне не приходилось повторно отправлять историю?
В APIYI это не рекомендуется.
previous_response_id в OpenAI Responses не гарантированно работает через шлюз (проверено: памяти нет). Используйте самостоятельно управляемую историю на стороне клиента везде — это самый стабильный и единообразный вариант для всех моделей.Ссылки по теме
- Основы вызовов: OpenAI Compatible Mode · OpenAI Native Calls · Gemini Native Calls · Claude API Basics
- Разбор ответов: OpenAI Handling Responses · Reasoning Model Output · Claude Streaming & Responses · Gemini Streaming & Responses
- Модели и тарификация: Models & Pricing Overview
- Получить / управлять token:
https://api.apiyi.com/token