Skip to content

Backport: fix (provider/groq): surface prompt cache reads in usage - #17118

Merged
github-actions[bot] merged 1 commit into
release-v6.0from
backport-pr-17117-to-release-v6.0
Jul 11, 2026
Merged

Backport: fix (provider/groq): surface prompt cache reads in usage#17118
github-actions[bot] merged 1 commit into
release-v6.0from
backport-pr-17117-to-release-v6.0

Conversation

@github-actions

Copy link
Copy Markdown
Contributor

This is an automated backport of #17117 to the release-v6.0 branch. FYI @shaper

## Background

Groq supports implicit prompt caching (automatic, 50% discount on cached
input tokens) and returns cache hits in
`usage.prompt_tokens_details.cached_tokens`. The `@ai-sdk/groq` response
schema already parses that field, but `convertGroqUsage` never read it.

## Problem

`convertGroqUsage` declared `prompt_tokens_details.cached_tokens` in its
input type but dropped it — it hardcoded `cacheRead: undefined` and
counted the entire prompt as `noCache`. So every Groq request reported
zero cache reads regardless of whether Groq actually served tokens from
cache, and downstream consumers couldn't observe (or price) the
discount.

## Fix

Map `cached_tokens` → `cacheRead`, and subtract it from `noCache`. Groq
has no separate cache-creation charge, so `cacheWrite` stays
`undefined`.

```ts
const cacheReadTokens = usage.prompt_tokens_details?.cached_tokens ?? undefined;
// inputTokens:
noCache: cacheReadTokens != null ? promptTokens - cacheReadTokens : promptTokens,
cacheRead: cacheReadTokens,
cacheWrite: undefined,
```

Verified against Groq's REST API: the gpt-oss models (and others) do
return `cached_tokens > 0` on warm requests; caching is best-effort, so
hits are non-deterministic.

## Changes

- `convert-groq-usage.ts` — surface `cached_tokens` as `cacheRead`
- `convert-groq-usage.test.ts` — unit tests (cached→cacheRead, zero,
null)
- `groq-chat-language-model.test.ts` — update the affected inline usage
snapshot
- Examples: `stream-text/groq/prompt-caching.ts` and
`generate-text/groq/prompt-caching.ts`
- Changeset (patch)

Refs SHAPER-24.

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
@github-actions
github-actions Bot merged commit cee7e45 into release-v6.0 Jul 11, 2026
49 checks passed
@github-actions
github-actions Bot deleted the backport-pr-17117-to-release-v6.0 branch July 11, 2026 20:20
@github-actions

Copy link
Copy Markdown
Contributor Author

🚀 Published in:

Package Version
@ai-sdk/groq 3.0.51 github npm

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants