diff --git a/packages/core/src/code_assist/converter.test.ts b/packages/core/src/code_assist/converter.test.ts index 83dd418a27..c36c8424af 100644 --- a/packages/core/src/code_assist/converter.test.ts +++ b/packages/core/src/code_assist/converter.test.ts @@ -299,6 +299,17 @@ describe('converter', () => { codeAssistRes.response.automaticFunctionCallingHistory, ); }); + + it('should handle modelVersion', () => { + const codeAssistRes: CaGenerateContentResponse = { + response: { + candidates: [], + modelVersion: 'gemini-2.5-pro', + }, + }; + const genaiRes = fromGenerateContentResponse(codeAssistRes); + expect(genaiRes.modelVersion).toEqual('gemini-2.5-pro'); + }); }); describe('toContents', () => { diff --git a/packages/core/src/code_assist/converter.ts b/packages/core/src/code_assist/converter.ts index 147dcb01ef..78e743136f 100644 --- a/packages/core/src/code_assist/converter.ts +++ b/packages/core/src/code_assist/converter.ts @@ -80,6 +80,7 @@ interface VertexGenerateContentResponse { automaticFunctionCallingHistory?: Content[]; promptFeedback?: GenerateContentResponsePromptFeedback; usageMetadata?: GenerateContentResponseUsageMetadata; + modelVersion?: string; } export interface CaCountTokenRequest { @@ -137,6 +138,7 @@ export function fromGenerateContentResponse( out.automaticFunctionCallingHistory = inres.automaticFunctionCallingHistory; out.promptFeedback = inres.promptFeedback; out.usageMetadata = inres.usageMetadata; + out.modelVersion = inres.modelVersion; return out; } diff --git a/packages/core/src/core/loggingContentGenerator.ts b/packages/core/src/core/loggingContentGenerator.ts index 93a2a22deb..4d78d12a4a 100644 --- a/packages/core/src/core/loggingContentGenerator.ts +++ b/packages/core/src/core/loggingContentGenerator.ts @@ -114,7 +114,7 @@ export class LoggingContentGenerator implements ContentGenerator { const durationMs = Date.now() - startTime; this._logApiResponse( durationMs, - response.modelVersion || '', + response.modelVersion || req.model, userPromptId, response.usageMetadata, JSON.stringify(response), @@ -143,13 +143,19 @@ export class LoggingContentGenerator implements ContentGenerator { throw error; } - return this.loggingStreamWrapper(stream, startTime, userPromptId); + return this.loggingStreamWrapper( + stream, + startTime, + userPromptId, + req.model, + ); } private async *loggingStreamWrapper( stream: AsyncGenerator, startTime: number, userPromptId: string, + model: string, ): AsyncGenerator { const responses: GenerateContentResponse[] = []; @@ -166,7 +172,7 @@ export class LoggingContentGenerator implements ContentGenerator { const durationMs = Date.now() - startTime; this._logApiResponse( durationMs, - responses[0]?.modelVersion || '', + responses[0]?.modelVersion || model, userPromptId, lastUsageMetadata, JSON.stringify(responses), @@ -176,7 +182,7 @@ export class LoggingContentGenerator implements ContentGenerator { this._logApiError( durationMs, error, - responses[0]?.modelVersion || '', + responses[0]?.modelVersion || model, userPromptId, ); throw error;