diff --git a/packages/ai-semantic-conventions/README b/packages/ai-semantic-conventions/README index 3e983d49..23573104 100644 --- a/packages/ai-semantic-conventions/README +++ b/packages/ai-semantic-conventions/README @@ -20,7 +20,7 @@ const span = tracer .startSpan() .startSpan(spanName, spanOptions) .setAttributes({ - [SemanticAttributes.LLM_VENDOR]: "openai", + [SemanticAttributes.LLM_SYSTEM]: "openai", }); ``` diff --git a/packages/ai-semantic-conventions/src/SemanticAttributes.ts b/packages/ai-semantic-conventions/src/SemanticAttributes.ts index ef6b0682..49aeb998 100644 --- a/packages/ai-semantic-conventions/src/SemanticAttributes.ts +++ b/packages/ai-semantic-conventions/src/SemanticAttributes.ts @@ -15,23 +15,26 @@ */ export const SpanAttributes = { - LLM_VENDOR: "llm.vendor", + LLM_SYSTEM: "gen_ai.system", + LLM_REQUEST_MODEL: "gen_ai.request.model", + LLM_REQUEST_MAX_TOKENS: "gen_ai.request.max_tokens", + LLM_REQUEST_TEMPERATURE: "gen_ai.request.temperature", + LLM_REQUEST_TOP_P: "gen_ai.request.top_p", + LLM_PROMPTS: "gen_ai.prompt", + LLM_COMPLETIONS: "gen_ai.completion", + LLM_RESPONSE_MODEL: "gen_ai.response.model", + LLM_USAGE_PROMPT_TOKENS: "gen_ai.usage.prompt_tokens", + LLM_USAGE_COMPLETION_TOKENS: "gen_ai.usage.completion_tokens", + + // LLM LLM_REQUEST_TYPE: "llm.request.type", - LLM_REQUEST_MODEL: "llm.request.model", - LLM_RESPONSE_MODEL: "llm.response.model", - LLM_REQUEST_MAX_TOKENS: "llm.request.max_tokens", LLM_USAGE_TOTAL_TOKENS: "llm.usage.total_tokens", - LLM_USAGE_COMPLETION_TOKENS: "llm.usage.completion_tokens", - LLM_USAGE_PROMPT_TOKENS: "llm.usage.prompt_tokens", - LLM_TEMPERATURE: "llm.temperature", - LLM_TOP_P: "llm.top_p", LLM_TOP_K: "llm.top_k", LLM_FREQUENCY_PENALTY: "llm.frequency_penalty", LLM_PRESENCE_PENALTY: "llm.presence_penalty", - LLM_PROMPTS: "llm.prompts", - LLM_COMPLETIONS: "llm.completions", LLM_CHAT_STOP_SEQUENCES: "llm.chat.stop_sequences", LLM_REQUEST_FUNCTIONS: "llm.request.functions", + // Vector DB VECTOR_DB_VENDOR: "db.system", VECTOR_DB_QUERY_TOP_K: "db.vector.query.top_k", diff --git a/packages/instrumentation-anthropic/src/instrumentation.ts b/packages/instrumentation-anthropic/src/instrumentation.ts index 57e9d92e..efe113cf 100644 --- a/packages/instrumentation-anthropic/src/instrumentation.ts +++ b/packages/instrumentation-anthropic/src/instrumentation.ts @@ -189,14 +189,14 @@ export class AnthropicInstrumentation extends InstrumentationBase { }; }): Span { const attributes: Attributes = { - [SpanAttributes.LLM_VENDOR]: "Anthropic", + [SpanAttributes.LLM_SYSTEM]: "Anthropic", [SpanAttributes.LLM_REQUEST_TYPE]: type, }; try { attributes[SpanAttributes.LLM_REQUEST_MODEL] = params.model; - attributes[SpanAttributes.LLM_TEMPERATURE] = params.temperature; - attributes[SpanAttributes.LLM_TOP_P] = params.top_p; + attributes[SpanAttributes.LLM_REQUEST_TEMPERATURE] = params.temperature; + attributes[SpanAttributes.LLM_REQUEST_TOP_P] = params.top_p; attributes[SpanAttributes.LLM_TOP_K] = params.top_k; if (type === "completion") { diff --git a/packages/instrumentation-azure/src/instrumentation.ts b/packages/instrumentation-azure/src/instrumentation.ts index ee486296..177ea53e 100644 --- a/packages/instrumentation-azure/src/instrumentation.ts +++ b/packages/instrumentation-azure/src/instrumentation.ts @@ -173,7 +173,7 @@ export class AzureOpenAIInstrumentation extends InstrumentationBase { }; }): Span { const attributes: Attributes = { - [SpanAttributes.LLM_VENDOR]: "Azure OpenAI", + [SpanAttributes.LLM_SYSTEM]: "Azure OpenAI", [SpanAttributes.LLM_REQUEST_TYPE]: type, }; diff --git a/packages/instrumentation-bedrock/src/instrumentation.ts b/packages/instrumentation-bedrock/src/instrumentation.ts index 36227722..bd042918 100644 --- a/packages/instrumentation-bedrock/src/instrumentation.ts +++ b/packages/instrumentation-bedrock/src/instrumentation.ts @@ -156,7 +156,7 @@ export class BedrockInstrumentation extends InstrumentationBase { : ["", ""]; attributes = { - [SpanAttributes.LLM_VENDOR]: vendor, + [SpanAttributes.LLM_SYSTEM]: vendor, [SpanAttributes.LLM_REQUEST_MODEL]: model, [SpanAttributes.LLM_RESPONSE_MODEL]: model, [SpanAttributes.LLM_REQUEST_TYPE]: LLMRequestTypeValues.COMPLETION, @@ -197,7 +197,7 @@ export class BedrockInstrumentation extends InstrumentationBase { ? (span["attributes"] as Record) : {}; - if (SpanAttributes.LLM_VENDOR in attributes) { + if (SpanAttributes.LLM_SYSTEM in attributes) { if (!(result.body instanceof Object.getPrototypeOf(Uint8Array))) { const rawRes = result.body as AsyncIterable; @@ -234,7 +234,7 @@ export class BedrockInstrumentation extends InstrumentationBase { } let responseAttributes = this._setResponseAttributes( - attributes[SpanAttributes.LLM_VENDOR], + attributes[SpanAttributes.LLM_SYSTEM], parsedResponse, true, ); @@ -265,7 +265,7 @@ export class BedrockInstrumentation extends InstrumentationBase { const parsedResponse = JSON.parse(jsonString); const responseAttributes = this._setResponseAttributes( - attributes[SpanAttributes.LLM_VENDOR], + attributes[SpanAttributes.LLM_SYSTEM], parsedResponse, ); @@ -289,8 +289,8 @@ export class BedrockInstrumentation extends InstrumentationBase { switch (vendor) { case "ai21": { return { - [SpanAttributes.LLM_TOP_P]: requestBody["topP"], - [SpanAttributes.LLM_TEMPERATURE]: requestBody["temperature"], + [SpanAttributes.LLM_REQUEST_TOP_P]: requestBody["topP"], + [SpanAttributes.LLM_REQUEST_TEMPERATURE]: requestBody["temperature"], [SpanAttributes.LLM_REQUEST_MAX_TOKENS]: requestBody["maxTokens"], [SpanAttributes.LLM_PRESENCE_PENALTY]: requestBody["presencePenalty"]["scale"], @@ -309,9 +309,9 @@ export class BedrockInstrumentation extends InstrumentationBase { } case "amazon": { return { - [SpanAttributes.LLM_TOP_P]: + [SpanAttributes.LLM_REQUEST_TOP_P]: requestBody["textGenerationConfig"]["topP"], - [SpanAttributes.LLM_TEMPERATURE]: + [SpanAttributes.LLM_REQUEST_TEMPERATURE]: requestBody["textGenerationConfig"]["temperature"], [SpanAttributes.LLM_REQUEST_MAX_TOKENS]: requestBody["textGenerationConfig"]["maxTokenCount"], @@ -328,9 +328,9 @@ export class BedrockInstrumentation extends InstrumentationBase { } case "anthropic": { return { - [SpanAttributes.LLM_TOP_P]: requestBody["top_p"], + [SpanAttributes.LLM_REQUEST_TOP_P]: requestBody["top_p"], [SpanAttributes.LLM_TOP_K]: requestBody["top_k"], - [SpanAttributes.LLM_TEMPERATURE]: requestBody["temperature"], + [SpanAttributes.LLM_REQUEST_TEMPERATURE]: requestBody["temperature"], [SpanAttributes.LLM_REQUEST_MAX_TOKENS]: requestBody["max_tokens_to_sample"], @@ -350,9 +350,9 @@ export class BedrockInstrumentation extends InstrumentationBase { } case "cohere": { return { - [SpanAttributes.LLM_TOP_P]: requestBody["p"], + [SpanAttributes.LLM_REQUEST_TOP_P]: requestBody["p"], [SpanAttributes.LLM_TOP_K]: requestBody["k"], - [SpanAttributes.LLM_TEMPERATURE]: requestBody["temperature"], + [SpanAttributes.LLM_REQUEST_TEMPERATURE]: requestBody["temperature"], [SpanAttributes.LLM_REQUEST_MAX_TOKENS]: requestBody["max_tokens"], // Prompt & Role @@ -367,8 +367,8 @@ export class BedrockInstrumentation extends InstrumentationBase { } case "meta": { return { - [SpanAttributes.LLM_TOP_P]: requestBody["top_p"], - [SpanAttributes.LLM_TEMPERATURE]: requestBody["temperature"], + [SpanAttributes.LLM_REQUEST_TOP_P]: requestBody["top_p"], + [SpanAttributes.LLM_REQUEST_TEMPERATURE]: requestBody["temperature"], [SpanAttributes.LLM_REQUEST_MAX_TOKENS]: requestBody["max_gen_len"], // Prompt & Role diff --git a/packages/instrumentation-bedrock/tests/ai21.test.ts b/packages/instrumentation-bedrock/tests/ai21.test.ts index 4384b689..86caf31f 100644 --- a/packages/instrumentation-bedrock/tests/ai21.test.ts +++ b/packages/instrumentation-bedrock/tests/ai21.test.ts @@ -117,13 +117,16 @@ describe("Test Ai21 with AWS Bedrock Instrumentation", () => { const spans = memoryExporter.getFinishedSpans(); const attributes = spans[0].attributes; - assert.strictEqual(attributes[SpanAttributes.LLM_VENDOR], vendor); + assert.strictEqual(attributes[SpanAttributes.LLM_SYSTEM], vendor); assert.strictEqual( attributes[SpanAttributes.LLM_REQUEST_TYPE], "completion", ); assert.strictEqual(attributes[SpanAttributes.LLM_REQUEST_MODEL], model); - assert.strictEqual(attributes[SpanAttributes.LLM_TOP_P], params.topP); + assert.strictEqual( + attributes[SpanAttributes.LLM_REQUEST_TOP_P], + params.topP, + ); assert.strictEqual( attributes[SpanAttributes.LLM_PRESENCE_PENALTY], params.presencePenalty.scale, @@ -133,7 +136,7 @@ describe("Test Ai21 with AWS Bedrock Instrumentation", () => { params.frequencyPenalty.scale, ); assert.strictEqual( - attributes[SpanAttributes.LLM_TEMPERATURE], + attributes[SpanAttributes.LLM_REQUEST_TEMPERATURE], params.temperature, ); assert.strictEqual( diff --git a/packages/instrumentation-bedrock/tests/amazon.test.ts b/packages/instrumentation-bedrock/tests/amazon.test.ts index 908fb21c..7340d8e9 100644 --- a/packages/instrumentation-bedrock/tests/amazon.test.ts +++ b/packages/instrumentation-bedrock/tests/amazon.test.ts @@ -118,18 +118,18 @@ describe("Test Amazon Titan with AWS Bedrock Instrumentation", () => { const spans = memoryExporter.getFinishedSpans(); const attributes = spans[0].attributes; - assert.strictEqual(attributes[SpanAttributes.LLM_VENDOR], vendor); + assert.strictEqual(attributes[SpanAttributes.LLM_SYSTEM], vendor); assert.strictEqual( attributes[SpanAttributes.LLM_REQUEST_TYPE], "completion", ); assert.strictEqual(attributes[SpanAttributes.LLM_REQUEST_MODEL], model); assert.strictEqual( - attributes[SpanAttributes.LLM_TOP_P], + attributes[SpanAttributes.LLM_REQUEST_TOP_P], params.textGenerationConfig.topP, ); assert.strictEqual( - attributes[SpanAttributes.LLM_TEMPERATURE], + attributes[SpanAttributes.LLM_REQUEST_TEMPERATURE], params.textGenerationConfig.temperature, ); assert.strictEqual( @@ -203,18 +203,18 @@ describe("Test Amazon Titan with AWS Bedrock Instrumentation", () => { const attributes = spans[0].attributes; - assert.strictEqual(attributes[SpanAttributes.LLM_VENDOR], vendor); + assert.strictEqual(attributes[SpanAttributes.LLM_SYSTEM], vendor); assert.strictEqual( attributes[SpanAttributes.LLM_REQUEST_TYPE], "completion", ); assert.strictEqual(attributes[SpanAttributes.LLM_REQUEST_MODEL], model); assert.strictEqual( - attributes[SpanAttributes.LLM_TOP_P], + attributes[SpanAttributes.LLM_REQUEST_TOP_P], params.textGenerationConfig.topP, ); assert.strictEqual( - attributes[SpanAttributes.LLM_TEMPERATURE], + attributes[SpanAttributes.LLM_REQUEST_TEMPERATURE], params.textGenerationConfig.temperature, ); assert.strictEqual( diff --git a/packages/instrumentation-bedrock/tests/anthropic.test.ts b/packages/instrumentation-bedrock/tests/anthropic.test.ts index 9fd573c4..5cb46aa6 100644 --- a/packages/instrumentation-bedrock/tests/anthropic.test.ts +++ b/packages/instrumentation-bedrock/tests/anthropic.test.ts @@ -116,16 +116,19 @@ describe("Test Anthropic with AWS Bedrock Instrumentation", () => { const spans = memoryExporter.getFinishedSpans(); const attributes = spans[0].attributes; - assert.strictEqual(attributes[SpanAttributes.LLM_VENDOR], vendor); + assert.strictEqual(attributes[SpanAttributes.LLM_SYSTEM], vendor); assert.strictEqual( attributes[SpanAttributes.LLM_REQUEST_TYPE], "completion", ); assert.strictEqual(attributes[SpanAttributes.LLM_REQUEST_MODEL], model); - assert.strictEqual(attributes[SpanAttributes.LLM_TOP_P], params.top_p); + assert.strictEqual( + attributes[SpanAttributes.LLM_REQUEST_TOP_P], + params.top_p, + ); assert.strictEqual(attributes[SpanAttributes.LLM_TOP_K], params.top_k); assert.strictEqual( - attributes[SpanAttributes.LLM_TEMPERATURE], + attributes[SpanAttributes.LLM_REQUEST_TEMPERATURE], params.temperature, ); assert.strictEqual( @@ -187,16 +190,19 @@ describe("Test Anthropic with AWS Bedrock Instrumentation", () => { const attributes = spans[0].attributes; - assert.strictEqual(attributes[SpanAttributes.LLM_VENDOR], vendor); + assert.strictEqual(attributes[SpanAttributes.LLM_SYSTEM], vendor); assert.strictEqual( attributes[SpanAttributes.LLM_REQUEST_TYPE], "completion", ); assert.strictEqual(attributes[SpanAttributes.LLM_REQUEST_MODEL], model); - assert.strictEqual(attributes[SpanAttributes.LLM_TOP_P], params.top_p); + assert.strictEqual( + attributes[SpanAttributes.LLM_REQUEST_TOP_P], + params.top_p, + ); assert.strictEqual(attributes[SpanAttributes.LLM_TOP_K], params.top_k); assert.strictEqual( - attributes[SpanAttributes.LLM_TEMPERATURE], + attributes[SpanAttributes.LLM_REQUEST_TEMPERATURE], params.temperature, ); assert.strictEqual( diff --git a/packages/instrumentation-bedrock/tests/cohere.test.ts b/packages/instrumentation-bedrock/tests/cohere.test.ts index 22714c87..16b21bdb 100644 --- a/packages/instrumentation-bedrock/tests/cohere.test.ts +++ b/packages/instrumentation-bedrock/tests/cohere.test.ts @@ -116,16 +116,16 @@ describe("Test Cohere with AWS Bedrock Instrumentation", () => { const spans = memoryExporter.getFinishedSpans(); const attributes = spans[0].attributes; - assert.strictEqual(attributes[SpanAttributes.LLM_VENDOR], vendor); + assert.strictEqual(attributes[SpanAttributes.LLM_SYSTEM], vendor); assert.strictEqual( attributes[SpanAttributes.LLM_REQUEST_TYPE], "completion", ); assert.strictEqual(attributes[SpanAttributes.LLM_REQUEST_MODEL], model); - assert.strictEqual(attributes[SpanAttributes.LLM_TOP_P], params.p); + assert.strictEqual(attributes[SpanAttributes.LLM_REQUEST_TOP_P], params.p); assert.strictEqual(attributes[SpanAttributes.LLM_TOP_K], params.k); assert.strictEqual( - attributes[SpanAttributes.LLM_TEMPERATURE], + attributes[SpanAttributes.LLM_REQUEST_TEMPERATURE], params.temperature, ); assert.strictEqual( @@ -184,16 +184,19 @@ describe("Test Cohere with AWS Bedrock Instrumentation", () => { const attributes = spans[0].attributes; - assert.strictEqual(attributes[SpanAttributes.LLM_VENDOR], vendor); + assert.strictEqual(attributes[SpanAttributes.LLM_SYSTEM], vendor); assert.strictEqual( attributes[SpanAttributes.LLM_REQUEST_TYPE], "completion", ); assert.strictEqual(attributes[SpanAttributes.LLM_REQUEST_MODEL], model); - assert.strictEqual(attributes[SpanAttributes.LLM_TOP_P], params.p); + assert.strictEqual( + attributes[SpanAttributes.LLM_REQUEST_TOP_P], + params.p, + ); assert.strictEqual(attributes[SpanAttributes.LLM_TOP_K], params.k); assert.strictEqual( - attributes[SpanAttributes.LLM_TEMPERATURE], + attributes[SpanAttributes.LLM_REQUEST_TEMPERATURE], params.temperature, ); assert.strictEqual( diff --git a/packages/instrumentation-bedrock/tests/meta.test.ts b/packages/instrumentation-bedrock/tests/meta.test.ts index 5d1284b4..872d5f82 100644 --- a/packages/instrumentation-bedrock/tests/meta.test.ts +++ b/packages/instrumentation-bedrock/tests/meta.test.ts @@ -115,15 +115,18 @@ describe("Test Meta with AWS Bedrock Instrumentation", () => { const spans = memoryExporter.getFinishedSpans(); const attributes = spans[0].attributes; - assert.strictEqual(attributes[SpanAttributes.LLM_VENDOR], vendor); + assert.strictEqual(attributes[SpanAttributes.LLM_SYSTEM], vendor); assert.strictEqual( attributes[SpanAttributes.LLM_REQUEST_TYPE], "completion", ); assert.strictEqual(attributes[SpanAttributes.LLM_REQUEST_MODEL], model); - assert.strictEqual(attributes[SpanAttributes.LLM_TOP_P], params.top_p); assert.strictEqual( - attributes[SpanAttributes.LLM_TEMPERATURE], + attributes[SpanAttributes.LLM_REQUEST_TOP_P], + params.top_p, + ); + assert.strictEqual( + attributes[SpanAttributes.LLM_REQUEST_TEMPERATURE], params.temperature, ); assert.strictEqual( @@ -194,15 +197,18 @@ describe("Test Meta with AWS Bedrock Instrumentation", () => { const attributes = spans[0].attributes; - assert.strictEqual(attributes[SpanAttributes.LLM_VENDOR], vendor); + assert.strictEqual(attributes[SpanAttributes.LLM_SYSTEM], vendor); assert.strictEqual( attributes[SpanAttributes.LLM_REQUEST_TYPE], "completion", ); assert.strictEqual(attributes[SpanAttributes.LLM_REQUEST_MODEL], model); - assert.strictEqual(attributes[SpanAttributes.LLM_TOP_P], params.top_p); assert.strictEqual( - attributes[SpanAttributes.LLM_TEMPERATURE], + attributes[SpanAttributes.LLM_REQUEST_TOP_P], + params.top_p, + ); + assert.strictEqual( + attributes[SpanAttributes.LLM_REQUEST_TEMPERATURE], params.temperature, ); assert.strictEqual( diff --git a/packages/instrumentation-cohere/src/instrumentation.ts b/packages/instrumentation-cohere/src/instrumentation.ts index 5a612c33..c5836a9f 100644 --- a/packages/instrumentation-cohere/src/instrumentation.ts +++ b/packages/instrumentation-cohere/src/instrumentation.ts @@ -216,7 +216,7 @@ export class CohereInstrumentation extends InstrumentationBase { type: LLM_COMPLETION_TYPE; }): Span { const attributes: Attributes = { - [SpanAttributes.LLM_VENDOR]: "Cohere", + [SpanAttributes.LLM_SYSTEM]: "Cohere", [SpanAttributes.LLM_REQUEST_TYPE]: this._getLlmRequestTypeByMethod(type), }; @@ -226,9 +226,9 @@ export class CohereInstrumentation extends InstrumentationBase { attributes[SpanAttributes.LLM_REQUEST_MODEL] = model; if (!("query" in params)) { - attributes[SpanAttributes.LLM_TOP_P] = params.p; + attributes[SpanAttributes.LLM_REQUEST_TOP_P] = params.p; attributes[SpanAttributes.LLM_TOP_K] = params.k; - attributes[SpanAttributes.LLM_TEMPERATURE] = params.temperature; + attributes[SpanAttributes.LLM_REQUEST_TEMPERATURE] = params.temperature; attributes[SpanAttributes.LLM_FREQUENCY_PENALTY] = params.frequencyPenalty; attributes[SpanAttributes.LLM_PRESENCE_PENALTY] = diff --git a/packages/instrumentation-cohere/tests/chat.test.ts b/packages/instrumentation-cohere/tests/chat.test.ts index 68f7e313..a950778b 100644 --- a/packages/instrumentation-cohere/tests/chat.test.ts +++ b/packages/instrumentation-cohere/tests/chat.test.ts @@ -99,7 +99,7 @@ describe.skip("Test Chat with Cohere Instrumentation", () => { const spans = memoryExporter.getFinishedSpans(); const attributes = spans[0].attributes; - assert.strictEqual(attributes[SpanAttributes.LLM_VENDOR], "Cohere"); + assert.strictEqual(attributes[SpanAttributes.LLM_SYSTEM], "Cohere"); assert.strictEqual(attributes[SpanAttributes.LLM_REQUEST_TYPE], "chat"); assert.strictEqual( attributes[SpanAttributes.LLM_REQUEST_MODEL], @@ -119,9 +119,9 @@ describe.skip("Test Chat with Cohere Instrumentation", () => { params.message, ); assert.strictEqual(attributes[SpanAttributes.LLM_TOP_K], params.k); - assert.strictEqual(attributes[SpanAttributes.LLM_TOP_P], params.p); + assert.strictEqual(attributes[SpanAttributes.LLM_REQUEST_TOP_P], params.p); assert.strictEqual( - attributes[SpanAttributes.LLM_TEMPERATURE], + attributes[SpanAttributes.LLM_REQUEST_TEMPERATURE], params.temperature, ); assert.strictEqual( @@ -196,7 +196,7 @@ describe.skip("Test Chat with Cohere Instrumentation", () => { const spans = memoryExporter.getFinishedSpans(); const attributes = spans[0].attributes; - assert.strictEqual(attributes[SpanAttributes.LLM_VENDOR], "Cohere"); + assert.strictEqual(attributes[SpanAttributes.LLM_SYSTEM], "Cohere"); assert.strictEqual(attributes[SpanAttributes.LLM_REQUEST_TYPE], "chat"); assert.strictEqual( attributes[SpanAttributes.LLM_REQUEST_MODEL], @@ -216,9 +216,9 @@ describe.skip("Test Chat with Cohere Instrumentation", () => { params.message, ); assert.strictEqual(attributes[SpanAttributes.LLM_TOP_K], params.k); - assert.strictEqual(attributes[SpanAttributes.LLM_TOP_P], params.p); + assert.strictEqual(attributes[SpanAttributes.LLM_REQUEST_TOP_P], params.p); assert.strictEqual( - attributes[SpanAttributes.LLM_TEMPERATURE], + attributes[SpanAttributes.LLM_REQUEST_TEMPERATURE], params.temperature, ); assert.strictEqual( diff --git a/packages/instrumentation-cohere/tests/generate.test.ts b/packages/instrumentation-cohere/tests/generate.test.ts index db16eae0..98d69f63 100644 --- a/packages/instrumentation-cohere/tests/generate.test.ts +++ b/packages/instrumentation-cohere/tests/generate.test.ts @@ -92,7 +92,7 @@ describe.skip("Test Generate with Cohere Instrumentation", () => { const spans = memoryExporter.getFinishedSpans(); const attributes = spans[0].attributes; - assert.strictEqual(attributes[SpanAttributes.LLM_VENDOR], "Cohere"); + assert.strictEqual(attributes[SpanAttributes.LLM_SYSTEM], "Cohere"); assert.strictEqual( attributes[SpanAttributes.LLM_REQUEST_TYPE], "completion", @@ -111,9 +111,9 @@ describe.skip("Test Generate with Cohere Instrumentation", () => { params.prompt, ); assert.strictEqual(attributes[SpanAttributes.LLM_TOP_K], params.k); - assert.strictEqual(attributes[SpanAttributes.LLM_TOP_P], params.p); + assert.strictEqual(attributes[SpanAttributes.LLM_REQUEST_TOP_P], params.p); assert.strictEqual( - attributes[SpanAttributes.LLM_TEMPERATURE], + attributes[SpanAttributes.LLM_REQUEST_TEMPERATURE], params.temperature, ); assert.strictEqual( @@ -169,7 +169,7 @@ describe.skip("Test Generate with Cohere Instrumentation", () => { const spans = memoryExporter.getFinishedSpans(); const attributes = spans[0].attributes; - assert.strictEqual(attributes[SpanAttributes.LLM_VENDOR], "Cohere"); + assert.strictEqual(attributes[SpanAttributes.LLM_SYSTEM], "Cohere"); assert.strictEqual( attributes[SpanAttributes.LLM_REQUEST_TYPE], "completion", @@ -188,9 +188,9 @@ describe.skip("Test Generate with Cohere Instrumentation", () => { params.prompt, ); assert.strictEqual(attributes[SpanAttributes.LLM_TOP_K], params.k); - assert.strictEqual(attributes[SpanAttributes.LLM_TOP_P], params.p); + assert.strictEqual(attributes[SpanAttributes.LLM_REQUEST_TOP_P], params.p); assert.strictEqual( - attributes[SpanAttributes.LLM_TEMPERATURE], + attributes[SpanAttributes.LLM_REQUEST_TEMPERATURE], params.temperature, ); assert.strictEqual( diff --git a/packages/instrumentation-cohere/tests/rerank.test.ts b/packages/instrumentation-cohere/tests/rerank.test.ts index 36533f26..442c9ed2 100644 --- a/packages/instrumentation-cohere/tests/rerank.test.ts +++ b/packages/instrumentation-cohere/tests/rerank.test.ts @@ -105,7 +105,7 @@ describe.skip("Test Rerank with Cohere Instrumentation", () => { const spans = memoryExporter.getFinishedSpans(); const attributes = spans[0].attributes; - assert.strictEqual(attributes[SpanAttributes.LLM_VENDOR], "Cohere"); + assert.strictEqual(attributes[SpanAttributes.LLM_SYSTEM], "Cohere"); assert.strictEqual(attributes[SpanAttributes.LLM_REQUEST_TYPE], "rerank"); assert.strictEqual( attributes[SpanAttributes.LLM_REQUEST_MODEL], diff --git a/packages/instrumentation-llamaindex/recordings/Test-LlamaIndex-instrumentation_1988279490/should-add-span-for-all-instrumented-methods_2883459899/recording.har b/packages/instrumentation-llamaindex/recordings/Test-LlamaIndex-instrumentation_1988279490/should-add-span-for-all-instrumented-methods_2883459899/recording.har index 4bc7b633..811c83d7 100644 --- a/packages/instrumentation-llamaindex/recordings/Test-LlamaIndex-instrumentation_1988279490/should-add-span-for-all-instrumented-methods_2883459899/recording.har +++ b/packages/instrumentation-llamaindex/recordings/Test-LlamaIndex-instrumentation_1988279490/should-add-span-for-all-instrumented-methods_2883459899/recording.har @@ -8,17 +8,17 @@ }, "entries": [ { - "_id": "35e4e3d1b757b5697226d1cf6efde888", + "_id": "f551fbadc626e695523e8afb90f57137", "_order": 0, "cache": {}, "request": { - "bodySize": 95, + "bodySize": 9656, "cookies": [], "headers": [ { "_fromType": "array", "name": "content-length", - "value": "95" + "value": "9656" }, { "_fromType": "array", @@ -33,7 +33,7 @@ { "_fromType": "array", "name": "user-agent", - "value": "OpenAI/JS 4.28.4" + "value": "OpenAI/JS 4.38.3" }, { "_fromType": "array", @@ -43,7 +43,7 @@ { "_fromType": "array", "name": "x-stainless-package-version", - "value": "4.28.4" + "value": "4.38.3" }, { "_fromType": "array", @@ -75,35 +75,35 @@ "value": "api.openai.com" } ], - "headersSize": 463, + "headersSize": 465, "httpVersion": "HTTP/1.1", "method": "POST", "postData": { "mimeType": "application/json", "params": [], - "text": "{\n \"model\": \"text-embedding-ada-002\",\n \"input\": [\n \"Where was albert einstein born?\"\n ]\n}" + "text": "{\n \"model\": \"text-embedding-ada-002\",\n \"input\": [\n \"Albert Einstein: A Genius Unveiled\\n\\nAlbert Einstein, renowned as the father of modern physics, remains an emblematic figure in the annals of science. Born in Ulm, Germany, in 1879, his intellectual prowess was evident from an early age. However, it was his groundbreaking theory of relativity, encapsulated in the equation E=mc^2, that revolutionized our understanding of space, time, and energy.\",\n \"/*\\n * Copyright Traceloop\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License. * You may obtain a copy of the License at\\n *\\n * https://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and\\n * limitations under the License.\",\n \"* See the License for the specific language governing permissions and\\n * limitations under the License. */\\n\\nimport { context } from \\\"@opentelemetry/api\\\";\\nimport { AsyncHooksContextManager } from \\\"@opentelemetry/context-async-hooks\\\";\\nimport { LlamaIndexInstrumentation } from \\\"../src/instrumentation\\\";\\nimport * as assert from \\\"assert\\\";\\nimport {\\n BasicTracerProvider,\\n InMemorySpanExporter,\\n SimpleSpanProcessor,\\n} from \\\"@opentelemetry/sdk-trace-base\\\";\\nimport type * as llamaindexImport from \\\"llamaindex\\\";\\n\\nimport { Polly, setupMocha as setupPolly } from \\\"@pollyjs/core\\\";\\nimport NodeHttpAdapter from \\\"@pollyjs/adapter-node-http\\\";\\nimport FSPersister from \\\"@pollyjs/persister-fs\\\";\\n\\nconst memoryExporter = new InMemorySpanExporter();\\n\\nPolly.register(NodeHttpAdapter);\\nPolly.register(FSPersister);\\n\\ndescribe(\\\"Test LlamaIndex instrumentation\\\", async function () {\\n const provider = new BasicTracerProvider();\\n let instrumentation: LlamaIndexInstrumentation;\\n let contextManager: AsyncHooksContextManager;\\n let llamaindex: typeof llamaindexImport;\\n\\n setupPolly({\\n adapters: [\\\"node-http\\\"],\\n persister: \\\"fs\\\",\\n recordIfMissing: process.env.RECORD_MODE === \\\"NEW\\\",\\n matchRequestsBy: {\\n headers: false,\\n },\\n });\\n\\n before(() => {\\n if (process.env.RECORD_MODE !== \\\"NEW\\\") {\\n process.env.OPENAI_API_KEY = \\\"test\\\";\\n }\\n\\n provider.addSpanProcessor(new SimpleSpanProcessor(memoryExporter));\\n instrumentation = new LlamaIndexInstrumentation();\\n instrumentation.setTracerProvider(provider);\\n llamaindex = require(\\\"llamaindex\\\");\\n });\\n\\n beforeEach(function () {\\n contextManager = new AsyncHooksContextManager().enable();\\n context.setGlobalContextManager(contextManager);\\n\\n const { server } = this.polly as Polly;\\n server.any().on(\\\"beforePersist\\\", (_req, recording) => {\\n recording.request.headers = recording.request.headers.filter(\\n ({ name }: { name: string }) => name !== \\\"authorization\\\",\\n );\\n });\\n });\\n\\n afterEach(() => {\\n memoryExporter.reset();\\n context.disable();\\n });\\n\\n it(\\\"should set attributes in span for LLM instrumentation\\\", async () => {\\n const model = \\\"gpt-3.5-turbo\\\";\\n const prompt = \\\"Tell me a joke about OpenTelemetry\\\";\\n const openai = new llamaindex.OpenAI({ model, temperature: 0 });\\n const res = await openai.chat({\\n messages: [{ role: \\\"user\\\", content: prompt }],\\n });\\n\\n assert.ok(res);\\n assert.ok(res.message);\\n\\n const spans = memoryExporter.getFinishedSpans();\\n\\n assert.strictEqual(spans.length, 1);\\n const chatAttributes = spans[0].attributes;\\n\\n assert.strictEqual(chatAttributes[\\\"gen_ai.system\\\"], \\\"OpenAI\\\");\\n assert.strictEqual(chatAttributes[\\\"llm.request.type\\\"], \\\"chat\\\");\\n assert.strictEqual(chatAttributes[\\\"gen_ai.request.model\\\"], model);\\n assert.strictEqual(chatAttributes[\\\"gen_ai.request.top_p\\\"], 1);\\n assert.strictEqual(chatAttributes[\\\"gen_ai.prompt.0.content\\\"], prompt);\\n assert.strictEqual(chatAttributes[\\\"gen_ai.prompt.0.role\\\"], \\\"user\\\");\\n assert.strictEqual(chatAttributes[\\\"gen_ai.completion.0.role\\\"], \\\"assistant\\\");\\n assert.strictEqual(\\n chatAttributes[\\\"gen_ai.completion.0.content\\\"],\\n res.message.content,\\n );\\n });\\n\\n it(\\\"should set attributes in span for LLM instrumentation in case of streaming response\\\", async () => {\\n const model = \\\"gpt-3.5-turbo\\\";\\n const prompt = \\\"Tell me a joke about OpenTelemetry\\\";\\n const openai = new llamaindex.OpenAI({ model, temperature: 0 });\\n const res = await openai.chat({\\n messages: [{ role: \\\"user\\\", content: prompt }],\\n stream: true,\\n });\\n\\n assert.ok(res);\\n let message = \\\"\\\";\\n for await (const messageChunk of res) {\\n if (messageChunk.delta) {\\n message += messageChunk.delta;\\n }\\n }\\n assert.ok(message);\\n\\n const spans = memoryExporter.getFinishedSpans();\\n\\n assert.strictEqual(spans.length, 1);\\n const chatAttributes = spans[0].attributes;\\n\\n assert.strictEqual(chatAttributes[\\\"gen_ai.system\\\"], \\\"OpenAI\\\");\\n assert.strictEqual(chatAttributes[\\\"llm.request.type\\\"], \\\"chat\\\");\\n assert.strictEqual(chatAttributes[\\\"gen_ai.request.model\\\"], model);\\n assert.strictEqual(chatAttributes[\\\"gen_ai.request.top_p\\\"], 1);\\n assert.strictEqual(chatAttributes[\\\"gen_ai.prompt.0.content\\\"], prompt);\\n assert.strictEqual(chatAttributes[\\\"gen_ai.prompt.0.role\\\"], \\\"user\\\");\\n assert.strictEqual(chatAttributes[\\\"gen_ai.completion.0.content\\\"], message);\\n });\\n\\n it(\\\"should add span for all instrumented methods\\\", async () => {\\n const directoryReader = new llamaindex.SimpleDirectoryReader();\\n const documents = await directoryReader.loadData({ directoryPath: \\\"test\\\" });\\n const embedModel = new llamaindex.OpenAIEmbedding();\\n const vectorStore = new llamaindex.SimpleVectorStore();\\n\\n const serviceContext = llamaindex.serviceContextFromDefaults({\\n embedModel,\\n });\\n const storageContext = await llamaindex.storageContextFromDefaults({\\n vectorStore,\\n });\\n\\n const index = await llamaindex.VectorStoreIndex.fromDocuments(documents, {\\n storageContext,\\n serviceContext,\\n });\\n\\n const queryEngine = index.asQueryEngine();\\n\\n const result = await queryEngine.query({\\n query: \\\"Where was albert einstein born?\\\",\\n });\\n\\n assert.ok(result.response);\\n\\n const spans = memoryExporter.getFinishedSpans();\\n\\n const spanNames = spans.map((span) => span.name);\\n\\n // TODO: Need to figure out why this doesn't get logged\\n // assert.ok(spanNames.includes(\\\"get_query_embedding.task\\\"));\\n\\n const retrieverQueryEngineSpan = spans.find(\\n (span) => span.name === \\\"retriever_query_engine.query\\\",\\n );\\n\\n assert.ok(spanNames.includes(\\\"retriever_query_engine.retrieve\\\"));\\n assert.ok(spanNames.includes(\\\"llamaindex.open_ai.chat\\\"));\\n assert.ok(spanNames.includes(\\\"response_synthesizer.synthesize\\\"));\\n assert.ok(spanNames.includes(\\\"vector_index_retriever.retrieve\\\"));\\n\\n assert.ok(retrieverQueryEngineSpan);\\n assert.ok(retrieverQueryEngineSpan.attributes[\\\"traceloop.entity.input\\\"]);\\n assert.ok(retrieverQueryEngineSpan.attributes[\\\"traceloop.entity.output\\\"]);\\n assert.strictEqual(\\n JSON.parse(\\n retrieverQueryEngineSpan.attributes[\\n \\\"traceloop.entity.input\\\"\\n ].toString(),\\n ).kwargs.query,\\n \\\"Where was albert einstein born?\\\",\\n );\\n assert.strictEqual(\\n JSON.parse(\\n retrieverQueryEngineSpan.attributes[\\n \\\"traceloop.entity.output\\\"\\n ].toString(),\\n ).response,\\n result.response,\\n );\\n }).timeout(60000);\\n\\n it(\\\"should build proper trace on streaming query engine\\\", async () => {\\n const directoryReader = new llamaindex.SimpleDirectoryReader();\\n const documents = await directoryReader.loadData({ directoryPath: \\\"test\\\" });\\n const embedModel = new llamaindex.OpenAIEmbedding();\\n const vectorStore = new llamaindex.SimpleVectorStore();\\n\\n const serviceContext = llamaindex.serviceContextFromDefaults({\\n embedModel,\\n });\\n const storageContext = await llamaindex.storageContextFromDefaults({\\n vectorStore,\\n });\\n\\n const index = await llamaindex.VectorStoreIndex.fromDocuments(documents, {\\n storageContext,\\n serviceContext,\\n });\\n\\n const queryEngine = index.asQueryEngine();\\n\\n const result = await queryEngine.query({\\n query: \\\"Where was albert einstein born?\\\",\\n stream: true,\\n });\\n\\n for await (const res of result) {\\n assert.ok(res);\\n }\\n\\n const spans = memoryExporter.getFinishedSpans();\\n\\n // TODO: Need to figure out why this doesn't get logged\\n // assert.ok(spanNames.includes(\\\"get_query_embedding.task\\\"));\\n\\n const retrieverQueryEngineSpan = spans.find(\\n (span) => span.name === \\\"retriever_query_engine.query\\\",\\n );\\n const synthesizeSpan = spans.find(\\n (span) => span.name === \\\"response_synthesizer.synthesize\\\",\\n );\\n const openAIChatSpan = spans.find(\\n (span) => span.name === \\\"llamaindex.open_ai.chat\\\",\\n );\\n\\n assert.strictEqual(\\n synthesizeSpan?.parentSpanId,\\n retrieverQueryEngineSpan?.spanContext().spanId,\\n );\\n assert.strictEqual(\\n openAIChatSpan?.parentSpanId,\\n synthesizeSpan?.spanContext().spanId,\\n );\\n }).timeout(60000);\\n});\"\n ]\n}" }, "queryString": [], "url": "https://api.openai.com/v1/embeddings" }, "response": { - "bodySize": 10196, + "bodySize": 30129, "content": { "encoding": "base64", "mimeType": "application/json", - "size": 10196, - "text": "[\"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\"]" + "size": 30129, + "text": "[\"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\"]" }, "cookies": [ { "domain": ".api.openai.com", - "expires": "2024-03-04T12:35:59.000Z", + "expires": "2024-04-29T14:20:35.000Z", "httpOnly": true, "name": "__cf_bm", "path": "/", "sameSite": "None", "secure": true, - "value": "nQSFqeDoNXuPG0Pf.3wPeTomTlad9XUpJjdh8AoRPTg-1709553959-1.0.1.1-27lXE1skOtMjwTyXt98VSLWjyyexrDIz9GE8fQwT.QNVQP53VdsLEzN0BaY.MU65XlU4wIcvd8KZCqw_xAjWUg" + "value": "x7Hr.sfmuoO2p06aXzfj1B6APq3Lv0Ws930U0hhV908-1714398635-1.0.1.1-nJUeKh1MLtpUEvRCmwlPts8RaxdgalBbR9TqYNv2zU7m0Tmgc.iWjPtCiaM2omO55Oou.6oqvBzUfnb92YtVbw" }, { "domain": ".api.openai.com", @@ -112,13 +112,13 @@ "path": "/", "sameSite": "None", "secure": true, - "value": "2kDAHmFR1ud8diK.7R3AsHvoD_7yJU9sdpLBBepQAuY-1709553959085-0.0.1.1-604800000" + "value": "zEL_gWmSSgg4YlLtVRW7SH2ZdRa4Fz7fFLo71yn.fKY-1714398635212-0.0.1.1-604800000" } ], "headers": [ { "name": "date", - "value": "Mon, 04 Mar 2024 12:05:59 GMT" + "value": "Mon, 29 Apr 2024 13:50:35 GMT" }, { "name": "content-type", @@ -146,7 +146,7 @@ }, { "name": "openai-processing-ms", - "value": "23" + "value": "81" }, { "name": "openai-version", @@ -170,7 +170,7 @@ }, { "name": "x-request-id", - "value": "req_3f9ebf5d086222f4253835c062894b1f" + "value": "req_087176de946ee64f58a27b23c9bdb691" }, { "name": "cf-cache-status", @@ -179,12 +179,12 @@ { "_fromType": "array", "name": "set-cookie", - "value": "__cf_bm=nQSFqeDoNXuPG0Pf.3wPeTomTlad9XUpJjdh8AoRPTg-1709553959-1.0.1.1-27lXE1skOtMjwTyXt98VSLWjyyexrDIz9GE8fQwT.QNVQP53VdsLEzN0BaY.MU65XlU4wIcvd8KZCqw_xAjWUg; path=/; expires=Mon, 04-Mar-24 12:35:59 GMT; domain=.api.openai.com; HttpOnly; Secure; SameSite=None" + "value": "__cf_bm=x7Hr.sfmuoO2p06aXzfj1B6APq3Lv0Ws930U0hhV908-1714398635-1.0.1.1-nJUeKh1MLtpUEvRCmwlPts8RaxdgalBbR9TqYNv2zU7m0Tmgc.iWjPtCiaM2omO55Oou.6oqvBzUfnb92YtVbw; path=/; expires=Mon, 29-Apr-24 14:20:35 GMT; domain=.api.openai.com; HttpOnly; Secure; SameSite=None" }, { "_fromType": "array", "name": "set-cookie", - "value": "_cfuvid=2kDAHmFR1ud8diK.7R3AsHvoD_7yJU9sdpLBBepQAuY-1709553959085-0.0.1.1-604800000; path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None" + "value": "_cfuvid=zEL_gWmSSgg4YlLtVRW7SH2ZdRa4Fz7fFLo71yn.fKY-1714398635212-0.0.1.1-604800000; path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None" }, { "name": "server", @@ -192,7 +192,7 @@ }, { "name": "cf-ray", - "value": "85f1bcd2d9fe4c3d-MXP" + "value": "87bfc30ba9c84bf7-MXP" }, { "name": "content-encoding", @@ -209,8 +209,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2024-03-04T12:05:58.799Z", - "time": 404, + "startedDateTime": "2024-04-29T13:50:34.760Z", + "time": 941, "timings": { "blocked": -1, "connect": -1, @@ -218,21 +218,21 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 404 + "wait": 941 } }, { - "_id": "b46a7ea6d50c48e02d597c41e83be54e", + "_id": "35e4e3d1b757b5697226d1cf6efde888", "_order": 0, "cache": {}, "request": { - "bodySize": 1357, + "bodySize": 95, "cookies": [], "headers": [ { "_fromType": "array", "name": "content-length", - "value": "1357" + "value": "95" }, { "_fromType": "array", @@ -247,7 +247,7 @@ { "_fromType": "array", "name": "user-agent", - "value": "OpenAI/JS 4.28.4" + "value": "OpenAI/JS 4.38.3" }, { "_fromType": "array", @@ -257,7 +257,7 @@ { "_fromType": "array", "name": "x-stainless-package-version", - "value": "4.28.4" + "value": "4.38.3" }, { "_fromType": "array", @@ -289,35 +289,35 @@ "value": "api.openai.com" } ], - "headersSize": 471, + "headersSize": 463, "httpVersion": "HTTP/1.1", "method": "POST", "postData": { "mimeType": "application/json", "params": [], - "text": "{\n \"model\": \"gpt-3.5-turbo\",\n \"temperature\": 0.1,\n \"messages\": [\n {\n \"role\": \"user\",\n \"content\": \"Context information is below.\\n---------------------\\nAlbert Einstein: A Genius Unveiled\\n\\nAlbert Einstein, renowned as the father of modern physics, remains an emblematic figure in the annals of science. Born in Ulm, Germany, in 1879, his intellectual prowess was evident from an early age. However, it was his groundbreaking theory of relativity, encapsulated in the equation E=mc^2, that revolutionized our understanding of space, time, and energy. /*\\n * Copyright Traceloop\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License. * You may obtain a copy of the License at\\n *\\n * https://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and\\n * limitations under the License.\\n---------------------\\nGiven the context information and not prior knowledge, answer the query.\\nQuery: Where was albert einstein born?\\nAnswer:\"\n }\n ],\n \"top_p\": 1,\n \"stream\": false\n}" + "text": "{\n \"model\": \"text-embedding-ada-002\",\n \"input\": [\n \"Where was albert einstein born?\"\n ]\n}" }, "queryString": [], - "url": "https://api.openai.com/v1/chat/completions" + "url": "https://api.openai.com/v1/embeddings" }, "response": { - "bodySize": 452, + "bodySize": 10227, "content": { "encoding": "base64", "mimeType": "application/json", - "size": 452, - "text": "[\"H4sIAAAAAAAAA1SQO0/DQBCEe/+K1dV2ZCdy7LijiEhBCoQQBULW+bKxD+6lu43IQ/nvyA8SaK6Y2W935i4RAJM7VgETHSehnUrKc7albPskN+X6rVm/FNlZPKeyO+p2uWFxT9jmEwX9UjNhtVNI0prRFh45Yb81K9JVni9W+WowtN2h6rHWUbKY5QkdfGOTNJvnE9lZKTCwCt4jAIDL8PYZzQ6PrII0/lU0hsBbZNVtCIB5q3qF8RBkIG6IxXdTWENohtgPqkFPsJYmEEoD3zxAY70BaeBV6Rge0WtuTjM24dfbXWVb523TZzQHpW76XhoZutojD9b0NwJZN+LXCOBj6Hf4F5k5b7WjmuwXmn7hPC/Hfez+pXc3m8ozssTVH2pZRlNCFk6BUNd7aVr0zsux7t7V86YoSrFsFjmLrtEPAAAA//8DAPDujBP4AQAA\"]" + "size": 10227, + "text": "[\"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\"]" }, "cookies": [ { "domain": ".api.openai.com", - "expires": "2024-03-04T12:35:59.000Z", + "expires": "2024-04-29T14:20:36.000Z", "httpOnly": true, "name": "__cf_bm", "path": "/", "sameSite": "None", "secure": true, - "value": "_GiytcR_rpao8AXfO6c3hkEFY2bks6XC9c0NllXAAJs-1709553959-1.0.1.1-BCIjjQWenZa3Thd2ypba.BawaPSWgXNqmeh9skhkZvPbTlofAHIHoBIQnCHRQ1LT4Q9dtMHI1qQtNT5fkGoikA" + "value": "mu9ksiuHr4fjxxeIAz1RfWrlIcEk4ufahh.wdCfJI_0-1714398636-1.0.1.1-mmqb1CZcK2ejATCIEem9_tdTdT_QsLXHUUgraA0yomcziuNHJg4mQHCagWzGKIoN.VnE0eEhTGeA.PJH14JDZg" }, { "domain": ".api.openai.com", @@ -326,13 +326,13 @@ "path": "/", "sameSite": "None", "secure": true, - "value": "eBEwteTQeWdibP2mRG9kH2oNIjLhQDjDqbbuONKa3lw-1709553959939-0.0.1.1-604800000" + "value": "XTSb5SD5Qa.Dt5BzHkH.1xIN8vAt9RLR0rEhanz1YxU-1714398636001-0.0.1.1-604800000" } ], "headers": [ { "name": "date", - "value": "Mon, 04 Mar 2024 12:05:59 GMT" + "value": "Mon, 29 Apr 2024 13:50:36 GMT" }, { "name": "content-type", @@ -350,13 +350,9 @@ "name": "access-control-allow-origin", "value": "*" }, - { - "name": "cache-control", - "value": "no-cache, must-revalidate" - }, { "name": "openai-model", - "value": "gpt-3.5-turbo-0125" + "value": "text-embedding-ada-002" }, { "name": "openai-organization", @@ -364,7 +360,7 @@ }, { "name": "openai-processing-ms", - "value": "454" + "value": "19" }, { "name": "openai-version", @@ -378,29 +374,17 @@ "name": "x-ratelimit-limit-requests", "value": "5000" }, - { - "name": "x-ratelimit-limit-tokens", - "value": "160000" - }, { "name": "x-ratelimit-remaining-requests", "value": "4999" }, - { - "name": "x-ratelimit-remaining-tokens", - "value": "159689" - }, { "name": "x-ratelimit-reset-requests", "value": "12ms" }, - { - "name": "x-ratelimit-reset-tokens", - "value": "116ms" - }, { "name": "x-request-id", - "value": "req_ec48913955b4c237af97b7a8e41a3881" + "value": "req_8d91c4fb6ad8ccf4df9549565cf8a0ad" }, { "name": "cf-cache-status", @@ -409,12 +393,12 @@ { "_fromType": "array", "name": "set-cookie", - "value": "__cf_bm=_GiytcR_rpao8AXfO6c3hkEFY2bks6XC9c0NllXAAJs-1709553959-1.0.1.1-BCIjjQWenZa3Thd2ypba.BawaPSWgXNqmeh9skhkZvPbTlofAHIHoBIQnCHRQ1LT4Q9dtMHI1qQtNT5fkGoikA; path=/; expires=Mon, 04-Mar-24 12:35:59 GMT; domain=.api.openai.com; HttpOnly; Secure; SameSite=None" + "value": "__cf_bm=mu9ksiuHr4fjxxeIAz1RfWrlIcEk4ufahh.wdCfJI_0-1714398636-1.0.1.1-mmqb1CZcK2ejATCIEem9_tdTdT_QsLXHUUgraA0yomcziuNHJg4mQHCagWzGKIoN.VnE0eEhTGeA.PJH14JDZg; path=/; expires=Mon, 29-Apr-24 14:20:36 GMT; domain=.api.openai.com; HttpOnly; Secure; SameSite=None" }, { "_fromType": "array", "name": "set-cookie", - "value": "_cfuvid=eBEwteTQeWdibP2mRG9kH2oNIjLhQDjDqbbuONKa3lw-1709553959939-0.0.1.1-604800000; path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None" + "value": "_cfuvid=XTSb5SD5Qa.Dt5BzHkH.1xIN8vAt9RLR0rEhanz1YxU-1714398636001-0.0.1.1-604800000; path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None" }, { "name": "server", @@ -422,7 +406,7 @@ }, { "name": "cf-ray", - "value": "85f1bcd57eae4c3d-MXP" + "value": "87bfc311aa894bf7-MXP" }, { "name": "content-encoding", @@ -433,14 +417,14 @@ "value": "h3=\":443\"; ma=86400" } ], - "headersSize": 1210, + "headersSize": 1066, "httpVersion": "HTTP/1.1", "redirectURL": "", "status": 200, "statusText": "OK" }, - "startedDateTime": "2024-03-04T12:05:59.218Z", - "time": 693, + "startedDateTime": "2024-04-29T13:50:35.716Z", + "time": 378, "timings": { "blocked": -1, "connect": -1, @@ -448,21 +432,21 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 693 + "wait": 378 } }, { - "_id": "4d705d14a30eb714ad1b4db58213356a", + "_id": "b46a7ea6d50c48e02d597c41e83be54e", "_order": 0, "cache": {}, "request": { - "bodySize": 9608, + "bodySize": 1357, "cookies": [], "headers": [ { "_fromType": "array", "name": "content-length", - "value": "9608" + "value": "1357" }, { "_fromType": "array", @@ -477,7 +461,7 @@ { "_fromType": "array", "name": "user-agent", - "value": "OpenAI/JS 4.28.4" + "value": "OpenAI/JS 4.38.3" }, { "_fromType": "array", @@ -487,7 +471,7 @@ { "_fromType": "array", "name": "x-stainless-package-version", - "value": "4.28.4" + "value": "4.38.3" }, { "_fromType": "array", @@ -519,35 +503,35 @@ "value": "api.openai.com" } ], - "headersSize": 465, + "headersSize": 471, "httpVersion": "HTTP/1.1", "method": "POST", "postData": { "mimeType": "application/json", "params": [], - "text": "{\n \"model\": \"text-embedding-ada-002\",\n \"input\": [\n \"Albert Einstein: A Genius Unveiled\\n\\nAlbert Einstein, renowned as the father of modern physics, remains an emblematic figure in the annals of science. Born in Ulm, Germany, in 1879, his intellectual prowess was evident from an early age. However, it was his groundbreaking theory of relativity, encapsulated in the equation E=mc^2, that revolutionized our understanding of space, time, and energy.\",\n \"/*\\n * Copyright Traceloop\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License. * You may obtain a copy of the License at\\n *\\n * https://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and\\n * limitations under the License.\",\n \"* See the License for the specific language governing permissions and\\n * limitations under the License. */\\n\\nimport { context } from \\\"@opentelemetry/api\\\";\\nimport { AsyncHooksContextManager } from \\\"@opentelemetry/context-async-hooks\\\";\\nimport { LlamaIndexInstrumentation } from \\\"../src/instrumentation\\\";\\nimport * as assert from \\\"assert\\\";\\nimport {\\n BasicTracerProvider,\\n InMemorySpanExporter,\\n SimpleSpanProcessor,\\n} from \\\"@opentelemetry/sdk-trace-base\\\";\\nimport type * as llamaindexImport from \\\"llamaindex\\\";\\n\\nimport { Polly, setupMocha as setupPolly } from \\\"@pollyjs/core\\\";\\nimport NodeHttpAdapter from \\\"@pollyjs/adapter-node-http\\\";\\nimport FSPersister from \\\"@pollyjs/persister-fs\\\";\\n\\nconst memoryExporter = new InMemorySpanExporter();\\n\\nPolly.register(NodeHttpAdapter);\\nPolly.register(FSPersister);\\n\\ndescribe(\\\"Test LlamaIndex instrumentation\\\", async function () {\\n const provider = new BasicTracerProvider();\\n let instrumentation: LlamaIndexInstrumentation;\\n let contextManager: AsyncHooksContextManager;\\n let llamaindex: typeof llamaindexImport;\\n\\n setupPolly({\\n adapters: [\\\"node-http\\\"],\\n persister: \\\"fs\\\",\\n recordIfMissing: process.env.RECORD_MODE === \\\"NEW\\\",\\n matchRequestsBy: {\\n headers: false,\\n },\\n });\\n\\n before(() => {\\n if (process.env.RECORD_MODE !== \\\"NEW\\\") {\\n process.env.OPENAI_API_KEY = \\\"test\\\";\\n }\\n\\n provider.addSpanProcessor(new SimpleSpanProcessor(memoryExporter));\\n instrumentation = new LlamaIndexInstrumentation();\\n instrumentation.setTracerProvider(provider);\\n llamaindex = require(\\\"llamaindex\\\");\\n });\\n\\n beforeEach(function () {\\n contextManager = new AsyncHooksContextManager().enable();\\n context.setGlobalContextManager(contextManager);\\n\\n const { server } = this.polly as Polly;\\n server.any().on(\\\"beforePersist\\\", (_req, recording) => {\\n recording.request.headers = recording.request.headers.filter(\\n ({ name }: { name: string }) => name !== \\\"authorization\\\",\\n );\\n });\\n });\\n\\n afterEach(() => {\\n memoryExporter.reset();\\n context.disable();\\n });\\n\\n it(\\\"should set attributes in span for LLM instrumentation\\\", async () => {\\n const model = \\\"gpt-3.5-turbo\\\";\\n const prompt = \\\"Tell me a joke about OpenTelemetry\\\";\\n const openai = new llamaindex.OpenAI({ model, temperature: 0 });\\n const res = await openai.chat({\\n messages: [{ role: \\\"user\\\", content: prompt }],\\n });\\n\\n assert.ok(res);\\n assert.ok(res.message);\\n\\n const spans = memoryExporter.getFinishedSpans();\\n\\n assert.strictEqual(spans.length, 1);\\n const chatAttributes = spans[0].attributes;\\n\\n assert.strictEqual(chatAttributes[\\\"llm.vendor\\\"], \\\"OpenAI\\\");\\n assert.strictEqual(chatAttributes[\\\"llm.request.type\\\"], \\\"chat\\\");\\n assert.strictEqual(chatAttributes[\\\"llm.request.model\\\"], model);\\n assert.strictEqual(chatAttributes[\\\"llm.top_p\\\"], 1);\\n assert.strictEqual(chatAttributes[\\\"llm.prompts.0.content\\\"], prompt);\\n assert.strictEqual(chatAttributes[\\\"llm.prompts.0.role\\\"], \\\"user\\\");\\n assert.strictEqual(chatAttributes[\\\"llm.completions.0.role\\\"], \\\"assistant\\\");\\n assert.strictEqual(\\n chatAttributes[\\\"llm.completions.0.content\\\"],\\n res.message.content,\\n );\\n });\\n\\n it(\\\"should set attributes in span for LLM instrumentation in case of streaming response\\\", async () => {\\n const model = \\\"gpt-3.5-turbo\\\";\\n const prompt = \\\"Tell me a joke about OpenTelemetry\\\";\\n const openai = new llamaindex.OpenAI({ model, temperature: 0 });\\n const res = await openai.chat({\\n messages: [{ role: \\\"user\\\", content: prompt }],\\n stream: true,\\n });\\n\\n assert.ok(res);\\n let message = \\\"\\\";\\n for await (const messageChunk of res) {\\n if (messageChunk.delta) {\\n message += messageChunk.delta;\\n }\\n }\\n assert.ok(message);\\n\\n const spans = memoryExporter.getFinishedSpans();\\n\\n assert.strictEqual(spans.length, 1);\\n const chatAttributes = spans[0].attributes;\\n\\n assert.strictEqual(chatAttributes[\\\"llm.vendor\\\"], \\\"OpenAI\\\");\\n assert.strictEqual(chatAttributes[\\\"llm.request.type\\\"], \\\"chat\\\");\\n assert.strictEqual(chatAttributes[\\\"llm.request.model\\\"], model);\\n assert.strictEqual(chatAttributes[\\\"llm.top_p\\\"], 1);\\n assert.strictEqual(chatAttributes[\\\"llm.prompts.0.content\\\"], prompt);\\n assert.strictEqual(chatAttributes[\\\"llm.prompts.0.role\\\"], \\\"user\\\");\\n assert.strictEqual(chatAttributes[\\\"llm.completions.0.content\\\"], message);\\n });\\n\\n it(\\\"should add span for all instrumented methods\\\", async () => {\\n const directoryReader = new llamaindex.SimpleDirectoryReader();\\n const documents = await directoryReader.loadData({ directoryPath: \\\"test\\\" });\\n const embedModel = new llamaindex.OpenAIEmbedding();\\n const vectorStore = new llamaindex.SimpleVectorStore();\\n\\n const serviceContext = llamaindex.serviceContextFromDefaults({\\n embedModel,\\n });\\n const storageContext = await llamaindex.storageContextFromDefaults({\\n vectorStore,\\n });\\n\\n const index = await llamaindex.VectorStoreIndex.fromDocuments(documents, {\\n storageContext,\\n serviceContext,\\n });\\n\\n const queryEngine = index.asQueryEngine();\\n\\n const result = await queryEngine.query({\\n query: \\\"Where was albert einstein born?\\\",\\n });\\n\\n assert.ok(result.response);\\n\\n const spans = memoryExporter.getFinishedSpans();\\n\\n const spanNames = spans.map((span) => span.name);\\n\\n // TODO: Need to figure out why this doesn't get logged\\n // assert.ok(spanNames.includes(\\\"get_query_embedding.task\\\"));\\n\\n const retrieverQueryEngineSpan = spans.find(\\n (span) => span.name === \\\"retriever_query_engine.query\\\",\\n );\\n\\n assert.ok(spanNames.includes(\\\"retriever_query_engine.retrieve\\\"));\\n assert.ok(spanNames.includes(\\\"llamaindex.open_ai.chat\\\"));\\n assert.ok(spanNames.includes(\\\"response_synthesizer.synthesize\\\"));\\n assert.ok(spanNames.includes(\\\"vector_index_retriever.retrieve\\\"));\\n\\n assert.ok(retrieverQueryEngineSpan);\\n assert.ok(retrieverQueryEngineSpan.attributes[\\\"traceloop.entity.input\\\"]);\\n assert.ok(retrieverQueryEngineSpan.attributes[\\\"traceloop.entity.output\\\"]);\\n assert.strictEqual(\\n JSON.parse(\\n retrieverQueryEngineSpan.attributes[\\n \\\"traceloop.entity.input\\\"\\n ].toString(),\\n ).kwargs.query,\\n \\\"Where was albert einstein born?\\\",\\n );\\n assert.strictEqual(\\n JSON.parse(\\n retrieverQueryEngineSpan.attributes[\\n \\\"traceloop.entity.output\\\"\\n ].toString(),\\n ).response,\\n result.response,\\n );\\n }).timeout(60000);\\n\\n it(\\\"should build proper trace on streaming query engine\\\", async () => {\\n const directoryReader = new llamaindex.SimpleDirectoryReader();\\n const documents = await directoryReader.loadData({ directoryPath: \\\"test\\\" });\\n const embedModel = new llamaindex.OpenAIEmbedding();\\n const vectorStore = new llamaindex.SimpleVectorStore();\\n\\n const serviceContext = llamaindex.serviceContextFromDefaults({\\n embedModel,\\n });\\n const storageContext = await llamaindex.storageContextFromDefaults({\\n vectorStore,\\n });\\n\\n const index = await llamaindex.VectorStoreIndex.fromDocuments(documents, {\\n storageContext,\\n serviceContext,\\n });\\n\\n const queryEngine = index.asQueryEngine();\\n\\n const result = await queryEngine.query({\\n query: \\\"Where was albert einstein born?\\\",\\n stream: true,\\n });\\n\\n for await (const res of result) {\\n assert.ok(res);\\n }\\n\\n const spans = memoryExporter.getFinishedSpans();\\n\\n // TODO: Need to figure out why this doesn't get logged\\n // assert.ok(spanNames.includes(\\\"get_query_embedding.task\\\"));\\n\\n const retrieverQueryEngineSpan = spans.find(\\n (span) => span.name === \\\"retriever_query_engine.query\\\",\\n );\\n const synthesizeSpan = spans.find(\\n (span) => span.name === \\\"response_synthesizer.synthesize\\\",\\n );\\n const openAIChatSpan = spans.find(\\n (span) => span.name === \\\"llamaindex.open_ai.chat\\\",\\n );\\n\\n assert.strictEqual(\\n synthesizeSpan?.parentSpanId,\\n retrieverQueryEngineSpan?.spanContext().spanId,\\n );\\n assert.strictEqual(\\n openAIChatSpan?.parentSpanId,\\n synthesizeSpan?.spanContext().spanId,\\n );\\n }).timeout(60000);\\n});\"\n ]\n}" + "text": "{\n \"model\": \"gpt-3.5-turbo\",\n \"temperature\": 0.1,\n \"messages\": [\n {\n \"role\": \"user\",\n \"content\": \"Context information is below.\\n---------------------\\nAlbert Einstein: A Genius Unveiled\\n\\nAlbert Einstein, renowned as the father of modern physics, remains an emblematic figure in the annals of science. Born in Ulm, Germany, in 1879, his intellectual prowess was evident from an early age. However, it was his groundbreaking theory of relativity, encapsulated in the equation E=mc^2, that revolutionized our understanding of space, time, and energy. /*\\n * Copyright Traceloop\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License. * You may obtain a copy of the License at\\n *\\n * https://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and\\n * limitations under the License.\\n---------------------\\nGiven the context information and not prior knowledge, answer the query.\\nQuery: Where was albert einstein born?\\nAnswer:\"\n }\n ],\n \"top_p\": 1,\n \"stream\": false\n}" }, "queryString": [], - "url": "https://api.openai.com/v1/embeddings" + "url": "https://api.openai.com/v1/chat/completions" }, "response": { - "bodySize": 30000, + "bodySize": 452, "content": { "encoding": "base64", "mimeType": "application/json", - "size": 30000, - "text": "[\"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\",\"AwDTh+ar1IYBAA==\"]" + "size": 452, + "text": "[\"H4sIAAAAAAAAA1SQzU7DMBCE73mKlc9JRRoS2tw4oCJUIS4cAKHISbapqf+wtypR1XdHTtIWLj7M7Lc742MEwETLSmDNllOjrEyWT+vu+/CiCnlYZe/y2eLbo1r3hdRZv2NxIEz9hQ2dqVljlJVIwujRbhxywrA1vUtvs+WiyIrBUKZFGbDOUpLN8oT2rjbJTTrPJ3JrRIOelfARAQAchzdk1C3+sBJu4rOi0HveISsvQwDMGRkUxr0XnrgmFl/NxmhCPcS+lzU6ggehPaHQcOAeauM0CA2vUsWwQqe47mdswk+Xu9J01pk6ZNR7KS/6Rmjht5VD7o0ONzwZO+KnCOBz6Lf/F5lZZ5SliswOdVg4zxfjPnb90qubTuUZGeLyD1Usoikh870nVNVG6A6ddWKsu7FVVi/zouVZUbPoFP0CAAD//wMAYdFlh/gBAAA=\"]" }, "cookies": [ { "domain": ".api.openai.com", - "expires": "2024-03-11T19:13:25.000Z", + "expires": "2024-04-29T14:20:36.000Z", "httpOnly": true, "name": "__cf_bm", "path": "/", "sameSite": "None", "secure": true, - "value": "9KG4xlo3kkMKATXZ8EfW46xsMShY4dfWJQIo0UUCMoQ-1710182605-1.0.1.1-r7grSntYf3lmqr71mnVpDFmOkDUDrzdDVgo7vHxjD2PbVhjshTQdVcirWIlzIV98NrDzo8Dm7C6e3KMmLvOwUg" + "value": "qCDGE_ds7U3RsTsPtfd_w8W0cWkSZU0zx2TamsFSshM-1714398636-1.0.1.1-36J1AF7uAyN.Z_ovM47knuoHKSmHGQq0N_i9IbbBPfjC66x4oossB7dOcuBWtBzR4FyJNScFiMwtI9wF2_if_A" }, { "domain": ".api.openai.com", @@ -556,13 +540,13 @@ "path": "/", "sameSite": "None", "secure": true, - "value": "..jKw4AP3Q1UbHivy3er0qdujFB.ju_z4Z1xWnB5KRM-1710182605513-0.0.1.1-604800000" + "value": "jT8B8_ntEAkc5czM5T8n7WSeIRRp4UcN_ny8jOwaoz0-1714398636997-0.0.1.1-604800000" } ], "headers": [ { "name": "date", - "value": "Mon, 11 Mar 2024 18:43:25 GMT" + "value": "Mon, 29 Apr 2024 13:50:36 GMT" }, { "name": "content-type", @@ -580,9 +564,13 @@ "name": "access-control-allow-origin", "value": "*" }, + { + "name": "cache-control", + "value": "no-cache, must-revalidate" + }, { "name": "openai-model", - "value": "text-embedding-ada-002" + "value": "gpt-3.5-turbo-0125" }, { "name": "openai-organization", @@ -590,7 +578,7 @@ }, { "name": "openai-processing-ms", - "value": "83" + "value": "539" }, { "name": "openai-version", @@ -604,17 +592,29 @@ "name": "x-ratelimit-limit-requests", "value": "5000" }, + { + "name": "x-ratelimit-limit-tokens", + "value": "160000" + }, { "name": "x-ratelimit-remaining-requests", "value": "4999" }, + { + "name": "x-ratelimit-remaining-tokens", + "value": "159689" + }, { "name": "x-ratelimit-reset-requests", "value": "12ms" }, + { + "name": "x-ratelimit-reset-tokens", + "value": "116ms" + }, { "name": "x-request-id", - "value": "req_701f418a7bfa3a4dd62e5aa638b45888" + "value": "req_95c1e7a99f60f12000e1622bd6fb13b3" }, { "name": "cf-cache-status", @@ -623,12 +623,12 @@ { "_fromType": "array", "name": "set-cookie", - "value": "__cf_bm=9KG4xlo3kkMKATXZ8EfW46xsMShY4dfWJQIo0UUCMoQ-1710182605-1.0.1.1-r7grSntYf3lmqr71mnVpDFmOkDUDrzdDVgo7vHxjD2PbVhjshTQdVcirWIlzIV98NrDzo8Dm7C6e3KMmLvOwUg; path=/; expires=Mon, 11-Mar-24 19:13:25 GMT; domain=.api.openai.com; HttpOnly; Secure; SameSite=None" + "value": "__cf_bm=qCDGE_ds7U3RsTsPtfd_w8W0cWkSZU0zx2TamsFSshM-1714398636-1.0.1.1-36J1AF7uAyN.Z_ovM47knuoHKSmHGQq0N_i9IbbBPfjC66x4oossB7dOcuBWtBzR4FyJNScFiMwtI9wF2_if_A; path=/; expires=Mon, 29-Apr-24 14:20:36 GMT; domain=.api.openai.com; HttpOnly; Secure; SameSite=None" }, { "_fromType": "array", "name": "set-cookie", - "value": "_cfuvid=..jKw4AP3Q1UbHivy3er0qdujFB.ju_z4Z1xWnB5KRM-1710182605513-0.0.1.1-604800000; path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None" + "value": "_cfuvid=jT8B8_ntEAkc5czM5T8n7WSeIRRp4UcN_ny8jOwaoz0-1714398636997-0.0.1.1-604800000; path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None" }, { "name": "server", @@ -636,7 +636,7 @@ }, { "name": "cf-ray", - "value": "862db0a2aabf0e13-MXP" + "value": "87bfc3141e334bf7-MXP" }, { "name": "content-encoding", @@ -647,14 +647,14 @@ "value": "h3=\":443\"; ma=86400" } ], - "headersSize": 1066, + "headersSize": 1210, "httpVersion": "HTTP/1.1", "redirectURL": "", "status": 200, "statusText": "OK" }, - "startedDateTime": "2024-03-11T18:43:25.116Z", - "time": 762, + "startedDateTime": "2024-04-29T13:50:36.108Z", + "time": 844, "timings": { "blocked": -1, "connect": -1, @@ -662,7 +662,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 762 + "wait": 844 } } ], diff --git a/packages/instrumentation-llamaindex/recordings/Test-LlamaIndex-instrumentation_1988279490/should-build-proper-trace-on-streaming-query-engine_2069720152/recording.har b/packages/instrumentation-llamaindex/recordings/Test-LlamaIndex-instrumentation_1988279490/should-build-proper-trace-on-streaming-query-engine_2069720152/recording.har index ab5d2742..ab17293f 100644 --- a/packages/instrumentation-llamaindex/recordings/Test-LlamaIndex-instrumentation_1988279490/should-build-proper-trace-on-streaming-query-engine_2069720152/recording.har +++ b/packages/instrumentation-llamaindex/recordings/Test-LlamaIndex-instrumentation_1988279490/should-build-proper-trace-on-streaming-query-engine_2069720152/recording.har @@ -8,17 +8,17 @@ }, "entries": [ { - "_id": "35e4e3d1b757b5697226d1cf6efde888", + "_id": "f551fbadc626e695523e8afb90f57137", "_order": 0, "cache": {}, "request": { - "bodySize": 95, + "bodySize": 9656, "cookies": [], "headers": [ { "_fromType": "array", "name": "content-length", - "value": "95" + "value": "9656" }, { "_fromType": "array", @@ -33,7 +33,7 @@ { "_fromType": "array", "name": "user-agent", - "value": "OpenAI/JS 4.28.4" + "value": "OpenAI/JS 4.38.3" }, { "_fromType": "array", @@ -43,7 +43,7 @@ { "_fromType": "array", "name": "x-stainless-package-version", - "value": "4.28.4" + "value": "4.38.3" }, { "_fromType": "array", @@ -75,35 +75,35 @@ "value": "api.openai.com" } ], - "headersSize": 463, + "headersSize": 465, "httpVersion": "HTTP/1.1", "method": "POST", "postData": { "mimeType": "application/json", "params": [], - "text": "{\n \"model\": \"text-embedding-ada-002\",\n \"input\": [\n \"Where was albert einstein born?\"\n ]\n}" + "text": "{\n \"model\": \"text-embedding-ada-002\",\n \"input\": [\n \"Albert Einstein: A Genius Unveiled\\n\\nAlbert Einstein, renowned as the father of modern physics, remains an emblematic figure in the annals of science. Born in Ulm, Germany, in 1879, his intellectual prowess was evident from an early age. However, it was his groundbreaking theory of relativity, encapsulated in the equation E=mc^2, that revolutionized our understanding of space, time, and energy.\",\n \"/*\\n * Copyright Traceloop\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License. * You may obtain a copy of the License at\\n *\\n * https://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and\\n * limitations under the License.\",\n \"* See the License for the specific language governing permissions and\\n * limitations under the License. */\\n\\nimport { context } from \\\"@opentelemetry/api\\\";\\nimport { AsyncHooksContextManager } from \\\"@opentelemetry/context-async-hooks\\\";\\nimport { LlamaIndexInstrumentation } from \\\"../src/instrumentation\\\";\\nimport * as assert from \\\"assert\\\";\\nimport {\\n BasicTracerProvider,\\n InMemorySpanExporter,\\n SimpleSpanProcessor,\\n} from \\\"@opentelemetry/sdk-trace-base\\\";\\nimport type * as llamaindexImport from \\\"llamaindex\\\";\\n\\nimport { Polly, setupMocha as setupPolly } from \\\"@pollyjs/core\\\";\\nimport NodeHttpAdapter from \\\"@pollyjs/adapter-node-http\\\";\\nimport FSPersister from \\\"@pollyjs/persister-fs\\\";\\n\\nconst memoryExporter = new InMemorySpanExporter();\\n\\nPolly.register(NodeHttpAdapter);\\nPolly.register(FSPersister);\\n\\ndescribe(\\\"Test LlamaIndex instrumentation\\\", async function () {\\n const provider = new BasicTracerProvider();\\n let instrumentation: LlamaIndexInstrumentation;\\n let contextManager: AsyncHooksContextManager;\\n let llamaindex: typeof llamaindexImport;\\n\\n setupPolly({\\n adapters: [\\\"node-http\\\"],\\n persister: \\\"fs\\\",\\n recordIfMissing: process.env.RECORD_MODE === \\\"NEW\\\",\\n matchRequestsBy: {\\n headers: false,\\n },\\n });\\n\\n before(() => {\\n if (process.env.RECORD_MODE !== \\\"NEW\\\") {\\n process.env.OPENAI_API_KEY = \\\"test\\\";\\n }\\n\\n provider.addSpanProcessor(new SimpleSpanProcessor(memoryExporter));\\n instrumentation = new LlamaIndexInstrumentation();\\n instrumentation.setTracerProvider(provider);\\n llamaindex = require(\\\"llamaindex\\\");\\n });\\n\\n beforeEach(function () {\\n contextManager = new AsyncHooksContextManager().enable();\\n context.setGlobalContextManager(contextManager);\\n\\n const { server } = this.polly as Polly;\\n server.any().on(\\\"beforePersist\\\", (_req, recording) => {\\n recording.request.headers = recording.request.headers.filter(\\n ({ name }: { name: string }) => name !== \\\"authorization\\\",\\n );\\n });\\n });\\n\\n afterEach(() => {\\n memoryExporter.reset();\\n context.disable();\\n });\\n\\n it(\\\"should set attributes in span for LLM instrumentation\\\", async () => {\\n const model = \\\"gpt-3.5-turbo\\\";\\n const prompt = \\\"Tell me a joke about OpenTelemetry\\\";\\n const openai = new llamaindex.OpenAI({ model, temperature: 0 });\\n const res = await openai.chat({\\n messages: [{ role: \\\"user\\\", content: prompt }],\\n });\\n\\n assert.ok(res);\\n assert.ok(res.message);\\n\\n const spans = memoryExporter.getFinishedSpans();\\n\\n assert.strictEqual(spans.length, 1);\\n const chatAttributes = spans[0].attributes;\\n\\n assert.strictEqual(chatAttributes[\\\"gen_ai.system\\\"], \\\"OpenAI\\\");\\n assert.strictEqual(chatAttributes[\\\"llm.request.type\\\"], \\\"chat\\\");\\n assert.strictEqual(chatAttributes[\\\"gen_ai.request.model\\\"], model);\\n assert.strictEqual(chatAttributes[\\\"gen_ai.request.top_p\\\"], 1);\\n assert.strictEqual(chatAttributes[\\\"gen_ai.prompt.0.content\\\"], prompt);\\n assert.strictEqual(chatAttributes[\\\"gen_ai.prompt.0.role\\\"], \\\"user\\\");\\n assert.strictEqual(chatAttributes[\\\"gen_ai.completion.0.role\\\"], \\\"assistant\\\");\\n assert.strictEqual(\\n chatAttributes[\\\"gen_ai.completion.0.content\\\"],\\n res.message.content,\\n );\\n });\\n\\n it(\\\"should set attributes in span for LLM instrumentation in case of streaming response\\\", async () => {\\n const model = \\\"gpt-3.5-turbo\\\";\\n const prompt = \\\"Tell me a joke about OpenTelemetry\\\";\\n const openai = new llamaindex.OpenAI({ model, temperature: 0 });\\n const res = await openai.chat({\\n messages: [{ role: \\\"user\\\", content: prompt }],\\n stream: true,\\n });\\n\\n assert.ok(res);\\n let message = \\\"\\\";\\n for await (const messageChunk of res) {\\n if (messageChunk.delta) {\\n message += messageChunk.delta;\\n }\\n }\\n assert.ok(message);\\n\\n const spans = memoryExporter.getFinishedSpans();\\n\\n assert.strictEqual(spans.length, 1);\\n const chatAttributes = spans[0].attributes;\\n\\n assert.strictEqual(chatAttributes[\\\"gen_ai.system\\\"], \\\"OpenAI\\\");\\n assert.strictEqual(chatAttributes[\\\"llm.request.type\\\"], \\\"chat\\\");\\n assert.strictEqual(chatAttributes[\\\"gen_ai.request.model\\\"], model);\\n assert.strictEqual(chatAttributes[\\\"gen_ai.request.top_p\\\"], 1);\\n assert.strictEqual(chatAttributes[\\\"gen_ai.prompt.0.content\\\"], prompt);\\n assert.strictEqual(chatAttributes[\\\"gen_ai.prompt.0.role\\\"], \\\"user\\\");\\n assert.strictEqual(chatAttributes[\\\"gen_ai.completion.0.content\\\"], message);\\n });\\n\\n it(\\\"should add span for all instrumented methods\\\", async () => {\\n const directoryReader = new llamaindex.SimpleDirectoryReader();\\n const documents = await directoryReader.loadData({ directoryPath: \\\"test\\\" });\\n const embedModel = new llamaindex.OpenAIEmbedding();\\n const vectorStore = new llamaindex.SimpleVectorStore();\\n\\n const serviceContext = llamaindex.serviceContextFromDefaults({\\n embedModel,\\n });\\n const storageContext = await llamaindex.storageContextFromDefaults({\\n vectorStore,\\n });\\n\\n const index = await llamaindex.VectorStoreIndex.fromDocuments(documents, {\\n storageContext,\\n serviceContext,\\n });\\n\\n const queryEngine = index.asQueryEngine();\\n\\n const result = await queryEngine.query({\\n query: \\\"Where was albert einstein born?\\\",\\n });\\n\\n assert.ok(result.response);\\n\\n const spans = memoryExporter.getFinishedSpans();\\n\\n const spanNames = spans.map((span) => span.name);\\n\\n // TODO: Need to figure out why this doesn't get logged\\n // assert.ok(spanNames.includes(\\\"get_query_embedding.task\\\"));\\n\\n const retrieverQueryEngineSpan = spans.find(\\n (span) => span.name === \\\"retriever_query_engine.query\\\",\\n );\\n\\n assert.ok(spanNames.includes(\\\"retriever_query_engine.retrieve\\\"));\\n assert.ok(spanNames.includes(\\\"llamaindex.open_ai.chat\\\"));\\n assert.ok(spanNames.includes(\\\"response_synthesizer.synthesize\\\"));\\n assert.ok(spanNames.includes(\\\"vector_index_retriever.retrieve\\\"));\\n\\n assert.ok(retrieverQueryEngineSpan);\\n assert.ok(retrieverQueryEngineSpan.attributes[\\\"traceloop.entity.input\\\"]);\\n assert.ok(retrieverQueryEngineSpan.attributes[\\\"traceloop.entity.output\\\"]);\\n assert.strictEqual(\\n JSON.parse(\\n retrieverQueryEngineSpan.attributes[\\n \\\"traceloop.entity.input\\\"\\n ].toString(),\\n ).kwargs.query,\\n \\\"Where was albert einstein born?\\\",\\n );\\n assert.strictEqual(\\n JSON.parse(\\n retrieverQueryEngineSpan.attributes[\\n \\\"traceloop.entity.output\\\"\\n ].toString(),\\n ).response,\\n result.response,\\n );\\n }).timeout(60000);\\n\\n it(\\\"should build proper trace on streaming query engine\\\", async () => {\\n const directoryReader = new llamaindex.SimpleDirectoryReader();\\n const documents = await directoryReader.loadData({ directoryPath: \\\"test\\\" });\\n const embedModel = new llamaindex.OpenAIEmbedding();\\n const vectorStore = new llamaindex.SimpleVectorStore();\\n\\n const serviceContext = llamaindex.serviceContextFromDefaults({\\n embedModel,\\n });\\n const storageContext = await llamaindex.storageContextFromDefaults({\\n vectorStore,\\n });\\n\\n const index = await llamaindex.VectorStoreIndex.fromDocuments(documents, {\\n storageContext,\\n serviceContext,\\n });\\n\\n const queryEngine = index.asQueryEngine();\\n\\n const result = await queryEngine.query({\\n query: \\\"Where was albert einstein born?\\\",\\n stream: true,\\n });\\n\\n for await (const res of result) {\\n assert.ok(res);\\n }\\n\\n const spans = memoryExporter.getFinishedSpans();\\n\\n // TODO: Need to figure out why this doesn't get logged\\n // assert.ok(spanNames.includes(\\\"get_query_embedding.task\\\"));\\n\\n const retrieverQueryEngineSpan = spans.find(\\n (span) => span.name === \\\"retriever_query_engine.query\\\",\\n );\\n const synthesizeSpan = spans.find(\\n (span) => span.name === \\\"response_synthesizer.synthesize\\\",\\n );\\n const openAIChatSpan = spans.find(\\n (span) => span.name === \\\"llamaindex.open_ai.chat\\\",\\n );\\n\\n assert.strictEqual(\\n synthesizeSpan?.parentSpanId,\\n retrieverQueryEngineSpan?.spanContext().spanId,\\n );\\n assert.strictEqual(\\n openAIChatSpan?.parentSpanId,\\n synthesizeSpan?.spanContext().spanId,\\n );\\n }).timeout(60000);\\n});\"\n ]\n}" }, "queryString": [], "url": "https://api.openai.com/v1/embeddings" }, "response": { - "bodySize": 10177, + "bodySize": 30101, "content": { "encoding": "base64", "mimeType": "application/json", - "size": 10177, - "text": "[\"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\"]" + "size": 30101, + "text": "[\"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\"]" }, "cookies": [ { "domain": ".api.openai.com", - "expires": "2024-03-11T19:12:48.000Z", + "expires": "2024-04-29T14:20:37.000Z", "httpOnly": true, "name": "__cf_bm", "path": "/", "sameSite": "None", "secure": true, - "value": "JIWX69SknEXbxMZBdxHtCE.j8hG4ZSaXslQGkSEk3.0-1710182568-1.0.1.1-B58qjuEiZ5KrFtJSKujd7q4pCh02kzUUDXGzTcjxz7IKoyeFwG.E0FdeHIpB_s5g70x_jHgfZTwKSWn9ivpTgQ" + "value": "1s.wBscHWXJt_sZXOHupxW0VE2S.kkYWpDu7oA2Y8XM-1714398637-1.0.1.1-bsqFpicMdr_wuuu608IbFIa.cPPY5jBHto9XTvQqjeky_5ydpVTcMb7AZQ9vZZcf7X0SYOlhLQF_Hah4DZUx5g" }, { "domain": ".api.openai.com", @@ -112,13 +112,13 @@ "path": "/", "sameSite": "None", "secure": true, - "value": "bw6EZHz.GKDyJR6xR9c4us8R4.sulSJwGV86DFXe7Fc-1710182568876-0.0.1.1-604800000" + "value": "kw9ZSRl_i8dREd1tUiUN3Y31lYrv6Qlvnye6o5gQyhQ-1714398637356-0.0.1.1-604800000" } ], "headers": [ { "name": "date", - "value": "Mon, 11 Mar 2024 18:42:48 GMT" + "value": "Mon, 29 Apr 2024 13:50:37 GMT" }, { "name": "content-type", @@ -146,7 +146,7 @@ }, { "name": "openai-processing-ms", - "value": "23" + "value": "67" }, { "name": "openai-version", @@ -170,7 +170,7 @@ }, { "name": "x-request-id", - "value": "req_d751da8430713f9b4602f4b993eeb55c" + "value": "req_44525822082ded1a3cc71cbcc212e772" }, { "name": "cf-cache-status", @@ -179,12 +179,12 @@ { "_fromType": "array", "name": "set-cookie", - "value": "__cf_bm=JIWX69SknEXbxMZBdxHtCE.j8hG4ZSaXslQGkSEk3.0-1710182568-1.0.1.1-B58qjuEiZ5KrFtJSKujd7q4pCh02kzUUDXGzTcjxz7IKoyeFwG.E0FdeHIpB_s5g70x_jHgfZTwKSWn9ivpTgQ; path=/; expires=Mon, 11-Mar-24 19:12:48 GMT; domain=.api.openai.com; HttpOnly; Secure; SameSite=None" + "value": "__cf_bm=1s.wBscHWXJt_sZXOHupxW0VE2S.kkYWpDu7oA2Y8XM-1714398637-1.0.1.1-bsqFpicMdr_wuuu608IbFIa.cPPY5jBHto9XTvQqjeky_5ydpVTcMb7AZQ9vZZcf7X0SYOlhLQF_Hah4DZUx5g; path=/; expires=Mon, 29-Apr-24 14:20:37 GMT; domain=.api.openai.com; HttpOnly; Secure; SameSite=None" }, { "_fromType": "array", "name": "set-cookie", - "value": "_cfuvid=bw6EZHz.GKDyJR6xR9c4us8R4.sulSJwGV86DFXe7Fc-1710182568876-0.0.1.1-604800000; path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None" + "value": "_cfuvid=kw9ZSRl_i8dREd1tUiUN3Y31lYrv6Qlvnye6o5gQyhQ-1714398637356-0.0.1.1-604800000; path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None" }, { "name": "server", @@ -192,7 +192,7 @@ }, { "name": "cf-ray", - "value": "862dafbe5af60e51-MXP" + "value": "87bfc319be3a4bf7-MXP" }, { "name": "content-encoding", @@ -209,8 +209,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2024-03-11T18:42:48.654Z", - "time": 341, + "startedDateTime": "2024-04-29T13:50:36.989Z", + "time": 638, "timings": { "blocked": -1, "connect": -1, @@ -218,21 +218,21 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 341 + "wait": 638 } }, { - "_id": "b4d91742ad75611d7acc306ee8971613", + "_id": "35e4e3d1b757b5697226d1cf6efde888", "_order": 0, "cache": {}, "request": { - "bodySize": 1356, + "bodySize": 95, "cookies": [], "headers": [ { "_fromType": "array", "name": "content-length", - "value": "1356" + "value": "95" }, { "_fromType": "array", @@ -247,7 +247,7 @@ { "_fromType": "array", "name": "user-agent", - "value": "OpenAI/JS 4.28.4" + "value": "OpenAI/JS 4.38.3" }, { "_fromType": "array", @@ -257,7 +257,7 @@ { "_fromType": "array", "name": "x-stainless-package-version", - "value": "4.28.4" + "value": "4.38.3" }, { "_fromType": "array", @@ -289,34 +289,35 @@ "value": "api.openai.com" } ], - "headersSize": 471, + "headersSize": 463, "httpVersion": "HTTP/1.1", "method": "POST", "postData": { "mimeType": "application/json", "params": [], - "text": "{\n \"model\": \"gpt-3.5-turbo\",\n \"temperature\": 0.1,\n \"messages\": [\n {\n \"role\": \"user\",\n \"content\": \"Context information is below.\\n---------------------\\nAlbert Einstein: A Genius Unveiled\\n\\nAlbert Einstein, renowned as the father of modern physics, remains an emblematic figure in the annals of science. Born in Ulm, Germany, in 1879, his intellectual prowess was evident from an early age. However, it was his groundbreaking theory of relativity, encapsulated in the equation E=mc^2, that revolutionized our understanding of space, time, and energy. /*\\n * Copyright Traceloop\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License. * You may obtain a copy of the License at\\n *\\n * https://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and\\n * limitations under the License.\\n---------------------\\nGiven the context information and not prior knowledge, answer the query.\\nQuery: Where was albert einstein born?\\nAnswer:\"\n }\n ],\n \"top_p\": 1,\n \"stream\": true\n}" + "text": "{\n \"model\": \"text-embedding-ada-002\",\n \"input\": [\n \"Where was albert einstein born?\"\n ]\n}" }, "queryString": [], - "url": "https://api.openai.com/v1/chat/completions" + "url": "https://api.openai.com/v1/embeddings" }, "response": { - "bodySize": 3172, + "bodySize": 10217, "content": { - "mimeType": "text/event-stream", - "size": 3172, - "text": "data: {\"id\":\"chatcmpl-91etllKY75GK1kG3l6g4E2Gnj9YyF\",\"object\":\"chat.completion.chunk\",\"created\":1710182569,\"model\":\"gpt-3.5-turbo-0125\",\"system_fingerprint\":\"fp_4f0b692a78\",\"choices\":[{\"index\":0,\"delta\":{\"role\":\"assistant\",\"content\":\"\"},\"logprobs\":null,\"finish_reason\":null}]}\n\ndata: {\"id\":\"chatcmpl-91etllKY75GK1kG3l6g4E2Gnj9YyF\",\"object\":\"chat.completion.chunk\",\"created\":1710182569,\"model\":\"gpt-3.5-turbo-0125\",\"system_fingerprint\":\"fp_4f0b692a78\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\"Albert\"},\"logprobs\":null,\"finish_reason\":null}]}\n\ndata: {\"id\":\"chatcmpl-91etllKY75GK1kG3l6g4E2Gnj9YyF\",\"object\":\"chat.completion.chunk\",\"created\":1710182569,\"model\":\"gpt-3.5-turbo-0125\",\"system_fingerprint\":\"fp_4f0b692a78\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" Einstein\"},\"logprobs\":null,\"finish_reason\":null}]}\n\ndata: {\"id\":\"chatcmpl-91etllKY75GK1kG3l6g4E2Gnj9YyF\",\"object\":\"chat.completion.chunk\",\"created\":1710182569,\"model\":\"gpt-3.5-turbo-0125\",\"system_fingerprint\":\"fp_4f0b692a78\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" was\"},\"logprobs\":null,\"finish_reason\":null}]}\n\ndata: {\"id\":\"chatcmpl-91etllKY75GK1kG3l6g4E2Gnj9YyF\",\"object\":\"chat.completion.chunk\",\"created\":1710182569,\"model\":\"gpt-3.5-turbo-0125\",\"system_fingerprint\":\"fp_4f0b692a78\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" born\"},\"logprobs\":null,\"finish_reason\":null}]}\n\ndata: {\"id\":\"chatcmpl-91etllKY75GK1kG3l6g4E2Gnj9YyF\",\"object\":\"chat.completion.chunk\",\"created\":1710182569,\"model\":\"gpt-3.5-turbo-0125\",\"system_fingerprint\":\"fp_4f0b692a78\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" in\"},\"logprobs\":null,\"finish_reason\":null}]}\n\ndata: {\"id\":\"chatcmpl-91etllKY75GK1kG3l6g4E2Gnj9YyF\",\"object\":\"chat.completion.chunk\",\"created\":1710182569,\"model\":\"gpt-3.5-turbo-0125\",\"system_fingerprint\":\"fp_4f0b692a78\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" Ul\"},\"logprobs\":null,\"finish_reason\":null}]}\n\ndata: {\"id\":\"chatcmpl-91etllKY75GK1kG3l6g4E2Gnj9YyF\",\"object\":\"chat.completion.chunk\",\"created\":1710182569,\"model\":\"gpt-3.5-turbo-0125\",\"system_fingerprint\":\"fp_4f0b692a78\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\"m\"},\"logprobs\":null,\"finish_reason\":null}]}\n\ndata: {\"id\":\"chatcmpl-91etllKY75GK1kG3l6g4E2Gnj9YyF\",\"object\":\"chat.completion.chunk\",\"created\":1710182569,\"model\":\"gpt-3.5-turbo-0125\",\"system_fingerprint\":\"fp_4f0b692a78\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\",\"},\"logprobs\":null,\"finish_reason\":null}]}\n\ndata: {\"id\":\"chatcmpl-91etllKY75GK1kG3l6g4E2Gnj9YyF\",\"object\":\"chat.completion.chunk\",\"created\":1710182569,\"model\":\"gpt-3.5-turbo-0125\",\"system_fingerprint\":\"fp_4f0b692a78\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" Germany\"},\"logprobs\":null,\"finish_reason\":null}]}\n\ndata: {\"id\":\"chatcmpl-91etllKY75GK1kG3l6g4E2Gnj9YyF\",\"object\":\"chat.completion.chunk\",\"created\":1710182569,\"model\":\"gpt-3.5-turbo-0125\",\"system_fingerprint\":\"fp_4f0b692a78\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\".\"},\"logprobs\":null,\"finish_reason\":null}]}\n\ndata: {\"id\":\"chatcmpl-91etllKY75GK1kG3l6g4E2Gnj9YyF\",\"object\":\"chat.completion.chunk\",\"created\":1710182569,\"model\":\"gpt-3.5-turbo-0125\",\"system_fingerprint\":\"fp_4f0b692a78\",\"choices\":[{\"index\":0,\"delta\":{},\"logprobs\":null,\"finish_reason\":\"stop\"}]}\n\ndata: [DONE]\n\n" + "encoding": "base64", + "mimeType": "application/json", + "size": 10217, + "text": "[\"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\"]" }, "cookies": [ { "domain": ".api.openai.com", - "expires": "2024-03-11T19:12:49.000Z", + "expires": "2024-04-29T14:20:37.000Z", "httpOnly": true, "name": "__cf_bm", "path": "/", "sameSite": "None", "secure": true, - "value": "UGdC5XMG77P0D7LwewkLoL7hp8MOsYplGbNY9OEtXCE-1710182569-1.0.1.1-CY66suwkzUMSDdqNKScd_xrNJNCaDosxM1INvXHK6bDJrGJpyzd3ze5QZTo9hSMDM.vOQHeVpPYKkuShgrA1dQ" + "value": "rWZfVLF42LlFcOBaRbD8isMxUU7IOCVr1SILEumTfFA-1714398637-1.0.1.1-aRGg8q9xvrgIGL9Tty2qvxbHELTwTZnTOLog6mdFKs.SJusVMJUKsMMC4h4dD1AU0qFSLY1UehDIaVrZZFR8VA" }, { "domain": ".api.openai.com", @@ -325,17 +326,17 @@ "path": "/", "sameSite": "None", "secure": true, - "value": "vmwnOdAkBt0WfHcGby0r7I26G9dDLZAU0ZYKZJlxHlc-1710182569563-0.0.1.1-604800000" + "value": "xqa5SyQlqUs5XDRzcVj2engcIsk5GCi8yj0CbVeA_yQ-1714398637973-0.0.1.1-604800000" } ], "headers": [ { "name": "date", - "value": "Mon, 11 Mar 2024 18:42:49 GMT" + "value": "Mon, 29 Apr 2024 13:50:37 GMT" }, { "name": "content-type", - "value": "text/event-stream" + "value": "application/json" }, { "name": "transfer-encoding", @@ -349,13 +350,9 @@ "name": "access-control-allow-origin", "value": "*" }, - { - "name": "cache-control", - "value": "no-cache, must-revalidate" - }, { "name": "openai-model", - "value": "gpt-3.5-turbo-0125" + "value": "text-embedding-ada-002" }, { "name": "openai-organization", @@ -363,7 +360,7 @@ }, { "name": "openai-processing-ms", - "value": "71" + "value": "22" }, { "name": "openai-version", @@ -377,29 +374,17 @@ "name": "x-ratelimit-limit-requests", "value": "5000" }, - { - "name": "x-ratelimit-limit-tokens", - "value": "160000" - }, { "name": "x-ratelimit-remaining-requests", "value": "4999" }, - { - "name": "x-ratelimit-remaining-tokens", - "value": "159689" - }, { "name": "x-ratelimit-reset-requests", "value": "12ms" }, - { - "name": "x-ratelimit-reset-tokens", - "value": "116ms" - }, { "name": "x-request-id", - "value": "req_9793520f485093871f830207964c2b1c" + "value": "req_32c202a995296498ee0f7311b239be36" }, { "name": "cf-cache-status", @@ -408,12 +393,12 @@ { "_fromType": "array", "name": "set-cookie", - "value": "__cf_bm=UGdC5XMG77P0D7LwewkLoL7hp8MOsYplGbNY9OEtXCE-1710182569-1.0.1.1-CY66suwkzUMSDdqNKScd_xrNJNCaDosxM1INvXHK6bDJrGJpyzd3ze5QZTo9hSMDM.vOQHeVpPYKkuShgrA1dQ; path=/; expires=Mon, 11-Mar-24 19:12:49 GMT; domain=.api.openai.com; HttpOnly; Secure; SameSite=None" + "value": "__cf_bm=rWZfVLF42LlFcOBaRbD8isMxUU7IOCVr1SILEumTfFA-1714398637-1.0.1.1-aRGg8q9xvrgIGL9Tty2qvxbHELTwTZnTOLog6mdFKs.SJusVMJUKsMMC4h4dD1AU0qFSLY1UehDIaVrZZFR8VA; path=/; expires=Mon, 29-Apr-24 14:20:37 GMT; domain=.api.openai.com; HttpOnly; Secure; SameSite=None" }, { "_fromType": "array", "name": "set-cookie", - "value": "_cfuvid=vmwnOdAkBt0WfHcGby0r7I26G9dDLZAU0ZYKZJlxHlc-1710182569563-0.0.1.1-604800000; path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None" + "value": "_cfuvid=xqa5SyQlqUs5XDRzcVj2engcIsk5GCi8yj0CbVeA_yQ-1714398637973-0.0.1.1-604800000; path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None" }, { "name": "server", @@ -421,21 +406,25 @@ }, { "name": "cf-ray", - "value": "862dafc08ed50e51-MXP" + "value": "87bfc31dbc6a4bf7-MXP" + }, + { + "name": "content-encoding", + "value": "gzip" }, { "name": "alt-svc", "value": "h3=\":443\"; ma=86400" } ], - "headersSize": 1186, + "headersSize": 1066, "httpVersion": "HTTP/1.1", "redirectURL": "", "status": 200, "statusText": "OK" }, - "startedDateTime": "2024-03-11T18:42:49.007Z", - "time": 658, + "startedDateTime": "2024-04-29T13:50:37.644Z", + "time": 426, "timings": { "blocked": -1, "connect": -1, @@ -443,21 +432,21 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 658 + "wait": 426 } }, { - "_id": "4d705d14a30eb714ad1b4db58213356a", + "_id": "b4d91742ad75611d7acc306ee8971613", "_order": 0, "cache": {}, "request": { - "bodySize": 9608, + "bodySize": 1356, "cookies": [], "headers": [ { "_fromType": "array", "name": "content-length", - "value": "9608" + "value": "1356" }, { "_fromType": "array", @@ -472,7 +461,7 @@ { "_fromType": "array", "name": "user-agent", - "value": "OpenAI/JS 4.28.4" + "value": "OpenAI/JS 4.38.3" }, { "_fromType": "array", @@ -482,7 +471,7 @@ { "_fromType": "array", "name": "x-stainless-package-version", - "value": "4.28.4" + "value": "4.38.3" }, { "_fromType": "array", @@ -514,35 +503,34 @@ "value": "api.openai.com" } ], - "headersSize": 465, + "headersSize": 471, "httpVersion": "HTTP/1.1", "method": "POST", "postData": { "mimeType": "application/json", "params": [], - "text": "{\n \"model\": \"text-embedding-ada-002\",\n \"input\": [\n \"Albert Einstein: A Genius Unveiled\\n\\nAlbert Einstein, renowned as the father of modern physics, remains an emblematic figure in the annals of science. Born in Ulm, Germany, in 1879, his intellectual prowess was evident from an early age. However, it was his groundbreaking theory of relativity, encapsulated in the equation E=mc^2, that revolutionized our understanding of space, time, and energy.\",\n \"/*\\n * Copyright Traceloop\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License. * You may obtain a copy of the License at\\n *\\n * https://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and\\n * limitations under the License.\",\n \"* See the License for the specific language governing permissions and\\n * limitations under the License. */\\n\\nimport { context } from \\\"@opentelemetry/api\\\";\\nimport { AsyncHooksContextManager } from \\\"@opentelemetry/context-async-hooks\\\";\\nimport { LlamaIndexInstrumentation } from \\\"../src/instrumentation\\\";\\nimport * as assert from \\\"assert\\\";\\nimport {\\n BasicTracerProvider,\\n InMemorySpanExporter,\\n SimpleSpanProcessor,\\n} from \\\"@opentelemetry/sdk-trace-base\\\";\\nimport type * as llamaindexImport from \\\"llamaindex\\\";\\n\\nimport { Polly, setupMocha as setupPolly } from \\\"@pollyjs/core\\\";\\nimport NodeHttpAdapter from \\\"@pollyjs/adapter-node-http\\\";\\nimport FSPersister from \\\"@pollyjs/persister-fs\\\";\\n\\nconst memoryExporter = new InMemorySpanExporter();\\n\\nPolly.register(NodeHttpAdapter);\\nPolly.register(FSPersister);\\n\\ndescribe(\\\"Test LlamaIndex instrumentation\\\", async function () {\\n const provider = new BasicTracerProvider();\\n let instrumentation: LlamaIndexInstrumentation;\\n let contextManager: AsyncHooksContextManager;\\n let llamaindex: typeof llamaindexImport;\\n\\n setupPolly({\\n adapters: [\\\"node-http\\\"],\\n persister: \\\"fs\\\",\\n recordIfMissing: process.env.RECORD_MODE === \\\"NEW\\\",\\n matchRequestsBy: {\\n headers: false,\\n },\\n });\\n\\n before(() => {\\n if (process.env.RECORD_MODE !== \\\"NEW\\\") {\\n process.env.OPENAI_API_KEY = \\\"test\\\";\\n }\\n\\n provider.addSpanProcessor(new SimpleSpanProcessor(memoryExporter));\\n instrumentation = new LlamaIndexInstrumentation();\\n instrumentation.setTracerProvider(provider);\\n llamaindex = require(\\\"llamaindex\\\");\\n });\\n\\n beforeEach(function () {\\n contextManager = new AsyncHooksContextManager().enable();\\n context.setGlobalContextManager(contextManager);\\n\\n const { server } = this.polly as Polly;\\n server.any().on(\\\"beforePersist\\\", (_req, recording) => {\\n recording.request.headers = recording.request.headers.filter(\\n ({ name }: { name: string }) => name !== \\\"authorization\\\",\\n );\\n });\\n });\\n\\n afterEach(() => {\\n memoryExporter.reset();\\n context.disable();\\n });\\n\\n it(\\\"should set attributes in span for LLM instrumentation\\\", async () => {\\n const model = \\\"gpt-3.5-turbo\\\";\\n const prompt = \\\"Tell me a joke about OpenTelemetry\\\";\\n const openai = new llamaindex.OpenAI({ model, temperature: 0 });\\n const res = await openai.chat({\\n messages: [{ role: \\\"user\\\", content: prompt }],\\n });\\n\\n assert.ok(res);\\n assert.ok(res.message);\\n\\n const spans = memoryExporter.getFinishedSpans();\\n\\n assert.strictEqual(spans.length, 1);\\n const chatAttributes = spans[0].attributes;\\n\\n assert.strictEqual(chatAttributes[\\\"llm.vendor\\\"], \\\"OpenAI\\\");\\n assert.strictEqual(chatAttributes[\\\"llm.request.type\\\"], \\\"chat\\\");\\n assert.strictEqual(chatAttributes[\\\"llm.request.model\\\"], model);\\n assert.strictEqual(chatAttributes[\\\"llm.top_p\\\"], 1);\\n assert.strictEqual(chatAttributes[\\\"llm.prompts.0.content\\\"], prompt);\\n assert.strictEqual(chatAttributes[\\\"llm.prompts.0.role\\\"], \\\"user\\\");\\n assert.strictEqual(chatAttributes[\\\"llm.completions.0.role\\\"], \\\"assistant\\\");\\n assert.strictEqual(\\n chatAttributes[\\\"llm.completions.0.content\\\"],\\n res.message.content,\\n );\\n });\\n\\n it(\\\"should set attributes in span for LLM instrumentation in case of streaming response\\\", async () => {\\n const model = \\\"gpt-3.5-turbo\\\";\\n const prompt = \\\"Tell me a joke about OpenTelemetry\\\";\\n const openai = new llamaindex.OpenAI({ model, temperature: 0 });\\n const res = await openai.chat({\\n messages: [{ role: \\\"user\\\", content: prompt }],\\n stream: true,\\n });\\n\\n assert.ok(res);\\n let message = \\\"\\\";\\n for await (const messageChunk of res) {\\n if (messageChunk.delta) {\\n message += messageChunk.delta;\\n }\\n }\\n assert.ok(message);\\n\\n const spans = memoryExporter.getFinishedSpans();\\n\\n assert.strictEqual(spans.length, 1);\\n const chatAttributes = spans[0].attributes;\\n\\n assert.strictEqual(chatAttributes[\\\"llm.vendor\\\"], \\\"OpenAI\\\");\\n assert.strictEqual(chatAttributes[\\\"llm.request.type\\\"], \\\"chat\\\");\\n assert.strictEqual(chatAttributes[\\\"llm.request.model\\\"], model);\\n assert.strictEqual(chatAttributes[\\\"llm.top_p\\\"], 1);\\n assert.strictEqual(chatAttributes[\\\"llm.prompts.0.content\\\"], prompt);\\n assert.strictEqual(chatAttributes[\\\"llm.prompts.0.role\\\"], \\\"user\\\");\\n assert.strictEqual(chatAttributes[\\\"llm.completions.0.content\\\"], message);\\n });\\n\\n it(\\\"should add span for all instrumented methods\\\", async () => {\\n const directoryReader = new llamaindex.SimpleDirectoryReader();\\n const documents = await directoryReader.loadData({ directoryPath: \\\"test\\\" });\\n const embedModel = new llamaindex.OpenAIEmbedding();\\n const vectorStore = new llamaindex.SimpleVectorStore();\\n\\n const serviceContext = llamaindex.serviceContextFromDefaults({\\n embedModel,\\n });\\n const storageContext = await llamaindex.storageContextFromDefaults({\\n vectorStore,\\n });\\n\\n const index = await llamaindex.VectorStoreIndex.fromDocuments(documents, {\\n storageContext,\\n serviceContext,\\n });\\n\\n const queryEngine = index.asQueryEngine();\\n\\n const result = await queryEngine.query({\\n query: \\\"Where was albert einstein born?\\\",\\n });\\n\\n assert.ok(result.response);\\n\\n const spans = memoryExporter.getFinishedSpans();\\n\\n const spanNames = spans.map((span) => span.name);\\n\\n // TODO: Need to figure out why this doesn't get logged\\n // assert.ok(spanNames.includes(\\\"get_query_embedding.task\\\"));\\n\\n const retrieverQueryEngineSpan = spans.find(\\n (span) => span.name === \\\"retriever_query_engine.query\\\",\\n );\\n\\n assert.ok(spanNames.includes(\\\"retriever_query_engine.retrieve\\\"));\\n assert.ok(spanNames.includes(\\\"llamaindex.open_ai.chat\\\"));\\n assert.ok(spanNames.includes(\\\"response_synthesizer.synthesize\\\"));\\n assert.ok(spanNames.includes(\\\"vector_index_retriever.retrieve\\\"));\\n\\n assert.ok(retrieverQueryEngineSpan);\\n assert.ok(retrieverQueryEngineSpan.attributes[\\\"traceloop.entity.input\\\"]);\\n assert.ok(retrieverQueryEngineSpan.attributes[\\\"traceloop.entity.output\\\"]);\\n assert.strictEqual(\\n JSON.parse(\\n retrieverQueryEngineSpan.attributes[\\n \\\"traceloop.entity.input\\\"\\n ].toString(),\\n ).kwargs.query,\\n \\\"Where was albert einstein born?\\\",\\n );\\n assert.strictEqual(\\n JSON.parse(\\n retrieverQueryEngineSpan.attributes[\\n \\\"traceloop.entity.output\\\"\\n ].toString(),\\n ).response,\\n result.response,\\n );\\n }).timeout(60000);\\n\\n it(\\\"should build proper trace on streaming query engine\\\", async () => {\\n const directoryReader = new llamaindex.SimpleDirectoryReader();\\n const documents = await directoryReader.loadData({ directoryPath: \\\"test\\\" });\\n const embedModel = new llamaindex.OpenAIEmbedding();\\n const vectorStore = new llamaindex.SimpleVectorStore();\\n\\n const serviceContext = llamaindex.serviceContextFromDefaults({\\n embedModel,\\n });\\n const storageContext = await llamaindex.storageContextFromDefaults({\\n vectorStore,\\n });\\n\\n const index = await llamaindex.VectorStoreIndex.fromDocuments(documents, {\\n storageContext,\\n serviceContext,\\n });\\n\\n const queryEngine = index.asQueryEngine();\\n\\n const result = await queryEngine.query({\\n query: \\\"Where was albert einstein born?\\\",\\n stream: true,\\n });\\n\\n for await (const res of result) {\\n assert.ok(res);\\n }\\n\\n const spans = memoryExporter.getFinishedSpans();\\n\\n // TODO: Need to figure out why this doesn't get logged\\n // assert.ok(spanNames.includes(\\\"get_query_embedding.task\\\"));\\n\\n const retrieverQueryEngineSpan = spans.find(\\n (span) => span.name === \\\"retriever_query_engine.query\\\",\\n );\\n const synthesizeSpan = spans.find(\\n (span) => span.name === \\\"response_synthesizer.synthesize\\\",\\n );\\n const openAIChatSpan = spans.find(\\n (span) => span.name === \\\"llamaindex.open_ai.chat\\\",\\n );\\n\\n assert.strictEqual(\\n synthesizeSpan?.parentSpanId,\\n retrieverQueryEngineSpan?.spanContext().spanId,\\n );\\n assert.strictEqual(\\n openAIChatSpan?.parentSpanId,\\n synthesizeSpan?.spanContext().spanId,\\n );\\n }).timeout(60000);\\n});\"\n ]\n}" + "text": "{\n \"model\": \"gpt-3.5-turbo\",\n \"temperature\": 0.1,\n \"messages\": [\n {\n \"role\": \"user\",\n \"content\": \"Context information is below.\\n---------------------\\nAlbert Einstein: A Genius Unveiled\\n\\nAlbert Einstein, renowned as the father of modern physics, remains an emblematic figure in the annals of science. Born in Ulm, Germany, in 1879, his intellectual prowess was evident from an early age. However, it was his groundbreaking theory of relativity, encapsulated in the equation E=mc^2, that revolutionized our understanding of space, time, and energy. /*\\n * Copyright Traceloop\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License. * You may obtain a copy of the License at\\n *\\n * https://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and\\n * limitations under the License.\\n---------------------\\nGiven the context information and not prior knowledge, answer the query.\\nQuery: Where was albert einstein born?\\nAnswer:\"\n }\n ],\n \"top_p\": 1,\n \"stream\": true\n}" }, "queryString": [], - "url": "https://api.openai.com/v1/embeddings" + "url": "https://api.openai.com/v1/chat/completions" }, "response": { - "bodySize": 29997, + "bodySize": 3172, "content": { - "encoding": "base64", - "mimeType": "application/json", - "size": 29997, - "text": "[\"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\",\"AwDTh+ar1IYBAA==\"]" + "mimeType": "text/event-stream", + "size": 3172, + "text": "data: {\"id\":\"chatcmpl-9JLgsizDpGJ4XSXeeQMxsWdU1VlGD\",\"object\":\"chat.completion.chunk\",\"created\":1714398638,\"model\":\"gpt-3.5-turbo-0125\",\"system_fingerprint\":\"fp_3b956da36b\",\"choices\":[{\"index\":0,\"delta\":{\"role\":\"assistant\",\"content\":\"\"},\"logprobs\":null,\"finish_reason\":null}]}\n\ndata: {\"id\":\"chatcmpl-9JLgsizDpGJ4XSXeeQMxsWdU1VlGD\",\"object\":\"chat.completion.chunk\",\"created\":1714398638,\"model\":\"gpt-3.5-turbo-0125\",\"system_fingerprint\":\"fp_3b956da36b\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\"Albert\"},\"logprobs\":null,\"finish_reason\":null}]}\n\ndata: {\"id\":\"chatcmpl-9JLgsizDpGJ4XSXeeQMxsWdU1VlGD\",\"object\":\"chat.completion.chunk\",\"created\":1714398638,\"model\":\"gpt-3.5-turbo-0125\",\"system_fingerprint\":\"fp_3b956da36b\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" Einstein\"},\"logprobs\":null,\"finish_reason\":null}]}\n\ndata: {\"id\":\"chatcmpl-9JLgsizDpGJ4XSXeeQMxsWdU1VlGD\",\"object\":\"chat.completion.chunk\",\"created\":1714398638,\"model\":\"gpt-3.5-turbo-0125\",\"system_fingerprint\":\"fp_3b956da36b\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" was\"},\"logprobs\":null,\"finish_reason\":null}]}\n\ndata: {\"id\":\"chatcmpl-9JLgsizDpGJ4XSXeeQMxsWdU1VlGD\",\"object\":\"chat.completion.chunk\",\"created\":1714398638,\"model\":\"gpt-3.5-turbo-0125\",\"system_fingerprint\":\"fp_3b956da36b\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" born\"},\"logprobs\":null,\"finish_reason\":null}]}\n\ndata: {\"id\":\"chatcmpl-9JLgsizDpGJ4XSXeeQMxsWdU1VlGD\",\"object\":\"chat.completion.chunk\",\"created\":1714398638,\"model\":\"gpt-3.5-turbo-0125\",\"system_fingerprint\":\"fp_3b956da36b\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" in\"},\"logprobs\":null,\"finish_reason\":null}]}\n\ndata: {\"id\":\"chatcmpl-9JLgsizDpGJ4XSXeeQMxsWdU1VlGD\",\"object\":\"chat.completion.chunk\",\"created\":1714398638,\"model\":\"gpt-3.5-turbo-0125\",\"system_fingerprint\":\"fp_3b956da36b\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" Ul\"},\"logprobs\":null,\"finish_reason\":null}]}\n\ndata: {\"id\":\"chatcmpl-9JLgsizDpGJ4XSXeeQMxsWdU1VlGD\",\"object\":\"chat.completion.chunk\",\"created\":1714398638,\"model\":\"gpt-3.5-turbo-0125\",\"system_fingerprint\":\"fp_3b956da36b\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\"m\"},\"logprobs\":null,\"finish_reason\":null}]}\n\ndata: {\"id\":\"chatcmpl-9JLgsizDpGJ4XSXeeQMxsWdU1VlGD\",\"object\":\"chat.completion.chunk\",\"created\":1714398638,\"model\":\"gpt-3.5-turbo-0125\",\"system_fingerprint\":\"fp_3b956da36b\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\",\"},\"logprobs\":null,\"finish_reason\":null}]}\n\ndata: {\"id\":\"chatcmpl-9JLgsizDpGJ4XSXeeQMxsWdU1VlGD\",\"object\":\"chat.completion.chunk\",\"created\":1714398638,\"model\":\"gpt-3.5-turbo-0125\",\"system_fingerprint\":\"fp_3b956da36b\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" Germany\"},\"logprobs\":null,\"finish_reason\":null}]}\n\ndata: {\"id\":\"chatcmpl-9JLgsizDpGJ4XSXeeQMxsWdU1VlGD\",\"object\":\"chat.completion.chunk\",\"created\":1714398638,\"model\":\"gpt-3.5-turbo-0125\",\"system_fingerprint\":\"fp_3b956da36b\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\".\"},\"logprobs\":null,\"finish_reason\":null}]}\n\ndata: {\"id\":\"chatcmpl-9JLgsizDpGJ4XSXeeQMxsWdU1VlGD\",\"object\":\"chat.completion.chunk\",\"created\":1714398638,\"model\":\"gpt-3.5-turbo-0125\",\"system_fingerprint\":\"fp_3b956da36b\",\"choices\":[{\"index\":0,\"delta\":{},\"logprobs\":null,\"finish_reason\":\"stop\"}]}\n\ndata: [DONE]\n\n" }, "cookies": [ { "domain": ".api.openai.com", - "expires": "2024-03-11T19:13:26.000Z", + "expires": "2024-04-29T14:20:38.000Z", "httpOnly": true, "name": "__cf_bm", "path": "/", "sameSite": "None", "secure": true, - "value": "aZ9gGSKzLRf6CetGtPPoArbq3ECceGzbCYmg6BefVAY-1710182606-1.0.1.1-6KdUAsmpCR_7lNFvNt5pDTbYcWOYfNNwZKgaxyriQpn8sRjSXteMLDRLJJ7JkMDz.2Ic7RHpcLCnM_WXFXsSgQ" + "value": "Zl69icuMXEggGGzKprzV_r0jQKu6X3yVKmSnoduFHVQ-1714398638-1.0.1.1-Ku3BsvvyIJzPaWS0qH1E_pADiDvJuy8QZ_ovZmz_FLoWkTm8B0hziQ8oDI6L.hQN_HCuGgqf0yzKLS965yrf5A" }, { "domain": ".api.openai.com", @@ -551,17 +539,17 @@ "path": "/", "sameSite": "None", "secure": true, - "value": "z_GvV3dlO7q1zFRkqjLDzHbtRU.S2YlgG51CKRIb5Sw-1710182606276-0.0.1.1-604800000" + "value": "bk6nTbCjTvap3A.jz_L8rjXVNe3pVIPR7hSQYJqv1sE-1714398638821-0.0.1.1-604800000" } ], "headers": [ { "name": "date", - "value": "Mon, 11 Mar 2024 18:43:26 GMT" + "value": "Mon, 29 Apr 2024 13:50:38 GMT" }, { "name": "content-type", - "value": "application/json" + "value": "text/event-stream" }, { "name": "transfer-encoding", @@ -575,9 +563,13 @@ "name": "access-control-allow-origin", "value": "*" }, + { + "name": "cache-control", + "value": "no-cache, must-revalidate" + }, { "name": "openai-model", - "value": "text-embedding-ada-002" + "value": "gpt-3.5-turbo-0125" }, { "name": "openai-organization", @@ -585,7 +577,7 @@ }, { "name": "openai-processing-ms", - "value": "68" + "value": "452" }, { "name": "openai-version", @@ -599,17 +591,29 @@ "name": "x-ratelimit-limit-requests", "value": "5000" }, + { + "name": "x-ratelimit-limit-tokens", + "value": "160000" + }, { "name": "x-ratelimit-remaining-requests", "value": "4999" }, + { + "name": "x-ratelimit-remaining-tokens", + "value": "159689" + }, { "name": "x-ratelimit-reset-requests", "value": "12ms" }, + { + "name": "x-ratelimit-reset-tokens", + "value": "116ms" + }, { "name": "x-request-id", - "value": "req_66f25d4b21d666794c552aad3bb73750" + "value": "req_7828d91fcb306c2002a50c7a434f8432" }, { "name": "cf-cache-status", @@ -618,12 +622,12 @@ { "_fromType": "array", "name": "set-cookie", - "value": "__cf_bm=aZ9gGSKzLRf6CetGtPPoArbq3ECceGzbCYmg6BefVAY-1710182606-1.0.1.1-6KdUAsmpCR_7lNFvNt5pDTbYcWOYfNNwZKgaxyriQpn8sRjSXteMLDRLJJ7JkMDz.2Ic7RHpcLCnM_WXFXsSgQ; path=/; expires=Mon, 11-Mar-24 19:13:26 GMT; domain=.api.openai.com; HttpOnly; Secure; SameSite=None" + "value": "__cf_bm=Zl69icuMXEggGGzKprzV_r0jQKu6X3yVKmSnoduFHVQ-1714398638-1.0.1.1-Ku3BsvvyIJzPaWS0qH1E_pADiDvJuy8QZ_ovZmz_FLoWkTm8B0hziQ8oDI6L.hQN_HCuGgqf0yzKLS965yrf5A; path=/; expires=Mon, 29-Apr-24 14:20:38 GMT; domain=.api.openai.com; HttpOnly; Secure; SameSite=None" }, { "_fromType": "array", "name": "set-cookie", - "value": "_cfuvid=z_GvV3dlO7q1zFRkqjLDzHbtRU.S2YlgG51CKRIb5Sw-1710182606276-0.0.1.1-604800000; path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None" + "value": "_cfuvid=bk6nTbCjTvap3A.jz_L8rjXVNe3pVIPR7hSQYJqv1sE-1714398638821-0.0.1.1-604800000; path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None" }, { "name": "server", @@ -631,25 +635,21 @@ }, { "name": "cf-ray", - "value": "862db0a75a8f0e13-MXP" - }, - { - "name": "content-encoding", - "value": "gzip" + "value": "87bfc32078824bf7-MXP" }, { "name": "alt-svc", "value": "h3=\":443\"; ma=86400" } ], - "headersSize": 1066, + "headersSize": 1187, "httpVersion": "HTTP/1.1", "redirectURL": "", "status": 200, "statusText": "OK" }, - "startedDateTime": "2024-03-11T18:43:25.937Z", - "time": 698, + "startedDateTime": "2024-04-29T13:50:38.085Z", + "time": 955, "timings": { "blocked": -1, "connect": -1, @@ -657,7 +657,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 698 + "wait": 955 } } ], diff --git a/packages/instrumentation-llamaindex/recordings/Test-LlamaIndex-instrumentation_1988279490/should-set-attributes-in-span-for-LLM-instrumentation-in-case-of-streaming-response_839546077/recording.har b/packages/instrumentation-llamaindex/recordings/Test-LlamaIndex-instrumentation_1988279490/should-set-attributes-in-span-for-LLM-instrumentation-in-case-of-streaming-response_839546077/recording.har index 2453a46c..3ed83c90 100644 --- a/packages/instrumentation-llamaindex/recordings/Test-LlamaIndex-instrumentation_1988279490/should-set-attributes-in-span-for-LLM-instrumentation-in-case-of-streaming-response_839546077/recording.har +++ b/packages/instrumentation-llamaindex/recordings/Test-LlamaIndex-instrumentation_1988279490/should-set-attributes-in-span-for-LLM-instrumentation-in-case-of-streaming-response_839546077/recording.har @@ -33,7 +33,7 @@ { "_fromType": "array", "name": "user-agent", - "value": "OpenAI/JS 4.28.4" + "value": "OpenAI/JS 4.38.3" }, { "_fromType": "array", @@ -43,7 +43,7 @@ { "_fromType": "array", "name": "x-stainless-package-version", - "value": "4.28.4" + "value": "4.38.3" }, { "_fromType": "array", @@ -87,22 +87,22 @@ "url": "https://api.openai.com/v1/chat/completions" }, "response": { - "bodySize": 5292, + "bodySize": 5560, "content": { "mimeType": "text/event-stream", - "size": 5292, - "text": "data: {\"id\":\"chatcmpl-8z1MrJFzcwtVvz2vNZ8ZN8PIjZzQF\",\"object\":\"chat.completion.chunk\",\"created\":1709553957,\"model\":\"gpt-3.5-turbo-0125\",\"system_fingerprint\":\"fp_2b778c6b35\",\"choices\":[{\"index\":0,\"delta\":{\"role\":\"assistant\",\"content\":\"\"},\"logprobs\":null,\"finish_reason\":null}]}\n\ndata: {\"id\":\"chatcmpl-8z1MrJFzcwtVvz2vNZ8ZN8PIjZzQF\",\"object\":\"chat.completion.chunk\",\"created\":1709553957,\"model\":\"gpt-3.5-turbo-0125\",\"system_fingerprint\":\"fp_2b778c6b35\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\"Why\"},\"logprobs\":null,\"finish_reason\":null}]}\n\ndata: {\"id\":\"chatcmpl-8z1MrJFzcwtVvz2vNZ8ZN8PIjZzQF\",\"object\":\"chat.completion.chunk\",\"created\":1709553957,\"model\":\"gpt-3.5-turbo-0125\",\"system_fingerprint\":\"fp_2b778c6b35\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" did\"},\"logprobs\":null,\"finish_reason\":null}]}\n\ndata: {\"id\":\"chatcmpl-8z1MrJFzcwtVvz2vNZ8ZN8PIjZzQF\",\"object\":\"chat.completion.chunk\",\"created\":1709553957,\"model\":\"gpt-3.5-turbo-0125\",\"system_fingerprint\":\"fp_2b778c6b35\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" the\"},\"logprobs\":null,\"finish_reason\":null}]}\n\ndata: {\"id\":\"chatcmpl-8z1MrJFzcwtVvz2vNZ8ZN8PIjZzQF\",\"object\":\"chat.completion.chunk\",\"created\":1709553957,\"model\":\"gpt-3.5-turbo-0125\",\"system_fingerprint\":\"fp_2b778c6b35\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" Open\"},\"logprobs\":null,\"finish_reason\":null}]}\n\ndata: {\"id\":\"chatcmpl-8z1MrJFzcwtVvz2vNZ8ZN8PIjZzQF\",\"object\":\"chat.completion.chunk\",\"created\":1709553957,\"model\":\"gpt-3.5-turbo-0125\",\"system_fingerprint\":\"fp_2b778c6b35\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\"Te\"},\"logprobs\":null,\"finish_reason\":null}]}\n\ndata: {\"id\":\"chatcmpl-8z1MrJFzcwtVvz2vNZ8ZN8PIjZzQF\",\"object\":\"chat.completion.chunk\",\"created\":1709553957,\"model\":\"gpt-3.5-turbo-0125\",\"system_fingerprint\":\"fp_2b778c6b35\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\"lemetry\"},\"logprobs\":null,\"finish_reason\":null}]}\n\ndata: {\"id\":\"chatcmpl-8z1MrJFzcwtVvz2vNZ8ZN8PIjZzQF\",\"object\":\"chat.completion.chunk\",\"created\":1709553957,\"model\":\"gpt-3.5-turbo-0125\",\"system_fingerprint\":\"fp_2b778c6b35\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" developer\"},\"logprobs\":null,\"finish_reason\":null}]}\n\ndata: {\"id\":\"chatcmpl-8z1MrJFzcwtVvz2vNZ8ZN8PIjZzQF\",\"object\":\"chat.completion.chunk\",\"created\":1709553957,\"model\":\"gpt-3.5-turbo-0125\",\"system_fingerprint\":\"fp_2b778c6b35\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" go\"},\"logprobs\":null,\"finish_reason\":null}]}\n\ndata: {\"id\":\"chatcmpl-8z1MrJFzcwtVvz2vNZ8ZN8PIjZzQF\",\"object\":\"chat.completion.chunk\",\"created\":1709553957,\"model\":\"gpt-3.5-turbo-0125\",\"system_fingerprint\":\"fp_2b778c6b35\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" broke\"},\"logprobs\":null,\"finish_reason\":null}]}\n\ndata: {\"id\":\"chatcmpl-8z1MrJFzcwtVvz2vNZ8ZN8PIjZzQF\",\"object\":\"chat.completion.chunk\",\"created\":1709553957,\"model\":\"gpt-3.5-turbo-0125\",\"system_fingerprint\":\"fp_2b778c6b35\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\"?\"},\"logprobs\":null,\"finish_reason\":null}]}\n\ndata: {\"id\":\"chatcmpl-8z1MrJFzcwtVvz2vNZ8ZN8PIjZzQF\",\"object\":\"chat.completion.chunk\",\"created\":1709553957,\"model\":\"gpt-3.5-turbo-0125\",\"system_fingerprint\":\"fp_2b778c6b35\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" Because\"},\"logprobs\":null,\"finish_reason\":null}]}\n\ndata: {\"id\":\"chatcmpl-8z1MrJFzcwtVvz2vNZ8ZN8PIjZzQF\",\"object\":\"chat.completion.chunk\",\"created\":1709553957,\"model\":\"gpt-3.5-turbo-0125\",\"system_fingerprint\":\"fp_2b778c6b35\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" they\"},\"logprobs\":null,\"finish_reason\":null}]}\n\ndata: {\"id\":\"chatcmpl-8z1MrJFzcwtVvz2vNZ8ZN8PIjZzQF\",\"object\":\"chat.completion.chunk\",\"created\":1709553957,\"model\":\"gpt-3.5-turbo-0125\",\"system_fingerprint\":\"fp_2b778c6b35\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" couldn\"},\"logprobs\":null,\"finish_reason\":null}]}\n\ndata: {\"id\":\"chatcmpl-8z1MrJFzcwtVvz2vNZ8ZN8PIjZzQF\",\"object\":\"chat.completion.chunk\",\"created\":1709553957,\"model\":\"gpt-3.5-turbo-0125\",\"system_fingerprint\":\"fp_2b778c6b35\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\"'t\"},\"logprobs\":null,\"finish_reason\":null}]}\n\ndata: {\"id\":\"chatcmpl-8z1MrJFzcwtVvz2vNZ8ZN8PIjZzQF\",\"object\":\"chat.completion.chunk\",\"created\":1709553957,\"model\":\"gpt-3.5-turbo-0125\",\"system_fingerprint\":\"fp_2b778c6b35\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" trace\"},\"logprobs\":null,\"finish_reason\":null}]}\n\ndata: {\"id\":\"chatcmpl-8z1MrJFzcwtVvz2vNZ8ZN8PIjZzQF\",\"object\":\"chat.completion.chunk\",\"created\":1709553957,\"model\":\"gpt-3.5-turbo-0125\",\"system_fingerprint\":\"fp_2b778c6b35\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" their\"},\"logprobs\":null,\"finish_reason\":null}]}\n\ndata: {\"id\":\"chatcmpl-8z1MrJFzcwtVvz2vNZ8ZN8PIjZzQF\",\"object\":\"chat.completion.chunk\",\"created\":1709553957,\"model\":\"gpt-3.5-turbo-0125\",\"system_fingerprint\":\"fp_2b778c6b35\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" expenses\"},\"logprobs\":null,\"finish_reason\":null}]}\n\ndata: {\"id\":\"chatcmpl-8z1MrJFzcwtVvz2vNZ8ZN8PIjZzQF\",\"object\":\"chat.completion.chunk\",\"created\":1709553957,\"model\":\"gpt-3.5-turbo-0125\",\"system_fingerprint\":\"fp_2b778c6b35\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\"!\"},\"logprobs\":null,\"finish_reason\":null}]}\n\ndata: {\"id\":\"chatcmpl-8z1MrJFzcwtVvz2vNZ8ZN8PIjZzQF\",\"object\":\"chat.completion.chunk\",\"created\":1709553957,\"model\":\"gpt-3.5-turbo-0125\",\"system_fingerprint\":\"fp_2b778c6b35\",\"choices\":[{\"index\":0,\"delta\":{},\"logprobs\":null,\"finish_reason\":\"stop\"}]}\n\ndata: [DONE]\n\n" + "size": 5560, + "text": "data: {\"id\":\"chatcmpl-9JLgnOr9tmGDdPYjQblP8Wt5dPgA4\",\"object\":\"chat.completion.chunk\",\"created\":1714398633,\"model\":\"gpt-3.5-turbo-0125\",\"system_fingerprint\":\"fp_3b956da36b\",\"choices\":[{\"index\":0,\"delta\":{\"role\":\"assistant\",\"content\":\"\"},\"logprobs\":null,\"finish_reason\":null}]}\n\ndata: {\"id\":\"chatcmpl-9JLgnOr9tmGDdPYjQblP8Wt5dPgA4\",\"object\":\"chat.completion.chunk\",\"created\":1714398633,\"model\":\"gpt-3.5-turbo-0125\",\"system_fingerprint\":\"fp_3b956da36b\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\"Why\"},\"logprobs\":null,\"finish_reason\":null}]}\n\ndata: {\"id\":\"chatcmpl-9JLgnOr9tmGDdPYjQblP8Wt5dPgA4\",\"object\":\"chat.completion.chunk\",\"created\":1714398633,\"model\":\"gpt-3.5-turbo-0125\",\"system_fingerprint\":\"fp_3b956da36b\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" did\"},\"logprobs\":null,\"finish_reason\":null}]}\n\ndata: {\"id\":\"chatcmpl-9JLgnOr9tmGDdPYjQblP8Wt5dPgA4\",\"object\":\"chat.completion.chunk\",\"created\":1714398633,\"model\":\"gpt-3.5-turbo-0125\",\"system_fingerprint\":\"fp_3b956da36b\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" the\"},\"logprobs\":null,\"finish_reason\":null}]}\n\ndata: {\"id\":\"chatcmpl-9JLgnOr9tmGDdPYjQblP8Wt5dPgA4\",\"object\":\"chat.completion.chunk\",\"created\":1714398633,\"model\":\"gpt-3.5-turbo-0125\",\"system_fingerprint\":\"fp_3b956da36b\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" Open\"},\"logprobs\":null,\"finish_reason\":null}]}\n\ndata: {\"id\":\"chatcmpl-9JLgnOr9tmGDdPYjQblP8Wt5dPgA4\",\"object\":\"chat.completion.chunk\",\"created\":1714398633,\"model\":\"gpt-3.5-turbo-0125\",\"system_fingerprint\":\"fp_3b956da36b\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\"Te\"},\"logprobs\":null,\"finish_reason\":null}]}\n\ndata: {\"id\":\"chatcmpl-9JLgnOr9tmGDdPYjQblP8Wt5dPgA4\",\"object\":\"chat.completion.chunk\",\"created\":1714398633,\"model\":\"gpt-3.5-turbo-0125\",\"system_fingerprint\":\"fp_3b956da36b\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\"lemetry\"},\"logprobs\":null,\"finish_reason\":null}]}\n\ndata: {\"id\":\"chatcmpl-9JLgnOr9tmGDdPYjQblP8Wt5dPgA4\",\"object\":\"chat.completion.chunk\",\"created\":1714398633,\"model\":\"gpt-3.5-turbo-0125\",\"system_fingerprint\":\"fp_3b956da36b\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" developer\"},\"logprobs\":null,\"finish_reason\":null}]}\n\ndata: {\"id\":\"chatcmpl-9JLgnOr9tmGDdPYjQblP8Wt5dPgA4\",\"object\":\"chat.completion.chunk\",\"created\":1714398633,\"model\":\"gpt-3.5-turbo-0125\",\"system_fingerprint\":\"fp_3b956da36b\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" go\"},\"logprobs\":null,\"finish_reason\":null}]}\n\ndata: {\"id\":\"chatcmpl-9JLgnOr9tmGDdPYjQblP8Wt5dPgA4\",\"object\":\"chat.completion.chunk\",\"created\":1714398633,\"model\":\"gpt-3.5-turbo-0125\",\"system_fingerprint\":\"fp_3b956da36b\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" broke\"},\"logprobs\":null,\"finish_reason\":null}]}\n\ndata: {\"id\":\"chatcmpl-9JLgnOr9tmGDdPYjQblP8Wt5dPgA4\",\"object\":\"chat.completion.chunk\",\"created\":1714398633,\"model\":\"gpt-3.5-turbo-0125\",\"system_fingerprint\":\"fp_3b956da36b\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\"?\\n\\n\"},\"logprobs\":null,\"finish_reason\":null}]}\n\ndata: {\"id\":\"chatcmpl-9JLgnOr9tmGDdPYjQblP8Wt5dPgA4\",\"object\":\"chat.completion.chunk\",\"created\":1714398633,\"model\":\"gpt-3.5-turbo-0125\",\"system_fingerprint\":\"fp_3b956da36b\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\"Because\"},\"logprobs\":null,\"finish_reason\":null}]}\n\ndata: {\"id\":\"chatcmpl-9JLgnOr9tmGDdPYjQblP8Wt5dPgA4\",\"object\":\"chat.completion.chunk\",\"created\":1714398633,\"model\":\"gpt-3.5-turbo-0125\",\"system_fingerprint\":\"fp_3b956da36b\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" they\"},\"logprobs\":null,\"finish_reason\":null}]}\n\ndata: {\"id\":\"chatcmpl-9JLgnOr9tmGDdPYjQblP8Wt5dPgA4\",\"object\":\"chat.completion.chunk\",\"created\":1714398633,\"model\":\"gpt-3.5-turbo-0125\",\"system_fingerprint\":\"fp_3b956da36b\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" kept\"},\"logprobs\":null,\"finish_reason\":null}]}\n\ndata: {\"id\":\"chatcmpl-9JLgnOr9tmGDdPYjQblP8Wt5dPgA4\",\"object\":\"chat.completion.chunk\",\"created\":1714398633,\"model\":\"gpt-3.5-turbo-0125\",\"system_fingerprint\":\"fp_3b956da36b\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" trying\"},\"logprobs\":null,\"finish_reason\":null}]}\n\ndata: {\"id\":\"chatcmpl-9JLgnOr9tmGDdPYjQblP8Wt5dPgA4\",\"object\":\"chat.completion.chunk\",\"created\":1714398633,\"model\":\"gpt-3.5-turbo-0125\",\"system_fingerprint\":\"fp_3b956da36b\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" to\"},\"logprobs\":null,\"finish_reason\":null}]}\n\ndata: {\"id\":\"chatcmpl-9JLgnOr9tmGDdPYjQblP8Wt5dPgA4\",\"object\":\"chat.completion.chunk\",\"created\":1714398633,\"model\":\"gpt-3.5-turbo-0125\",\"system_fingerprint\":\"fp_3b956da36b\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" trace\"},\"logprobs\":null,\"finish_reason\":null}]}\n\ndata: {\"id\":\"chatcmpl-9JLgnOr9tmGDdPYjQblP8Wt5dPgA4\",\"object\":\"chat.completion.chunk\",\"created\":1714398633,\"model\":\"gpt-3.5-turbo-0125\",\"system_fingerprint\":\"fp_3b956da36b\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" their\"},\"logprobs\":null,\"finish_reason\":null}]}\n\ndata: {\"id\":\"chatcmpl-9JLgnOr9tmGDdPYjQblP8Wt5dPgA4\",\"object\":\"chat.completion.chunk\",\"created\":1714398633,\"model\":\"gpt-3.5-turbo-0125\",\"system_fingerprint\":\"fp_3b956da36b\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" expenses\"},\"logprobs\":null,\"finish_reason\":null}]}\n\ndata: {\"id\":\"chatcmpl-9JLgnOr9tmGDdPYjQblP8Wt5dPgA4\",\"object\":\"chat.completion.chunk\",\"created\":1714398633,\"model\":\"gpt-3.5-turbo-0125\",\"system_fingerprint\":\"fp_3b956da36b\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\"!\"},\"logprobs\":null,\"finish_reason\":null}]}\n\ndata: {\"id\":\"chatcmpl-9JLgnOr9tmGDdPYjQblP8Wt5dPgA4\",\"object\":\"chat.completion.chunk\",\"created\":1714398633,\"model\":\"gpt-3.5-turbo-0125\",\"system_fingerprint\":\"fp_3b956da36b\",\"choices\":[{\"index\":0,\"delta\":{},\"logprobs\":null,\"finish_reason\":\"stop\"}]}\n\ndata: [DONE]\n\n" }, "cookies": [ { "domain": ".api.openai.com", - "expires": "2024-03-04T12:35:57.000Z", + "expires": "2024-04-29T14:20:34.000Z", "httpOnly": true, "name": "__cf_bm", "path": "/", "sameSite": "None", "secure": true, - "value": "yBTssSuPN.yamCWmWXpDhg5Qe8CWeql8SnITYqtTL7s-1709553957-1.0.1.1-MI4R2Mx36FPb3_7TUoL4cnhdd4fo99XPqgtbzmSD6m0JfGZEwZYdhyoQVRQqLnHLFHI.kptUmebugL_4aY2tNQ" + "value": "PKT5Fwe2zBxsWSOkxKYxSuRF0w_.mMTZggNjaoiUNwc-1714398634-1.0.1.1-rLv463n8m5oEdem.LNtKVMkRrStzDTm7tOSIa5y4MYIn5T4kokDN_X5q07kqu09xqnWoyh2BGe3A_BmpTdz6.Q" }, { "domain": ".api.openai.com", @@ -111,13 +111,13 @@ "path": "/", "sameSite": "None", "secure": true, - "value": "dDtTELh8SEg2zYO4X.7oXBPWiyth3uJjb60JHUlFEes-1709553957794-0.0.1.1-604800000" + "value": "8YVQKFZT4yGjDfRp4gw7uk1Gzo8FeRjQIV6eKlfsNmY-1714398634205-0.0.1.1-604800000" } ], "headers": [ { "name": "date", - "value": "Mon, 04 Mar 2024 12:05:57 GMT" + "value": "Mon, 29 Apr 2024 13:50:34 GMT" }, { "name": "content-type", @@ -149,7 +149,7 @@ }, { "name": "openai-processing-ms", - "value": "426" + "value": "320" }, { "name": "openai-version", @@ -185,7 +185,7 @@ }, { "name": "x-request-id", - "value": "req_ac1239a8972c3e1ff36cb39d52d0d15e" + "value": "req_e4ff5890d8bc53022af2c869f914e25e" }, { "name": "cf-cache-status", @@ -194,12 +194,12 @@ { "_fromType": "array", "name": "set-cookie", - "value": "__cf_bm=yBTssSuPN.yamCWmWXpDhg5Qe8CWeql8SnITYqtTL7s-1709553957-1.0.1.1-MI4R2Mx36FPb3_7TUoL4cnhdd4fo99XPqgtbzmSD6m0JfGZEwZYdhyoQVRQqLnHLFHI.kptUmebugL_4aY2tNQ; path=/; expires=Mon, 04-Mar-24 12:35:57 GMT; domain=.api.openai.com; HttpOnly; Secure; SameSite=None" + "value": "__cf_bm=PKT5Fwe2zBxsWSOkxKYxSuRF0w_.mMTZggNjaoiUNwc-1714398634-1.0.1.1-rLv463n8m5oEdem.LNtKVMkRrStzDTm7tOSIa5y4MYIn5T4kokDN_X5q07kqu09xqnWoyh2BGe3A_BmpTdz6.Q; path=/; expires=Mon, 29-Apr-24 14:20:34 GMT; domain=.api.openai.com; HttpOnly; Secure; SameSite=None" }, { "_fromType": "array", "name": "set-cookie", - "value": "_cfuvid=dDtTELh8SEg2zYO4X.7oXBPWiyth3uJjb60JHUlFEes-1709553957794-0.0.1.1-604800000; path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None" + "value": "_cfuvid=8YVQKFZT4yGjDfRp4gw7uk1Gzo8FeRjQIV6eKlfsNmY-1714398634205-0.0.1.1-604800000; path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None" }, { "name": "server", @@ -207,7 +207,7 @@ }, { "name": "cf-ray", - "value": "85f1bcc6bc8a4c3d-MXP" + "value": "87bfc303fee64bf7-MXP" }, { "name": "alt-svc", @@ -220,8 +220,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2024-03-04T12:05:56.824Z", - "time": 1186, + "startedDateTime": "2024-04-29T13:50:33.524Z", + "time": 1046, "timings": { "blocked": -1, "connect": -1, @@ -229,7 +229,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 1186 + "wait": 1046 } } ], diff --git a/packages/instrumentation-llamaindex/recordings/Test-LlamaIndex-instrumentation_1988279490/should-set-attributes-in-span-for-LLM-instrumentation_1854463200/recording.har b/packages/instrumentation-llamaindex/recordings/Test-LlamaIndex-instrumentation_1988279490/should-set-attributes-in-span-for-LLM-instrumentation_1854463200/recording.har index 00a273fa..e7f610d8 100644 --- a/packages/instrumentation-llamaindex/recordings/Test-LlamaIndex-instrumentation_1988279490/should-set-attributes-in-span-for-LLM-instrumentation_1854463200/recording.har +++ b/packages/instrumentation-llamaindex/recordings/Test-LlamaIndex-instrumentation_1988279490/should-set-attributes-in-span-for-LLM-instrumentation_1854463200/recording.har @@ -33,7 +33,7 @@ { "_fromType": "array", "name": "user-agent", - "value": "OpenAI/JS 4.28.4" + "value": "OpenAI/JS 4.38.3" }, { "_fromType": "array", @@ -43,7 +43,7 @@ { "_fromType": "array", "name": "x-stainless-package-version", - "value": "4.28.4" + "value": "4.38.3" }, { "_fromType": "array", @@ -87,23 +87,23 @@ "url": "https://api.openai.com/v1/chat/completions" }, "response": { - "bodySize": 507, + "bodySize": 499, "content": { "encoding": "base64", "mimeType": "application/json", - "size": 507, - "text": "[\"H4sIAAAAAAAAA1SRTU/DMAyG7/0VJucNbSul2y6IT3EAwYEPIYSmNPXasDQOiYco0/47Sjc2uOTwPn6d1/YqARC6FFMQqpasGmf64+/h7Uc+zm5e5hf3p5fF9dP5Y0ivwmT0cJGLXnRQ8Y6Kf12HihpnkDXZDVYeJWPsOswHkyxLJ9lxBxoq0URb5Q==\",\"uJ8eZn1e+oL6g+Eo2zpr0gqDmMJrAgCw6t6Y0Zb4JaYw6P0qDYYgKxTTXRGA8GSiImQIOrC0LHp7qMgy2i72c91CqUvgGuHOoX1Agw2yb6HETzTk0ENFUHha4AmcoZLLgLG6hQU6BvatthUwAXupOqI94JdDGzAciO2n611aQ5XzVMTJ7NKYnT7XVod65lEGsjFZYHIb+zoBeOu2svw3qHCeGsczpgXa2HCYbdqJ/R3+wMkWMrE0ez09Srb5RGgDYzOba1uhd15vVjR3s1GR52N1XKSZSNbJDwAAAP//AwAggTpkLAIAAA==\"]" + "size": 499, + "text": "[\"H4sIAAAAAAAAA1RRwU7DMAy99ytMLlw2tK5sY7sgcQA0QAiExAGhKU28NpDGUeIiCtq/o3Rjg4sP7/k9P9vfGYAwWixAqFqyarwdzpe3VTPKx+rqYXwj55ePctldfy5zW9x9zcQgKah8Q8W/qhNFjbfIhtyWVgElY3LNZ/lpMT+bFuOeaEijTbLK8w==\",\"sDiZDLkNJQ1H+XiyU9ZkFEaxgJcMAOC7rymj0/gpFjAa/CINxigrFIt9E4AIZBMiZIwmsnQsBgdSkWN0feznugNtNHCNcO/RPaHFBjl0oPEDLXkMUBGUgd7xHC5QyTZi6u5AUWu1O2bgIFWPmQDRo9PGVUdiN26zz2mp8oHKtJNrrd3ja+NMrFcBZSSXMkUmv5VvMoDX/h7tvxWFD9R4XjG9o0uG+WRrJw4f+EOe7UgmlvaAF0W2yydiFxmb1dq4CoMPZnuctV8V5Xwy1bKYliLbZD8AAAD//wMAAH8HKCYCAAA=\"]" }, "cookies": [ { "domain": ".api.openai.com", - "expires": "2024-03-04T12:35:56.000Z", + "expires": "2024-04-29T14:20:33.000Z", "httpOnly": true, "name": "__cf_bm", "path": "/", "sameSite": "None", "secure": true, - "value": "nBcr7EPmQduACP9bb_EwF5q30FhI5hMiq7g77znNJAk-1709553956-1.0.1.1-35Z2Ja1TIw1DmYwie7d.xBMmBVBOq5lVTFH8TVq5I2qVW0aZngOxqQdBs_Wxolremvj6NV1bgM994a4JlO7JVQ" + "value": "_q6BzcJTBzOgJaEKlRJgib2lFgnuIVuRv.WNGZ2Z3HM-1714398633-1.0.1.1-EsHy2DYTr6GkBVNvlE1ZC20.SZqk505edgCUYuKuuH4hf0vl0zbEb0wwHvFG.EIBXR6foTOiV58jF_aznLcoxw" }, { "domain": ".api.openai.com", @@ -112,13 +112,13 @@ "path": "/", "sameSite": "None", "secure": true, - "value": "38da23t8RS4PkOJrmiNYuwUjnh0tieLfD320qjw1l_o-1709553956810-0.0.1.1-604800000" + "value": "ZfRdpxIj44fvlKufhf.h77t.1IIb8jMzeQ8Kmqa28K4-1714398633537-0.0.1.1-604800000" } ], "headers": [ { "name": "date", - "value": "Mon, 04 Mar 2024 12:05:56 GMT" + "value": "Mon, 29 Apr 2024 13:50:33 GMT" }, { "name": "content-type", @@ -150,7 +150,7 @@ }, { "name": "openai-processing-ms", - "value": "491" + "value": "686" }, { "name": "openai-version", @@ -186,7 +186,7 @@ }, { "name": "x-request-id", - "value": "req_be986c3e3be7bbdd981d03e91ac90eb3" + "value": "req_cdb395dbc44d6db19c7f3ab878c5c028" }, { "name": "cf-cache-status", @@ -195,12 +195,12 @@ { "_fromType": "array", "name": "set-cookie", - "value": "__cf_bm=nBcr7EPmQduACP9bb_EwF5q30FhI5hMiq7g77znNJAk-1709553956-1.0.1.1-35Z2Ja1TIw1DmYwie7d.xBMmBVBOq5lVTFH8TVq5I2qVW0aZngOxqQdBs_Wxolremvj6NV1bgM994a4JlO7JVQ; path=/; expires=Mon, 04-Mar-24 12:35:56 GMT; domain=.api.openai.com; HttpOnly; Secure; SameSite=None" + "value": "__cf_bm=_q6BzcJTBzOgJaEKlRJgib2lFgnuIVuRv.WNGZ2Z3HM-1714398633-1.0.1.1-EsHy2DYTr6GkBVNvlE1ZC20.SZqk505edgCUYuKuuH4hf0vl0zbEb0wwHvFG.EIBXR6foTOiV58jF_aznLcoxw; path=/; expires=Mon, 29-Apr-24 14:20:33 GMT; domain=.api.openai.com; HttpOnly; Secure; SameSite=None" }, { "_fromType": "array", "name": "set-cookie", - "value": "_cfuvid=38da23t8RS4PkOJrmiNYuwUjnh0tieLfD320qjw1l_o-1709553956810-0.0.1.1-604800000; path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None" + "value": "_cfuvid=ZfRdpxIj44fvlKufhf.h77t.1IIb8jMzeQ8Kmqa28K4-1714398633537-0.0.1.1-604800000; path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None" }, { "name": "server", @@ -208,7 +208,7 @@ }, { "name": "cf-ray", - "value": "85f1bcc1bbb94c3d-MXP" + "value": "87bfc2fd8dc44bf7-MXP" }, { "name": "content-encoding", @@ -225,8 +225,8 @@ "status": 200, "statusText": "OK" }, - "startedDateTime": "2024-03-04T12:05:55.946Z", - "time": 857, + "startedDateTime": "2024-04-29T13:50:32.406Z", + "time": 1096, "timings": { "blocked": -1, "connect": -1, @@ -234,7 +234,7 @@ "receive": 0, "send": 0, "ssl": -1, - "wait": 857 + "wait": 1096 } } ], diff --git a/packages/instrumentation-llamaindex/src/custom-llm-instrumentation.ts b/packages/instrumentation-llamaindex/src/custom-llm-instrumentation.ts index b3c2ac3c..618b29e2 100644 --- a/packages/instrumentation-llamaindex/src/custom-llm-instrumentation.ts +++ b/packages/instrumentation-llamaindex/src/custom-llm-instrumentation.ts @@ -49,13 +49,16 @@ export class CustomLLMInstrumentation { }); try { - span.setAttribute(SpanAttributes.LLM_VENDOR, className); + span.setAttribute(SpanAttributes.LLM_SYSTEM, className); span.setAttribute( SpanAttributes.LLM_REQUEST_MODEL, this.metadata.model, ); span.setAttribute(SpanAttributes.LLM_REQUEST_TYPE, "chat"); - span.setAttribute(SpanAttributes.LLM_TOP_P, this.metadata.topP); + span.setAttribute( + SpanAttributes.LLM_REQUEST_TOP_P, + this.metadata.topP, + ); if (shouldSendPrompts(plugin.config)) { for (const messageIdx in messages) { span.setAttribute( diff --git a/packages/instrumentation-llamaindex/test/instrumentation.test.ts b/packages/instrumentation-llamaindex/test/instrumentation.test.ts index 60e2ae3c..8d79aeef 100644 --- a/packages/instrumentation-llamaindex/test/instrumentation.test.ts +++ b/packages/instrumentation-llamaindex/test/instrumentation.test.ts @@ -93,15 +93,15 @@ describe("Test LlamaIndex instrumentation", async function () { assert.strictEqual(spans.length, 1); const chatAttributes = spans[0].attributes; - assert.strictEqual(chatAttributes["llm.vendor"], "OpenAI"); + assert.strictEqual(chatAttributes["gen_ai.system"], "OpenAI"); assert.strictEqual(chatAttributes["llm.request.type"], "chat"); - assert.strictEqual(chatAttributes["llm.request.model"], model); - assert.strictEqual(chatAttributes["llm.top_p"], 1); - assert.strictEqual(chatAttributes["llm.prompts.0.content"], prompt); - assert.strictEqual(chatAttributes["llm.prompts.0.role"], "user"); - assert.strictEqual(chatAttributes["llm.completions.0.role"], "assistant"); + assert.strictEqual(chatAttributes["gen_ai.request.model"], model); + assert.strictEqual(chatAttributes["gen_ai.request.top_p"], 1); + assert.strictEqual(chatAttributes["gen_ai.prompt.0.content"], prompt); + assert.strictEqual(chatAttributes["gen_ai.prompt.0.role"], "user"); + assert.strictEqual(chatAttributes["gen_ai.completion.0.role"], "assistant"); assert.strictEqual( - chatAttributes["llm.completions.0.content"], + chatAttributes["gen_ai.completion.0.content"], res.message.content, ); }); @@ -129,13 +129,13 @@ describe("Test LlamaIndex instrumentation", async function () { assert.strictEqual(spans.length, 1); const chatAttributes = spans[0].attributes; - assert.strictEqual(chatAttributes["llm.vendor"], "OpenAI"); + assert.strictEqual(chatAttributes["gen_ai.system"], "OpenAI"); assert.strictEqual(chatAttributes["llm.request.type"], "chat"); - assert.strictEqual(chatAttributes["llm.request.model"], model); - assert.strictEqual(chatAttributes["llm.top_p"], 1); - assert.strictEqual(chatAttributes["llm.prompts.0.content"], prompt); - assert.strictEqual(chatAttributes["llm.prompts.0.role"], "user"); - assert.strictEqual(chatAttributes["llm.completions.0.content"], message); + assert.strictEqual(chatAttributes["gen_ai.request.model"], model); + assert.strictEqual(chatAttributes["gen_ai.request.top_p"], 1); + assert.strictEqual(chatAttributes["gen_ai.prompt.0.content"], prompt); + assert.strictEqual(chatAttributes["gen_ai.prompt.0.role"], "user"); + assert.strictEqual(chatAttributes["gen_ai.completion.0.content"], message); }); it("should add span for all instrumented methods", async () => { diff --git a/packages/instrumentation-openai/src/instrumentation.ts b/packages/instrumentation-openai/src/instrumentation.ts index 526e5f70..345d866b 100644 --- a/packages/instrumentation-openai/src/instrumentation.ts +++ b/packages/instrumentation-openai/src/instrumentation.ts @@ -234,7 +234,7 @@ export class OpenAIInstrumentation extends InstrumentationBase { }; }): Span { const attributes: Attributes = { - [SpanAttributes.LLM_VENDOR]: "OpenAI", + [SpanAttributes.LLM_SYSTEM]: "OpenAI", [SpanAttributes.LLM_REQUEST_TYPE]: type, }; @@ -244,10 +244,10 @@ export class OpenAIInstrumentation extends InstrumentationBase { attributes[SpanAttributes.LLM_REQUEST_MAX_TOKENS] = params.max_tokens; } if (params.temperature) { - attributes[SpanAttributes.LLM_TEMPERATURE] = params.temperature; + attributes[SpanAttributes.LLM_REQUEST_TEMPERATURE] = params.temperature; } if (params.top_p) { - attributes[SpanAttributes.LLM_TOP_P] = params.top_p; + attributes[SpanAttributes.LLM_REQUEST_TOP_P] = params.top_p; } if (params.frequency_penalty) { attributes[SpanAttributes.LLM_FREQUENCY_PENALTY] = diff --git a/packages/instrumentation-vertexai/src/aiplatform-instrumentation.ts b/packages/instrumentation-vertexai/src/aiplatform-instrumentation.ts index 1b8a12d7..3fcb5cb3 100644 --- a/packages/instrumentation-vertexai/src/aiplatform-instrumentation.ts +++ b/packages/instrumentation-vertexai/src/aiplatform-instrumentation.ts @@ -157,7 +157,7 @@ export class AIPlatformInstrumentation extends InstrumentationBase { | undefined; }): Span { const attributes: Attributes = { - [SpanAttributes.LLM_VENDOR]: "VertexAI", + [SpanAttributes.LLM_SYSTEM]: "VertexAI", [SpanAttributes.LLM_REQUEST_TYPE]: "completion", }; @@ -176,11 +176,11 @@ export class AIPlatformInstrumentation extends InstrumentationBase { params?.parameters.structValue?.fields?.maxOutputTokens.numberValue; } if (params?.parameters.structValue?.fields?.temperature.numberValue) { - attributes[SpanAttributes.LLM_TEMPERATURE] = + attributes[SpanAttributes.LLM_REQUEST_TEMPERATURE] = params?.parameters.structValue?.fields?.temperature.numberValue; } if (params?.parameters.structValue?.fields?.topP.numberValue) { - attributes[SpanAttributes.LLM_TOP_P] = + attributes[SpanAttributes.LLM_REQUEST_TOP_P] = params?.parameters.structValue?.fields?.topP.numberValue; } if (params?.parameters.structValue?.fields?.topK.numberValue) { diff --git a/packages/instrumentation-vertexai/src/vertexai-instrumentation.ts b/packages/instrumentation-vertexai/src/vertexai-instrumentation.ts index 4cb1a3c8..c737f972 100644 --- a/packages/instrumentation-vertexai/src/vertexai-instrumentation.ts +++ b/packages/instrumentation-vertexai/src/vertexai-instrumentation.ts @@ -162,7 +162,7 @@ export class VertexAIInstrumentation extends InstrumentationBase { params: vertexAI.GenerateContentRequest; }): Span { const attributes: Attributes = { - [SpanAttributes.LLM_VENDOR]: "VertexAI", + [SpanAttributes.LLM_SYSTEM]: "VertexAI", [SpanAttributes.LLM_REQUEST_TYPE]: "completion", }; @@ -178,11 +178,11 @@ export class VertexAIInstrumentation extends InstrumentationBase { this.modelConfig.generation_config.max_output_tokens; } if (this.modelConfig.generation_config.temperature) { - attributes[SpanAttributes.LLM_TEMPERATURE] = + attributes[SpanAttributes.LLM_REQUEST_TEMPERATURE] = this.modelConfig.generation_config.temperature; } if (this.modelConfig.generation_config.top_p) { - attributes[SpanAttributes.LLM_TOP_P] = + attributes[SpanAttributes.LLM_REQUEST_TOP_P] = this.modelConfig.generation_config.top_p; } if (this.modelConfig.generation_config.top_k) { diff --git a/packages/instrumentation-vertexai/tests/gemini.test.ts b/packages/instrumentation-vertexai/tests/gemini.test.ts index 17e86798..4c04a8c2 100644 --- a/packages/instrumentation-vertexai/tests/gemini.test.ts +++ b/packages/instrumentation-vertexai/tests/gemini.test.ts @@ -84,19 +84,19 @@ describe.skip("Test Gemini GenerativeModel Instrumentation", () => { const attributes = spans[0].attributes; - assert.strictEqual(attributes["llm.vendor"], "VertexAI"); + assert.strictEqual(attributes["gen_ai.system"], "VertexAI"); assert.strictEqual(attributes["llm.request.type"], "completion"); - assert.strictEqual(attributes["llm.request.model"], model); + assert.strictEqual(attributes["gen_ai.request.model"], model); assert.strictEqual( - attributes["llm.top_p"], + attributes["gen_ai.request.top_p"], generativeModel.generation_config?.top_p, ); - assert.strictEqual(attributes["llm.prompts.0.content"], prompt); - assert.strictEqual(attributes["llm.prompts.0.role"], "user"); - assert.strictEqual(attributes["llm.response.model"], model); - assert.strictEqual(attributes["llm.completions.0.role"], "model"); + assert.strictEqual(attributes["gen_ai.prompt.0.content"], prompt); + assert.strictEqual(attributes["gen_ai.prompt.0.role"], "user"); + assert.strictEqual(attributes["gen_ai.response.model"], model); + assert.strictEqual(attributes["gen_ai.completion.0.role"], "model"); assert.strictEqual( - attributes["llm.completions.0.content"], + attributes["gen_ai.completion.0.content"], fullTextResponse, ); }); @@ -140,24 +140,27 @@ describe.skip("Test Gemini GenerativeModel Instrumentation", () => { const attributes = spans[0].attributes; - assert.strictEqual(attributes["llm.vendor"], "VertexAI"); + assert.strictEqual(attributes["gen_ai.system"], "VertexAI"); assert.strictEqual(attributes["llm.request.type"], "completion"); - assert.strictEqual(attributes["llm.request.model"], model); + assert.strictEqual(attributes["gen_ai.request.model"], model); assert.strictEqual( - attributes["llm.top_p"], + attributes["gen_ai.request.top_p"], generativeModel.generation_config?.top_p, ); assert.strictEqual( - attributes["llm.request.max_tokens"], + attributes["gen_ai.request.max_tokens"], generativeModel.generation_config?.max_output_tokens, ); - assert.strictEqual(attributes["llm.prompts.0.content"], prompt); - assert.strictEqual(attributes["llm.prompts.0.role"], "user"); - assert.strictEqual(attributes["llm.response.model"], model); - assert.strictEqual(attributes["llm.completions.0.role"], "model"); + assert.strictEqual(attributes["gen_ai.prompt.0.content"], prompt); + assert.strictEqual(attributes["gen_ai.prompt.0.role"], "user"); + assert.strictEqual(attributes["gen_ai.response.model"], model); + assert.strictEqual(attributes["gen_ai.completion.0.role"], "model"); fullTextResponse.forEach((resp, index) => { - assert.strictEqual(attributes[`llm.completions.${index}.content`], resp); + assert.strictEqual( + attributes[`gen_ai.completion.${index}.content`], + resp, + ); }); }); }); diff --git a/packages/instrumentation-vertexai/tests/palm2.test.ts b/packages/instrumentation-vertexai/tests/palm2.test.ts index 25fdc3aa..34d3db37 100644 --- a/packages/instrumentation-vertexai/tests/palm2.test.ts +++ b/packages/instrumentation-vertexai/tests/palm2.test.ts @@ -92,17 +92,17 @@ describe.skip("Test PaLM2 PredictionServiceClient Instrumentation", () => { const attributes = spans[0].attributes; - assert.strictEqual(attributes["llm.vendor"], "VertexAI"); + assert.strictEqual(attributes["gen_ai.system"], "VertexAI"); assert.strictEqual(attributes["llm.request.type"], "completion"); - assert.strictEqual(attributes["llm.request.model"], model); - assert.strictEqual(attributes["llm.top_p"], parameter.topP); + assert.strictEqual(attributes["gen_ai.request.model"], model); + assert.strictEqual(attributes["gen_ai.request.top_p"], parameter.topP); assert.strictEqual(attributes["llm.top_k"], parameter.topK); - assert.strictEqual(attributes["llm.prompts.0.content"], prompt.prompt); - assert.strictEqual(attributes["llm.prompts.0.role"], "user"); - assert.strictEqual(attributes["llm.response.model"], model); - assert.strictEqual(attributes["llm.completions.0.role"], "assistant"); + assert.strictEqual(attributes["gen_ai.prompt.0.content"], prompt.prompt); + assert.strictEqual(attributes["gen_ai.prompt.0.role"], "user"); + assert.strictEqual(attributes["gen_ai.response.model"], model); + assert.strictEqual(attributes["gen_ai.completion.0.role"], "assistant"); assert.strictEqual( - attributes["llm.completions.0.content"], + attributes["gen_ai.completion.0.content"], fullTextResponse, ); }); @@ -165,20 +165,20 @@ describe.skip("Test PaLM2 PredictionServiceClient Instrumentation", () => { const attributes = spans[0].attributes; - assert.strictEqual(attributes["llm.vendor"], "VertexAI"); + assert.strictEqual(attributes["gen_ai.system"], "VertexAI"); assert.strictEqual(attributes["llm.request.type"], "completion"); - assert.strictEqual(attributes["llm.request.model"], model); - assert.strictEqual(attributes["llm.top_p"], parameter.topP); + assert.strictEqual(attributes["gen_ai.request.model"], model); + assert.strictEqual(attributes["gen_ai.request.top_p"], parameter.topP); assert.strictEqual(attributes["llm.top_k"], parameter.topK); assert.strictEqual( - attributes["llm.prompts.0.content"], + attributes["gen_ai.prompt.0.content"], prompt.messages[0].content, ); - assert.strictEqual(attributes["llm.prompts.0.role"], "user"); - assert.strictEqual(attributes["llm.response.model"], model); - assert.strictEqual(attributes["llm.completions.0.role"], "assistant"); + assert.strictEqual(attributes["gen_ai.prompt.0.role"], "user"); + assert.strictEqual(attributes["gen_ai.response.model"], model); + assert.strictEqual(attributes["gen_ai.completion.0.role"], "assistant"); assert.strictEqual( - attributes["llm.completions.0.content"], + attributes["gen_ai.completion.0.content"], fullTextResponse, ); });