ccproxy.llms.utils.token_estimation¶
ccproxy.llms.utils.token_estimation
¶
Token estimation utilities for context window management.
estimate_tokens
¶
Estimate token count for content.
Uses ~3 characters per token heuristic for English text. This is a conservative estimate - actual may be lower.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
content
|
Any
|
Message content (string, list of blocks, or dict) |
required |
Returns:
| Type | Description |
|---|---|
int
|
Estimated token count |
Source code in ccproxy/llms/utils/token_estimation.py
estimate_messages_tokens
¶
Estimate total tokens for a list of messages.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
messages
|
list[dict[str, Any]]
|
List of message dicts with role and content |
required |
Returns:
| Type | Description |
|---|---|
int
|
Estimated total token count |
Source code in ccproxy/llms/utils/token_estimation.py
estimate_request_tokens
¶
Estimate total input tokens for a request.
Includes messages, system prompt, and tool definitions.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
request_data
|
dict[str, Any]
|
The request payload dictionary |
required |
Returns:
| Type | Description |
|---|---|
int
|
Estimated total input token count |
Source code in ccproxy/llms/utils/token_estimation.py
get_max_input_tokens
¶
Get max input tokens for a model.
Supports pattern matching for model variants: - Exact match: "claude-opus-4-5-20251101" - Prefix match: "claude-opus-4-5-*" matches "claude-opus-4-5-20251101"
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
model
|
str
|
Model name or identifier |
required |
Returns:
| Type | Description |
|---|---|
int | None
|
Max input tokens if known, None otherwise |