Перейти к содержимому

Оценка стоимости

chain.estimate_cost(...) делает сухой прогон: обходит цепочку и рассчитывает использование токенов и стоимость для каждого шага с вызовом LLM — без единого API-вызова.

estimate = chain.estimate_cost(
context,
pricing={"qwen/qwen3-8b": (0.00002, 0.00006)}, # {model: (input_per_1k, output_per_1k)}
default_output_tokens=512,
)
print(estimate.format_table())
ПараметрТипПо умолчаниюНазначение
contextReasoningContext—Предоставляет входные данные для расчёта.
pricingdict[str, tuple[float, float]] | NoneNoneПо модели: (input_per_1k_usd, output_per_1k_usd).
default_output_tokensint512Предполагаемая длина вывода на шаг.
char_per_tokenint4Эвристика для подсчёта входных токенов.

Возвращает CostEstimate (со StepCostEstimate для каждого шага). Модели, отсутствующие в pricing, отображаются отдельно, чтобы вы знали, что не учтено.

print(estimate.format_table()) # per-step token / USD table

В Jupyter введите estimate — _repr_markdown_ отрисует баннер + таблицу.

Для расчёта расходов на полную эволюцию (smoke + population × generations × cases) используйте evolver.estimate_cost(context_factory, pricing=...) — это умножает оценку одной цепочки на размер запуска.

Пример использования токенов из репозитория (mock-клиент, без API-ключа) проходит три уровня детализации: предварительную оценку, фактическое использование токенов по шагам после запуска и агрегацию по батчу.

# 1. Pre-flight — no LLM calls made.
estimate = chain.estimate_cost(ctx, pricing=PRICING)
print(estimate.format_table())
# 2. Actuals — after execution, read per-step + chain-total usage.
result = await chain.execute_async(ctx)
for sr in result.step_results:
print(sr.step_number, sr.token_usage) # {"prompt", "completion", "total"} per step
print(result.token_usage) # chain totals
print(result.get_profiling_summary()) # peak/history bytes + total time

Фактическое использование требует клиента, который его сообщает (например, через get_response_with_usage); итоги по цепочке также доступны через свойство result.token_usage_by_step. Установите token_budget_warning в LLMStepConfig шага, чтобы получать предупреждение, когда шаг превышает бюджет токенов.