From ea2e5b0fc6ddddceca2a0aafc223bfc3c25ae9f0 Mon Sep 17 00:00:00 2001 From: Dan Constantini Date: Sat, 24 Aug 2024 20:21:34 +0200 Subject: [PATCH 1/3] remove unnecessary param --- src/instrumentation/vercel-sdk.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/instrumentation/vercel-sdk.ts b/src/instrumentation/vercel-sdk.ts index 2bdde9e..bd0d7fd 100644 --- a/src/instrumentation/vercel-sdk.ts +++ b/src/instrumentation/vercel-sdk.ts @@ -61,6 +61,7 @@ const extractMessages = ( const extractSettings = (options: Options): ILLMSettings => { const settings = { ...options } as any; delete settings.model; + delete settings.messages; delete settings.prompt; delete settings.abortSignal; if ('tools' in settings) { From 294bc90a64f51e7d134a25c79b59868b285168fe Mon Sep 17 00:00:00 2001 From: Dan Constantini Date: Sat, 24 Aug 2024 20:24:16 +0200 Subject: [PATCH 2/3] add promptID and variables --- src/instrumentation/vercel-sdk.ts | 34 +++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/src/instrumentation/vercel-sdk.ts b/src/instrumentation/vercel-sdk.ts index bd0d7fd..44a011e 100644 --- a/src/instrumentation/vercel-sdk.ts +++ b/src/instrumentation/vercel-sdk.ts @@ -93,6 +93,22 @@ const extractTools = (options: Options): ITool[] | undefined => { })); }; +const extractPrompt = ( + options: Options +): + | { uuid: string; promptId: string; variables: Record } + | undefined => { + if (!options.messages) return undefined; + + for (const message of options.messages) { + if (typeof (message as any).literalMetadata === 'function') { + return (message as any).literalMetadata(); + } + } + + return undefined; +}; + const computeMetricsSync = ( options: Options, result: Result, @@ -142,7 +158,16 @@ const computeMetricsSync = ( const messageCompletion = messages.pop(); + const promptData = extractPrompt(options); + const promptId = promptData?.promptId; + const variables = promptData?.variables; + if (messages.length > 0) { + messages[0].uuid = promptData?.uuid; + } + return { + promptId, + variables, duration, tokenThroughputInSeconds, outputTokenCount, @@ -218,7 +243,16 @@ const computeMetricsStream = async ( if (textMessage.content) messages.push(textMessage); const messageCompletion = messages.pop(); + const promptData = extractPrompt(options); + const promptId = promptData?.promptId; + const variables = promptData?.variables; + if (messages.length > 0) { + messages[0].uuid = promptData?.uuid; + } + return { + promptId, + variables, duration, tokenThroughputInSeconds, outputTokenCount, From bd53b2fe2cce377562d00a69cc6ec6a55e3b54fa Mon Sep 17 00:00:00 2001 From: Dan Constantini Date: Mon, 26 Aug 2024 20:33:50 +0200 Subject: [PATCH 3/3] remove conversion --- src/instrumentation/vercel-sdk.ts | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/instrumentation/vercel-sdk.ts b/src/instrumentation/vercel-sdk.ts index 44a011e..ec68074 100644 --- a/src/instrumentation/vercel-sdk.ts +++ b/src/instrumentation/vercel-sdk.ts @@ -8,7 +8,6 @@ import type { streamObject, streamText } from 'ai'; -import { zodToJsonSchema } from 'zod-to-json-schema'; import { ChatGeneration, @@ -70,14 +69,12 @@ const extractSettings = (options: Options): ILLMSettings => { key, { description: tool.description, - parameters: zodToJsonSchema(tool.parameters) + parameters: tool.parameters } ]) ); } - if ('schema' in settings) { - settings.schema = zodToJsonSchema(settings.schema); - } + return settings; }; @@ -88,7 +85,7 @@ const extractTools = (options: Options): ITool[] | undefined => { function: { name: key, description: tool.description!, - parameters: zodToJsonSchema(tool.parameters) as any + parameters: tool.parameters } })); };