@@ -22,6 +22,7 @@ import {
22
22
GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE ,
23
23
GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE ,
24
24
} from '../ai/gen-ai-attributes' ;
25
+ import { truncateGenAiMessages } from '../ai/messageTruncation' ;
25
26
import { buildMethodPath , getFinalOperationName , getSpanOperation } from '../ai/utils' ;
26
27
import { handleCallbackErrors } from '../handleCallbackErrors' ;
27
28
import { CHAT_PATH , CHATS_CREATE_METHOD , GOOGLE_GENAI_SYSTEM_NAME } from './constants' ;
@@ -128,25 +129,23 @@ function extractRequestAttributes(
128
129
return attributes ;
129
130
}
130
131
131
- /**
132
- * Add private request attributes to spans.
133
- * This is only recorded if recordInputs is true.
134
- * Handles different parameter formats for different Google GenAI methods.
135
- */
136
132
function addPrivateRequestAttributes ( span : Span , params : Record < string , unknown > ) : void {
137
- // For models.generateContent: ContentListUnion: Content | Content[] | PartUnion | PartUnion[]
138
133
if ( 'contents' in params ) {
139
- span . setAttributes ( { [ GEN_AI_REQUEST_MESSAGES_ATTRIBUTE ] : JSON . stringify ( params . contents ) } ) ;
134
+ const contents = params . contents ;
135
+ const truncatedContents = truncateGenAiMessages ( contents as unknown [ ] ) ;
136
+ span . setAttributes ( { [ GEN_AI_REQUEST_MESSAGES_ATTRIBUTE ] : JSON . stringify ( truncatedContents ) } ) ;
140
137
}
141
138
142
- // For chat.sendMessage: message can be string or Part[]
143
139
if ( 'message' in params ) {
144
- span . setAttributes ( { [ GEN_AI_REQUEST_MESSAGES_ATTRIBUTE ] : JSON . stringify ( params . message ) } ) ;
140
+ const message = params . message ;
141
+ const truncatedMessage = truncateGenAiMessages ( message as unknown [ ] ) ;
142
+ span . setAttributes ( { [ GEN_AI_REQUEST_MESSAGES_ATTRIBUTE ] : JSON . stringify ( truncatedMessage ) } ) ;
145
143
}
146
144
147
- // For chats.create: history contains the conversation history
148
145
if ( 'history' in params ) {
149
- span . setAttributes ( { [ GEN_AI_REQUEST_MESSAGES_ATTRIBUTE ] : JSON . stringify ( params . history ) } ) ;
146
+ const history = params . history ;
147
+ const truncatedHistory = truncateGenAiMessages ( history as unknown [ ] ) ;
148
+ span . setAttributes ( { [ GEN_AI_REQUEST_MESSAGES_ATTRIBUTE ] : JSON . stringify ( truncatedHistory ) } ) ;
150
149
}
151
150
}
152
151
0 commit comments