Skip to content

Корректность ответов: честный finish_reason + точный usage.prompt_tokens#21

Open
danscMax wants to merge 1 commit into
ForgetMeAI:mainfrom
danscMax:feat/api-correctness
Open

Корректность ответов: честный finish_reason + точный usage.prompt_tokens#21
danscMax wants to merge 1 commit into
ForgetMeAI:mainfrom
danscMax:feat/api-correctness

Conversation

@danscMax

Copy link
Copy Markdown
Contributor

Две небольшие правки корректности OpenAI-совместимого ответа.

Что и зачем

  • finish_reason отражает реальный финиш DeepSeek. Сейчас в ответе всегда
    'stop', даже если ответ обрезан по длине. Сервер уже отслеживает finishReason
    (и даже использует его для авто-продолжения), но в тело ответа он не попадал.
    Клиенты, которые до-запрашивают по finish_reason==='length' (agent-лупы,
    Codex-style), молча получали усечённый ответ. Теперь усечение помечается 'length'.
  • usage.prompt_tokens считается по исходным сообщениям клиента, а не по
    раздутому fullPrompt (system-промпт + инжект описаний tools + история). Любой,
    кто меряет токены/биллинг по usage, получал цифры, не совпадающие с тем, что он
    реально отправил. Эвристика оценки (длина/4) не меняется — правится только источник текста.

Проверено

npm test зелёный. Изменения точечные, в билдере ответа.

- finish_reason: пробрасываем реальный finish из DeepSeek. Раньше всегда отдавали
  'stop', даже когда ответ обрезан по длине — клиенты, которые до-запрашивают по
  'length' (agent-лупы, Codex-style), молча получали усечённый ответ. Теперь
  усечение помечается finish_reason='length'.
- usage.prompt_tokens: считаем по исходным сообщениям клиента, а не по
  раздутому fullPrompt (system + инжект tools + история). Раньше любой, кто
  считает токены/биллинг по usage, получал цифры, не совпадающие с его запросом.

Эвристика оценки токенов (длина/4) не меняется — правится только ИСТОЧНИК текста.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant