@arizeai/openinference-instrumentation-openai 0.5.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -57,12 +57,9 @@ const sdk_trace_base_1 = require("@opentelemetry/sdk-trace-base");
57
57
  const sdk_trace_node_1 = require("@opentelemetry/sdk-trace-node");
58
58
  const core_1 = require("@opentelemetry/core");
59
59
  const api_1 = require("@opentelemetry/api");
60
- const tracerProvider = new sdk_trace_node_1.NodeTracerProvider();
61
- tracerProvider.register();
62
- const instrumentation = new src_1.OpenAIInstrumentation();
63
- instrumentation.disable();
64
60
  const OpenAI = __importStar(require("openai"));
65
61
  const streaming_1 = require("openai/streaming");
62
+ const openinference_core_1 = require("@arizeai/openinference-core");
66
63
  // Function tools
67
64
  function getCurrentLocation() {
68
65
  return __awaiter(this, void 0, void 0, function* () {
@@ -74,9 +71,13 @@ function getWeather(_args) {
74
71
  return { temperature: 52, precipitation: "rainy" };
75
72
  });
76
73
  }
74
+ const memoryExporter = new sdk_trace_base_1.InMemorySpanExporter();
77
75
  describe("OpenAIInstrumentation", () => {
76
+ const tracerProvider = new sdk_trace_node_1.NodeTracerProvider();
77
+ tracerProvider.register();
78
+ const instrumentation = new src_1.OpenAIInstrumentation();
79
+ instrumentation.disable();
78
80
  let openai;
79
- const memoryExporter = new sdk_trace_base_1.InMemorySpanExporter();
80
81
  instrumentation.setTracerProvider(tracerProvider);
81
82
  tracerProvider.addSpanProcessor(new sdk_trace_base_1.SimpleSpanProcessor(memoryExporter));
82
83
  // @ts-expect-error the moduleExports property is private. This is needed to make the test work with auto-mocking
@@ -144,23 +145,25 @@ describe("OpenAIInstrumentation", () => {
144
145
  const span = spans[0];
145
146
  expect(span.name).toBe("OpenAI Chat Completions");
146
147
  expect(span.attributes).toMatchInlineSnapshot(`
147
- {
148
- "input.mime_type": "application/json",
149
- "input.value": "{"messages":[{"role":"user","content":"Say this is a test"}],"model":"gpt-3.5-turbo"}",
150
- "llm.input_messages.0.message.content": "Say this is a test",
151
- "llm.input_messages.0.message.role": "user",
152
- "llm.invocation_parameters": "{"model":"gpt-3.5-turbo"}",
153
- "llm.model_name": "gpt-3.5-turbo-0613",
154
- "llm.output_messages.0.message.content": "This is a test.",
155
- "llm.output_messages.0.message.role": "assistant",
156
- "llm.token_count.completion": 5,
157
- "llm.token_count.prompt": 12,
158
- "llm.token_count.total": 17,
159
- "openinference.span.kind": "LLM",
160
- "output.mime_type": "application/json",
161
- "output.value": "{"id":"chatcmpl-8adq9JloOzNZ9TyuzrKyLpGXexh6p","object":"chat.completion","created":1703743645,"model":"gpt-3.5-turbo-0613","choices":[{"index":0,"message":{"role":"assistant","content":"This is a test."},"logprobs":null,"finish_reason":"stop"}],"usage":{"prompt_tokens":12,"completion_tokens":5,"total_tokens":17}}",
162
- }
163
- `);
148
+ {
149
+ "input.mime_type": "application/json",
150
+ "input.value": "{"messages":[{"role":"user","content":"Say this is a test"}],"model":"gpt-3.5-turbo"}",
151
+ "llm.input_messages.0.message.content": "Say this is a test",
152
+ "llm.input_messages.0.message.role": "user",
153
+ "llm.invocation_parameters": "{"model":"gpt-3.5-turbo"}",
154
+ "llm.model_name": "gpt-3.5-turbo-0613",
155
+ "llm.output_messages.0.message.content": "This is a test.",
156
+ "llm.output_messages.0.message.role": "assistant",
157
+ "llm.provider": "openai",
158
+ "llm.system": "openai",
159
+ "llm.token_count.completion": 5,
160
+ "llm.token_count.prompt": 12,
161
+ "llm.token_count.total": 17,
162
+ "openinference.span.kind": "LLM",
163
+ "output.mime_type": "application/json",
164
+ "output.value": "{"id":"chatcmpl-8adq9JloOzNZ9TyuzrKyLpGXexh6p","object":"chat.completion","created":1703743645,"model":"gpt-3.5-turbo-0613","choices":[{"index":0,"message":{"role":"assistant","content":"This is a test."},"logprobs":null,"finish_reason":"stop"}],"usage":{"prompt_tokens":12,"completion_tokens":5,"total_tokens":17}}",
165
+ }
166
+ `);
164
167
  }));
165
168
  it("creates a span for completions", () => __awaiter(void 0, void 0, void 0, function* () {
166
169
  const response = {
@@ -193,19 +196,21 @@ describe("OpenAIInstrumentation", () => {
193
196
  const span = spans[0];
194
197
  expect(span.name).toBe("OpenAI Completions");
195
198
  expect(span.attributes).toMatchInlineSnapshot(`
196
- {
197
- "input.mime_type": "text/plain",
198
- "input.value": "Say this is a test",
199
- "llm.invocation_parameters": "{"model":"gpt-3.5-turbo-instruct"}",
200
- "llm.model_name": "gpt-3.5-turbo-instruct",
201
- "llm.token_count.completion": 5,
202
- "llm.token_count.prompt": 12,
203
- "llm.token_count.total": 17,
204
- "openinference.span.kind": "LLM",
205
- "output.mime_type": "text/plain",
206
- "output.value": "This is a test",
207
- }
208
- `);
199
+ {
200
+ "input.mime_type": "text/plain",
201
+ "input.value": "Say this is a test",
202
+ "llm.invocation_parameters": "{"model":"gpt-3.5-turbo-instruct"}",
203
+ "llm.model_name": "gpt-3.5-turbo-instruct",
204
+ "llm.provider": "openai",
205
+ "llm.system": "openai",
206
+ "llm.token_count.completion": 5,
207
+ "llm.token_count.prompt": 12,
208
+ "llm.token_count.total": 17,
209
+ "openinference.span.kind": "LLM",
210
+ "output.mime_type": "text/plain",
211
+ "output.value": "This is a test",
212
+ }
213
+ `);
209
214
  }));
210
215
  it("creates a span for embedding create", () => __awaiter(void 0, void 0, void 0, function* () {
211
216
  const response = {
@@ -285,20 +290,22 @@ describe("OpenAIInstrumentation", () => {
285
290
  const span = spans[0];
286
291
  expect(span.name).toBe("OpenAI Chat Completions");
287
292
  expect(span.attributes).toMatchInlineSnapshot(`
288
- {
289
- "input.mime_type": "application/json",
290
- "input.value": "{"messages":[{"role":"user","content":"Say this is a test"}],"model":"gpt-3.5-turbo","stream":true}",
291
- "llm.input_messages.0.message.content": "Say this is a test",
292
- "llm.input_messages.0.message.role": "user",
293
- "llm.invocation_parameters": "{"model":"gpt-3.5-turbo","stream":true}",
294
- "llm.model_name": "gpt-3.5-turbo",
295
- "llm.output_messages.0.message.content": "This is a test.",
296
- "llm.output_messages.0.message.role": "assistant",
297
- "openinference.span.kind": "LLM",
298
- "output.mime_type": "text/plain",
299
- "output.value": "This is a test.",
300
- }
301
- `);
293
+ {
294
+ "input.mime_type": "application/json",
295
+ "input.value": "{"messages":[{"role":"user","content":"Say this is a test"}],"model":"gpt-3.5-turbo","stream":true}",
296
+ "llm.input_messages.0.message.content": "Say this is a test",
297
+ "llm.input_messages.0.message.role": "user",
298
+ "llm.invocation_parameters": "{"model":"gpt-3.5-turbo","stream":true}",
299
+ "llm.model_name": "gpt-3.5-turbo",
300
+ "llm.output_messages.0.message.content": "This is a test.",
301
+ "llm.output_messages.0.message.role": "assistant",
302
+ "llm.provider": "openai",
303
+ "llm.system": "openai",
304
+ "openinference.span.kind": "LLM",
305
+ "output.mime_type": "text/plain",
306
+ "output.value": "This is a test.",
307
+ }
308
+ `);
302
309
  }));
303
310
  it("should capture tool calls", () => __awaiter(void 0, void 0, void 0, function* () {
304
311
  // Mock out the embedding create endpoint
@@ -430,26 +437,28 @@ describe("OpenAIInstrumentation", () => {
430
437
  const [span1, span2, span3] = spans;
431
438
  expect(span1.name).toBe("OpenAI Chat Completions");
432
439
  expect(span1.attributes).toMatchInlineSnapshot(`
433
- {
434
- "input.mime_type": "application/json",
435
- "input.value": "{"model":"gpt-3.5-turbo","messages":[{"role":"user","content":"How is the weather this week?"}],"tools":[{"type":"function","function":{"name":"getCurrentLocation","parameters":{"type":"object","properties":{}},"description":"Get the current location of the user."}},{"type":"function","function":{"name":"getWeather","parameters":{"type":"object","properties":{"location":{"type":"string"}}},"description":"Get the weather for a location."}}],"tool_choice":"auto","stream":false}",
436
- "llm.input_messages.0.message.content": "How is the weather this week?",
437
- "llm.input_messages.0.message.role": "user",
438
- "llm.invocation_parameters": "{"model":"gpt-3.5-turbo","tools":[{"type":"function","function":{"name":"getCurrentLocation","parameters":{"type":"object","properties":{}},"description":"Get the current location of the user."}},{"type":"function","function":{"name":"getWeather","parameters":{"type":"object","properties":{"location":{"type":"string"}}},"description":"Get the weather for a location."}}],"tool_choice":"auto","stream":false}",
439
- "llm.model_name": "gpt-3.5-turbo-0613",
440
- "llm.output_messages.0.message.role": "assistant",
441
- "llm.output_messages.0.message.tool_calls.0.tool_call.function.arguments": "{}",
442
- "llm.output_messages.0.message.tool_calls.0.tool_call.function.name": "getCurrentLocation",
443
- "llm.token_count.completion": 7,
444
- "llm.token_count.prompt": 70,
445
- "llm.token_count.total": 77,
446
- "llm.tools.0.tool.json_schema": "{"type":"function","function":{"name":"getCurrentLocation","parameters":{"type":"object","properties":{}},"description":"Get the current location of the user."}}",
447
- "llm.tools.1.tool.json_schema": "{"type":"function","function":{"name":"getWeather","parameters":{"type":"object","properties":{"location":{"type":"string"}}},"description":"Get the weather for a location."}}",
448
- "openinference.span.kind": "LLM",
449
- "output.mime_type": "application/json",
450
- "output.value": "{"id":"chatcmpl-8hhqZDFTRD0vzExhqWnMLE7viVl7E","object":"chat.completion","created":1705427343,"model":"gpt-3.5-turbo-0613","choices":[{"index":0,"message":{"role":"assistant","content":null,"tool_calls":[{"id":"call_5ERYvu4iTGSvDlcDQjDP3g3J","type":"function","function":{"name":"getCurrentLocation","arguments":"{}"}}]},"logprobs":null,"finish_reason":"tool_calls"}],"usage":{"prompt_tokens":70,"completion_tokens":7,"total_tokens":77},"system_fingerprint":null}",
451
- }
452
- `);
440
+ {
441
+ "input.mime_type": "application/json",
442
+ "input.value": "{"model":"gpt-3.5-turbo","messages":[{"role":"user","content":"How is the weather this week?"}],"tools":[{"type":"function","function":{"name":"getCurrentLocation","parameters":{"type":"object","properties":{}},"description":"Get the current location of the user."}},{"type":"function","function":{"name":"getWeather","parameters":{"type":"object","properties":{"location":{"type":"string"}}},"description":"Get the weather for a location."}}],"tool_choice":"auto","stream":false}",
443
+ "llm.input_messages.0.message.content": "How is the weather this week?",
444
+ "llm.input_messages.0.message.role": "user",
445
+ "llm.invocation_parameters": "{"model":"gpt-3.5-turbo","tools":[{"type":"function","function":{"name":"getCurrentLocation","parameters":{"type":"object","properties":{}},"description":"Get the current location of the user."}},{"type":"function","function":{"name":"getWeather","parameters":{"type":"object","properties":{"location":{"type":"string"}}},"description":"Get the weather for a location."}}],"tool_choice":"auto","stream":false}",
446
+ "llm.model_name": "gpt-3.5-turbo-0613",
447
+ "llm.output_messages.0.message.role": "assistant",
448
+ "llm.output_messages.0.message.tool_calls.0.tool_call.function.arguments": "{}",
449
+ "llm.output_messages.0.message.tool_calls.0.tool_call.function.name": "getCurrentLocation",
450
+ "llm.provider": "openai",
451
+ "llm.system": "openai",
452
+ "llm.token_count.completion": 7,
453
+ "llm.token_count.prompt": 70,
454
+ "llm.token_count.total": 77,
455
+ "llm.tools.0.tool.json_schema": "{"type":"function","function":{"name":"getCurrentLocation","parameters":{"type":"object","properties":{}},"description":"Get the current location of the user."}}",
456
+ "llm.tools.1.tool.json_schema": "{"type":"function","function":{"name":"getWeather","parameters":{"type":"object","properties":{"location":{"type":"string"}}},"description":"Get the weather for a location."}}",
457
+ "openinference.span.kind": "LLM",
458
+ "output.mime_type": "application/json",
459
+ "output.value": "{"id":"chatcmpl-8hhqZDFTRD0vzExhqWnMLE7viVl7E","object":"chat.completion","created":1705427343,"model":"gpt-3.5-turbo-0613","choices":[{"index":0,"message":{"role":"assistant","content":null,"tool_calls":[{"id":"call_5ERYvu4iTGSvDlcDQjDP3g3J","type":"function","function":{"name":"getCurrentLocation","arguments":"{}"}}]},"logprobs":null,"finish_reason":"tool_calls"}],"usage":{"prompt_tokens":70,"completion_tokens":7,"total_tokens":77},"system_fingerprint":null}",
460
+ }
461
+ `);
453
462
  expect(span2.name).toBe("OpenAI Chat Completions");
454
463
  expect(span2.attributes).toMatchInlineSnapshot(`
455
464
  {
@@ -469,6 +478,8 @@ describe("OpenAIInstrumentation", () => {
469
478
  "location": "Boston"
470
479
  }",
471
480
  "llm.output_messages.0.message.tool_calls.0.tool_call.function.name": "getWeather",
481
+ "llm.provider": "openai",
482
+ "llm.system": "openai",
472
483
  "llm.token_count.completion": 15,
473
484
  "llm.token_count.prompt": 86,
474
485
  "llm.token_count.total": 101,
@@ -502,6 +513,8 @@ describe("OpenAIInstrumentation", () => {
502
513
  "llm.model_name": "gpt-3.5-turbo-0613",
503
514
  "llm.output_messages.0.message.content": "The weather in Boston this week is expected to be rainy with a temperature of 52 degrees.",
504
515
  "llm.output_messages.0.message.role": "assistant",
516
+ "llm.provider": "openai",
517
+ "llm.system": "openai",
505
518
  "llm.token_count.completion": 20,
506
519
  "llm.token_count.prompt": 121,
507
520
  "llm.token_count.total": 141,
@@ -646,6 +659,8 @@ describe("OpenAIInstrumentation", () => {
646
659
  "llm.output_messages.0.message.role": "assistant",
647
660
  "llm.output_messages.0.message.tool_calls.0.tool_call.function.arguments": "{}",
648
661
  "llm.output_messages.0.message.tool_calls.0.tool_call.function.name": "getWeather",
662
+ "llm.provider": "openai",
663
+ "llm.system": "openai",
649
664
  "llm.tools.0.tool.json_schema": "{"type":"function","function":{"name":"getCurrentLocation","parameters":{"type":"object","properties":{}},"description":"Get the current location of the user."}}",
650
665
  "llm.tools.1.tool.json_schema": "{"type":"function","function":{"name":"getWeather","description":"Get the weather for a location.","parameters":{"type":"object","properties":{"location":{"type":"string"}}}}}",
651
666
  "openinference.span.kind": "LLM",
@@ -761,22 +776,24 @@ describe("OpenAIInstrumentation", () => {
761
776
  const span = spans[0];
762
777
  expect(span.name).toBe("OpenAI Chat Completions");
763
778
  expect(span.attributes).toMatchInlineSnapshot(`
764
- {
765
- "input.mime_type": "application/json",
766
- "input.value": "{"messages":[{"role":"user","content":"What's the weather today?"}],"model":"gpt-3.5-turbo","functions":[{"name":"getWeather","description":"Get the weather for a location.","parameters":{"type":"object","properties":{"location":{"type":"string"}}}},{"name":"getCurrentLocation","description":"Get the current location of the user.","parameters":{"type":"object","properties":{}}}],"stream":true}",
767
- "llm.input_messages.0.message.content": "What's the weather today?",
768
- "llm.input_messages.0.message.role": "user",
769
- "llm.invocation_parameters": "{"model":"gpt-3.5-turbo","functions":[{"name":"getWeather","description":"Get the weather for a location.","parameters":{"type":"object","properties":{"location":{"type":"string"}}}},{"name":"getCurrentLocation","description":"Get the current location of the user.","parameters":{"type":"object","properties":{}}}],"stream":true}",
770
- "llm.model_name": "gpt-3.5-turbo",
771
- "llm.output_messages.0.message.content": "",
772
- "llm.output_messages.0.message.function_call_arguments_json": "{}",
773
- "llm.output_messages.0.message.function_call_name": "getWeather",
774
- "llm.output_messages.0.message.role": "assistant",
775
- "openinference.span.kind": "LLM",
776
- "output.mime_type": "text/plain",
777
- "output.value": "",
778
- }
779
- `);
779
+ {
780
+ "input.mime_type": "application/json",
781
+ "input.value": "{"messages":[{"role":"user","content":"What's the weather today?"}],"model":"gpt-3.5-turbo","functions":[{"name":"getWeather","description":"Get the weather for a location.","parameters":{"type":"object","properties":{"location":{"type":"string"}}}},{"name":"getCurrentLocation","description":"Get the current location of the user.","parameters":{"type":"object","properties":{}}}],"stream":true}",
782
+ "llm.input_messages.0.message.content": "What's the weather today?",
783
+ "llm.input_messages.0.message.role": "user",
784
+ "llm.invocation_parameters": "{"model":"gpt-3.5-turbo","functions":[{"name":"getWeather","description":"Get the weather for a location.","parameters":{"type":"object","properties":{"location":{"type":"string"}}}},{"name":"getCurrentLocation","description":"Get the current location of the user.","parameters":{"type":"object","properties":{}}}],"stream":true}",
785
+ "llm.model_name": "gpt-3.5-turbo",
786
+ "llm.output_messages.0.message.content": "",
787
+ "llm.output_messages.0.message.function_call_arguments_json": "{}",
788
+ "llm.output_messages.0.message.function_call_name": "getWeather",
789
+ "llm.output_messages.0.message.role": "assistant",
790
+ "llm.provider": "openai",
791
+ "llm.system": "openai",
792
+ "openinference.span.kind": "LLM",
793
+ "output.mime_type": "text/plain",
794
+ "output.value": "",
795
+ }
796
+ `);
780
797
  }));
781
798
  it("should not emit a span if tracing is suppressed", () => __awaiter(void 0, void 0, void 0, function* () {
782
799
  const response = {
@@ -869,26 +886,163 @@ describe("OpenAIInstrumentation", () => {
869
886
  const span = spans[0];
870
887
  expect(span.name).toBe("OpenAI Chat Completions");
871
888
  expect(span.attributes).toMatchInlineSnapshot(`
872
- {
873
- "input.mime_type": "application/json",
874
- "input.value": "{"messages":[{"role":"user","content":[{"type":"text","text":"Say this is a test"},{"type":"image_url","image_url":{"url":"data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=="}}]}],"model":"gpt-3.5-turbo"}",
875
- "llm.input_messages.0.message.contents.0.message_content.text": "Say this is a test",
876
- "llm.input_messages.0.message.contents.0.message_content.type": "text",
877
- "llm.input_messages.0.message.contents.1.message_content.image": "data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==",
878
- "llm.input_messages.0.message.contents.1.message_content.type": "image",
879
- "llm.input_messages.0.message.role": "user",
880
- "llm.invocation_parameters": "{"model":"gpt-3.5-turbo"}",
881
- "llm.model_name": "gpt-3.5-turbo-0613",
882
- "llm.output_messages.0.message.content": "This is a test.",
883
- "llm.output_messages.0.message.role": "assistant",
884
- "llm.token_count.completion": 5,
885
- "llm.token_count.prompt": 12,
886
- "llm.token_count.total": 17,
887
- "openinference.span.kind": "LLM",
888
- "output.mime_type": "application/json",
889
- "output.value": "{"id":"chatcmpl-8adq9JloOzNZ9TyuzrKyLpGXexh6p","object":"chat.completion","created":1703743645,"model":"gpt-3.5-turbo-0613","choices":[{"index":0,"message":{"role":"assistant","content":"This is a test."},"logprobs":null,"finish_reason":"stop"}],"usage":{"prompt_tokens":12,"completion_tokens":5,"total_tokens":17}}",
890
- }
891
- `);
889
+ {
890
+ "input.mime_type": "application/json",
891
+ "input.value": "{"messages":[{"role":"user","content":[{"type":"text","text":"Say this is a test"},{"type":"image_url","image_url":{"url":"data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=="}}]}],"model":"gpt-3.5-turbo"}",
892
+ "llm.input_messages.0.message.contents.0.message_content.text": "Say this is a test",
893
+ "llm.input_messages.0.message.contents.0.message_content.type": "text",
894
+ "llm.input_messages.0.message.contents.1.message_content.image": "data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==",
895
+ "llm.input_messages.0.message.contents.1.message_content.type": "image",
896
+ "llm.input_messages.0.message.role": "user",
897
+ "llm.invocation_parameters": "{"model":"gpt-3.5-turbo"}",
898
+ "llm.model_name": "gpt-3.5-turbo-0613",
899
+ "llm.output_messages.0.message.content": "This is a test.",
900
+ "llm.output_messages.0.message.role": "assistant",
901
+ "llm.provider": "openai",
902
+ "llm.system": "openai",
903
+ "llm.token_count.completion": 5,
904
+ "llm.token_count.prompt": 12,
905
+ "llm.token_count.total": 17,
906
+ "openinference.span.kind": "LLM",
907
+ "output.mime_type": "application/json",
908
+ "output.value": "{"id":"chatcmpl-8adq9JloOzNZ9TyuzrKyLpGXexh6p","object":"chat.completion","created":1703743645,"model":"gpt-3.5-turbo-0613","choices":[{"index":0,"message":{"role":"assistant","content":"This is a test."},"logprobs":null,"finish_reason":"stop"}],"usage":{"prompt_tokens":12,"completion_tokens":5,"total_tokens":17}}",
909
+ }
910
+ `);
911
+ }));
912
+ it("should capture context attributes and add them to spans", () => __awaiter(void 0, void 0, void 0, function* () {
913
+ const response = {
914
+ id: "cmpl-8fZu1H3VijJUWev9asnxaYyQvJTC9",
915
+ object: "text_completion",
916
+ created: 1704920149,
917
+ model: "gpt-3.5-turbo-instruct",
918
+ choices: [
919
+ {
920
+ text: "This is a test",
921
+ index: 0,
922
+ logprobs: null,
923
+ finish_reason: "stop",
924
+ },
925
+ ],
926
+ usage: { prompt_tokens: 12, completion_tokens: 5, total_tokens: 17 },
927
+ };
928
+ // Mock out the completions endpoint
929
+ jest.spyOn(openai, "post").mockImplementation(
930
+ // @ts-expect-error the response type is not correct - this is just for testing
931
+ () => __awaiter(void 0, void 0, void 0, function* () {
932
+ return response;
933
+ }));
934
+ yield api_1.context.with((0, openinference_core_1.setSession)((0, openinference_core_1.setPromptTemplate)(api_1.context.active(), {
935
+ template: "hello {name}",
936
+ variables: { name: "world" },
937
+ version: "V1.0",
938
+ }), { sessionId: "session-id" }), () => __awaiter(void 0, void 0, void 0, function* () {
939
+ yield openai.completions.create({
940
+ prompt: "Say this is a test",
941
+ model: "gpt-3.5-turbo-instruct",
942
+ });
943
+ }));
944
+ const spans = memoryExporter.getFinishedSpans();
945
+ expect(spans.length).toBe(1);
946
+ const span = spans[0];
947
+ expect(span.name).toBe("OpenAI Completions");
948
+ expect(span.attributes).toMatchInlineSnapshot(`
949
+ {
950
+ "input.mime_type": "text/plain",
951
+ "input.value": "Say this is a test",
952
+ "llm.invocation_parameters": "{"model":"gpt-3.5-turbo-instruct"}",
953
+ "llm.model_name": "gpt-3.5-turbo-instruct",
954
+ "llm.prompt_template.template": "hello {name}",
955
+ "llm.prompt_template.variables": "{"name":"world"}",
956
+ "llm.prompt_template.version": "V1.0",
957
+ "llm.provider": "openai",
958
+ "llm.system": "openai",
959
+ "llm.token_count.completion": 5,
960
+ "llm.token_count.prompt": 12,
961
+ "llm.token_count.total": 17,
962
+ "openinference.span.kind": "LLM",
963
+ "output.mime_type": "text/plain",
964
+ "output.value": "This is a test",
965
+ "session.id": "session-id",
966
+ }
967
+ `);
968
+ }));
969
+ });
970
+ describe("OpenAIInstrumentation with TraceConfig", () => {
971
+ const tracerProvider = new sdk_trace_node_1.NodeTracerProvider();
972
+ tracerProvider.register();
973
+ const instrumentation = new src_1.OpenAIInstrumentation({
974
+ traceConfig: { hideInputs: true },
975
+ });
976
+ instrumentation.disable();
977
+ let openai;
978
+ instrumentation.setTracerProvider(tracerProvider);
979
+ tracerProvider.addSpanProcessor(new sdk_trace_base_1.SimpleSpanProcessor(memoryExporter));
980
+ // @ts-expect-error the moduleExports property is private. This is needed to make the test work with auto-mocking
981
+ instrumentation._modules[0].moduleExports = OpenAI;
982
+ beforeAll(() => {
983
+ instrumentation.enable();
984
+ openai = new OpenAI.OpenAI({
985
+ apiKey: "fake-api-key",
986
+ });
987
+ });
988
+ afterAll(() => {
989
+ instrumentation.disable();
990
+ });
991
+ beforeEach(() => {
992
+ memoryExporter.reset();
993
+ });
994
+ afterEach(() => {
995
+ jest.clearAllMocks();
996
+ });
997
+ it("is patched", () => {
998
+ expect(OpenAI.openInferencePatched).toBe(true);
999
+ expect((0, src_1.isPatched)()).toBe(true);
1000
+ });
1001
+ it("should respect a trace config and mask attributes accordingly", () => __awaiter(void 0, void 0, void 0, function* () {
1002
+ const response = {
1003
+ id: "cmpl-8fZu1H3VijJUWev9asnxaYyQvJTC9",
1004
+ object: "text_completion",
1005
+ created: 1704920149,
1006
+ model: "gpt-3.5-turbo-instruct",
1007
+ choices: [
1008
+ {
1009
+ text: "This is a test",
1010
+ index: 0,
1011
+ logprobs: null,
1012
+ finish_reason: "stop",
1013
+ },
1014
+ ],
1015
+ usage: { prompt_tokens: 12, completion_tokens: 5, total_tokens: 17 },
1016
+ };
1017
+ // Mock out the completions endpoint
1018
+ jest.spyOn(openai, "post").mockImplementation(
1019
+ // @ts-expect-error the response type is not correct - this is just for testing
1020
+ () => __awaiter(void 0, void 0, void 0, function* () {
1021
+ return response;
1022
+ }));
1023
+ yield openai.completions.create({
1024
+ prompt: "Say this is a test",
1025
+ model: "gpt-3.5-turbo-instruct",
1026
+ });
1027
+ const spans = memoryExporter.getFinishedSpans();
1028
+ expect(spans.length).toBe(1);
1029
+ const span = spans[0];
1030
+ expect(span.name).toBe("OpenAI Completions");
1031
+ expect(span.attributes).toMatchInlineSnapshot(`
1032
+ {
1033
+ "input.value": "__REDACTED__",
1034
+ "llm.invocation_parameters": "{"model":"gpt-3.5-turbo-instruct"}",
1035
+ "llm.model_name": "gpt-3.5-turbo-instruct",
1036
+ "llm.provider": "openai",
1037
+ "llm.system": "openai",
1038
+ "llm.token_count.completion": 5,
1039
+ "llm.token_count.prompt": 12,
1040
+ "llm.token_count.total": 17,
1041
+ "openinference.span.kind": "LLM",
1042
+ "output.mime_type": "text/plain",
1043
+ "output.value": "This is a test",
1044
+ }
1045
+ `);
892
1046
  }));
893
1047
  });
894
1048
  //# sourceMappingURL=openai.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"openai.test.js","sourceRoot":"","sources":["../../test/openai.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openai.test.js","sourceRoot":"","sources":["../../test/openai.test.ts"],"names":[],"mappings":"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"}