Кэширование промптов (Prompt Caching)

Методы архитектурной оптимизации контекстного окна для сокращения стоимости длинных запросов до 90%.

При разработке сложных ассистентов размер системного промпта, набора инструментов и контекстных документов может достигать сотен тысяч токенов. Контекстное кэширование промптов позволяет не передавать и не пересчитывать тяжелые статические префиксы при каждом последующем сообщении диалога.

Принцип организации статического префикса

Чтобы кэш промпта сработал, неизменяемая часть контекста (системные инструкции, документация, схемы функций) должна располагаться строго в начале массива messages. Любые динамические данные (время, имя пользователя, реплика) должны передаваться в конце.

Ключевые технические возможности

  • Снижение стоимости ввода до 90%: Повторно используемые закэшированные токены промпта рассчитываются с существенной скидкой.
  • Резкое сокращение TTFT: Время до генерации первого токена снижается в 3–5 раз, так как веса внимания уже предрассчитаны.
  • Удержание объемных баз знаний: Возможность постоянно держать в контексте целые регламенты и кодовые базы без разорения.
  • Автоматическое управление жизненным циклом: Кэш автоматически поддерживается в актуальном состоянии при регулярных запросах.

Пример интеграции в коде

Ниже представлен базовый пример отправки запроса с использованием стандартного клиента. Убедитесь, что ваш токен создан в разделе Ключи управления API:


import OpenAI from "openai";

// Инициализация стандартного SDK с базовым URL Api Router
const client = new OpenAI({
  baseURL: "https://api-router.velar.plus/v1",
  apiKey: process.env.API_ROUTER_KEY, // Ваш ключ от сервиса
});

async function run() {
  const response = await client.chat.completions.create({
    model: "anthropic/claude-sonnet", // Семейство модели без жесткой привязки к устаревающим номерам
    messages: [
      { role: "system", content: "Вы профессиональный инженер-архитектор." },
      { role: "user", content: "Как настроить надежную маршрутизацию запросов?" }
    ],
    temperature: 0.2,
  });

  console.log("Ответ модели:", response.choices[0].message.content);
}

run();
  

Связанные разделы документации

Для глубокого погружения в тему изучите следующие материалы: