Skip to content

Commit 91725a5

Browse files
feat: expose service_tier in CompletionUsage from OpenAI Responses API
OpenAI returns service_tier (e.g. "default", "priority", "flex") in every API response. This adds it to CompletionUsage and reads it in the Responses plugin's handleResponseCompleted. Changes: - Add serviceTier?: string to CompletionUsage interface - Read event.response.service_tier in Responses LLM
1 parent c773698 commit 91725a5

4 files changed

Lines changed: 10 additions & 0 deletions

File tree

.changeset/expose-service-tier.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
'@livekit/agents': patch
3+
'@livekit/agents-plugin-openai': patch
4+
---
5+
6+
expose serviceTier in CompletionUsage from OpenAI Responses API

agents/src/llm/llm.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ export interface CompletionUsage {
2525
promptTokens: number;
2626
promptCachedTokens: number;
2727
totalTokens: number;
28+
/** The service tier used for processing (e.g. 'default', 'priority', 'flex'). */
29+
serviceTier?: string;
2830
}
2931

3032
export interface ChatChunk {

plugins/openai/src/responses/llm.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -333,6 +333,7 @@ class ResponsesHttpLLMStream extends llm.LLMStream {
333333
promptTokens: event.response.usage.input_tokens,
334334
promptCachedTokens: event.response.usage.input_tokens_details.cached_tokens,
335335
totalTokens: event.response.usage.total_tokens,
336+
serviceTier: event.response.service_tier ?? undefined,
336337
},
337338
};
338339
}

plugins/openai/src/ws/llm.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -584,6 +584,7 @@ export class WSLLMStream extends llm.LLMStream {
584584
promptTokens: event.response.usage.input_tokens,
585585
promptCachedTokens: event.response.usage.input_tokens_details.cached_tokens,
586586
totalTokens: event.response.usage.total_tokens,
587+
serviceTier: (event.response as Record<string, unknown>).service_tier as string | undefined,
587588
},
588589
};
589590
}

0 commit comments

Comments
 (0)