Токенизация
В отличие от веб-интерфейса, где вся токенизация происходит на BPE 100k, написанном на C++ (wasm-tokenizer), в API токены считает провайдер LLM (например, OpenAI для GPT, Anthropic для Claude и т.д.).
Если вы хотите предварительно посчитать токены перед отправкой, вам необходимо использовать библиотеки для подсчета, такие как tiktoken и другие, в зависимости от модели, которую вы будете использовать.
При отправке запроса в наш API в ответ вы получите полный отчет об использовании токенов.
Например, при отправке запроса в Assistant API в ответе будет объект usage, где можно увидеть, сколько токенов было потрачено и на какие цели:
{ "id": "66c6dcf2e2826d0001f48d37", "chatId": "a11e52c2-5ecc-4d86-a9fa-0cac92414a72", "assistantId": "637eedd95a56c03462f9c231", "assistantCode": "test_gpt4o_assistant", "message": "Hello! How can I assist you today?", "model": "gpt-4o", "usage": { "context_messages": 2, "prompt_tokens": 111, "completion_tokens": 10, "embedding_tokens": 0, "total_tokens": 121, "prompt_cost": 0.14985, "completion_cost": 0.027, "embedding_cost": 0, "total_cost": 0.17685 }}Для прямых запросов в OpenAI ответ будет немного отличаться, но тут мы также можем видеть объект usage со статистикой использования токенов:
{ "id": "chatcmpl-8FheRf68Hi4pnuiRqYPHyZJr3UlAU", "object": "chat.completion", "created": 1698753407, "model": "gpt-3.5-turbo-0613", "choices": [ { "index": 0, "message": { "role": "assistant", "content": "Меня зовут Robert." }, "finish_reason": "stop" } ], "usage": { "prompt_tokens": 24, "completion_tokens": 8, "total_tokens": 32, "prompt_cost": 0.01608, "completion_cost": 0.0072, "total_cost": 0.02328 }}