Skip to content

Commit c91de63

Browse files
committed
fix(ai): add type safety for message truncation
1 parent 7df9993 commit c91de63

File tree

2 files changed

+24
-8
lines changed

2 files changed

+24
-8
lines changed

packages/core/src/utils/anthropic-ai/index.ts

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -75,13 +75,21 @@ function extractRequestAttributes(args: unknown[], methodPath: string): Record<s
7575
function addPrivateRequestAttributes(span: Span, params: Record<string, unknown>): void {
7676
if ('messages' in params) {
7777
const messages = params.messages;
78-
const truncatedMessages = truncateGenAiMessages(messages as unknown[]);
79-
span.setAttributes({ [GEN_AI_REQUEST_MESSAGES_ATTRIBUTE]: JSON.stringify(truncatedMessages) });
78+
if (Array.isArray(messages)) {
79+
const truncatedMessages = truncateGenAiMessages(messages);
80+
span.setAttributes({ [GEN_AI_REQUEST_MESSAGES_ATTRIBUTE]: JSON.stringify(truncatedMessages) });
81+
} else {
82+
span.setAttributes({ [GEN_AI_REQUEST_MESSAGES_ATTRIBUTE]: JSON.stringify(messages) });
83+
}
8084
}
8185
if ('input' in params) {
8286
const input = params.input;
83-
const truncatedInput = truncateGenAiMessages(input as unknown[]);
84-
span.setAttributes({ [GEN_AI_REQUEST_MESSAGES_ATTRIBUTE]: JSON.stringify(truncatedInput) });
87+
if (Array.isArray(input)) {
88+
const truncatedInput = truncateGenAiMessages(input);
89+
span.setAttributes({ [GEN_AI_REQUEST_MESSAGES_ATTRIBUTE]: JSON.stringify(truncatedInput) });
90+
} else {
91+
span.setAttributes({ [GEN_AI_REQUEST_MESSAGES_ATTRIBUTE]: JSON.stringify(input) });
92+
}
8593
}
8694
if ('prompt' in params) {
8795
span.setAttributes({ [GEN_AI_PROMPT_ATTRIBUTE]: JSON.stringify(params.prompt) });

packages/core/src/utils/openai/index.ts

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -192,13 +192,21 @@ function addResponseAttributes(span: Span, result: unknown, recordOutputs?: bool
192192
function addRequestAttributes(span: Span, params: Record<string, unknown>): void {
193193
if ('messages' in params) {
194194
const messages = params.messages;
195-
const truncatedMessages = truncateGenAiMessages(messages as unknown[]);
196-
span.setAttributes({ [GEN_AI_REQUEST_MESSAGES_ATTRIBUTE]: JSON.stringify(truncatedMessages) });
195+
if (Array.isArray(messages)) {
196+
const truncatedMessages = truncateGenAiMessages(messages);
197+
span.setAttributes({ [GEN_AI_REQUEST_MESSAGES_ATTRIBUTE]: JSON.stringify(truncatedMessages) });
198+
} else {
199+
span.setAttributes({ [GEN_AI_REQUEST_MESSAGES_ATTRIBUTE]: JSON.stringify(messages) });
200+
}
197201
}
198202
if ('input' in params) {
199203
const input = params.input;
200-
const truncatedInput = truncateGenAiMessages(input as unknown[]);
201-
span.setAttributes({ [GEN_AI_REQUEST_MESSAGES_ATTRIBUTE]: JSON.stringify(truncatedInput) });
204+
if (Array.isArray(input)) {
205+
const truncatedInput = truncateGenAiMessages(input);
206+
span.setAttributes({ [GEN_AI_REQUEST_MESSAGES_ATTRIBUTE]: JSON.stringify(truncatedInput) });
207+
} else {
208+
span.setAttributes({ [GEN_AI_REQUEST_MESSAGES_ATTRIBUTE]: JSON.stringify(input) });
209+
}
202210
}
203211
}
204212

0 commit comments

Comments
 (0)