Все работает, но я заметил странную модель использования токенов:
Проблема
В первом ответе помощника в сеансе отображаются кэшированные входные токены, хотя:
- История предыдущих разговоров не существует
- Предыдущие сообщения пользователя не отправлялись
- Сеанс только что создан
- Модель – gpt-realtime-mini (развертывание Azure)
Timestamp: 2026-03-22T02:49:15.7672185+00:00
Step: Voice1
Model: realtime-mini-test-3
InputTokens: 1459
InputTextTokens: 1349
InputAudioTokens: 110
CachedInputTokens: 1408
CachedTextInputTokens: 1344
CachedAudioInputTokens: 64
OutputTokens: 396
OutputTextTokens: 97
OutputAudioTokens: 299
TotalTokens: 1855
Второй ход также показывает кэшированные токены, что и ожидалось, но первый ход не должен, если я не правильно понимаю, как работает кеширование.
Мой вопрос
Почему первый ответ помощника в сеансе реального времени показывает использование кэшированного токена?
Это ожидаемое поведение для gpt-realtime-mini, или я пропустил событие использования на более раннем этапе жизненного цикла сеанса (например, во время session.created, session.updated или внедрения инструкций)?
Соответствующий код
У меня есть большой базовый класс, но вот ключевые части:
Настройка сеанса
var sessionOptions = new RealtimeConversationSessionOptions{
Instructions = firstLargeInstruction,
AudioOptions = BuildStandardAudioOptions(),
};
var session = await CreateAndConfigureSessionAsync(sessionOptions);
Первый ход
await SendAudioFileAsync(session, DefaultInputAudioPath);await session.StartResponseAsync();
Извлечение использования токена
case RealtimeServerUpdateResponseDone responseDone:var usageMetrics = ReadUsage(responseDone.Response.Usage);
// ...
Что я рассмотрел
- Возможно, системные инструкции (firstLargeInstruction) кэшируются?
- Может быть, модель предварительно загружает или внедряет внутренние системные подсказки?
- Может быть, я пропускаю событие использования во время session.updated?
- Может быть, при развертывании Azure gpt-realtime-mini используется внутреннее кэширование с горячим стартом?
- Ожидается ли использование кэшированного токена в первом ответе для моделей реального времени?
- Кэширует ли API Realtime системные инструкции или преамбулу модели внутри себя?
- Должен ли я регистрировать использование токенов на более ранних этапах жизненного цикла сеанса?
- Или это ошибка в моей логике отслеживания использования?