diff --git a/packages/core/src/core/geminiChat.ts b/packages/core/src/core/geminiChat.ts index 5e0a62c0..d1a7bdec 100644 --- a/packages/core/src/core/geminiChat.ts +++ b/packages/core/src/core/geminiChat.ts @@ -26,6 +26,10 @@ import { logApiResponse, logApiError, } from '../telemetry/loggers.js'; +import { + getStructuredResponse, + getStructuredResponseFromParts, +} from '../utils/generateContentResponseUtilities.js'; import { ApiErrorEvent, ApiRequestEvent, @@ -138,7 +142,11 @@ export class GeminiChat { } private _getRequestTextFromContents(contents: Content[]): string { - return JSON.stringify(contents); + return contents + .flatMap((content) => content.parts ?? []) + .map((part) => part.text) + .filter(Boolean) + .join(''); } private async _logApiRequest( @@ -310,7 +318,7 @@ export class GeminiChat { durationMs, prompt_id, response.usageMetadata, - JSON.stringify(response), + getStructuredResponse(response), ); this.sendPromise = (async () => { @@ -546,12 +554,12 @@ export class GeminiChat { allParts.push(...content.parts); } } - + const fullText = getStructuredResponseFromParts(allParts); await this._logApiResponse( durationMs, prompt_id, this.getFinalUsageMetadata(chunks), - JSON.stringify(chunks), + fullText, ); } this.recordHistory(inputContent, outputContent);