Response usage

ModelResponse resp = llm.generate(req);
int promptTokens = resp.usage().promptTokens();
int completionTokens = resp.usage().completionTokens();
double cost = costCalculator.compute("gemini-2.5-pro", promptTokens, completionTokens);
Advertisement

Per-model pricing tables

Keep pricing in a YAML config. Prices change; code shouldn't.

gemini-2.5-pro:
  input_per_1m: 1.25
  output_per_1m: 5.00
gemini-2.5-flash:
  input_per_1m: 0.075
  output_per_1m: 0.30
Advertisement

Emit as metrics

meter.counter("llm.cost.usd",
    Tag.of("model", modelName),
    Tag.of("agent", agentName))
    .increment(cost);