openlit 1.7.0 → 1.7.1
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.
- package/README.md +1 -1
- package/dist/helpers.js +8 -4
- package/dist/helpers.js.map +1 -1
- package/dist/instrumentation/__tests__/openai-wrapper.test.js +81 -18
- package/dist/instrumentation/__tests__/openai-wrapper.test.js.map +1 -1
- package/dist/instrumentation/openai/index.js +11 -0
- package/dist/instrumentation/openai/index.js.map +1 -1
- package/dist/instrumentation/openai/wrapper.d.ts +30 -1
- package/dist/instrumentation/openai/wrapper.js +459 -31
- package/dist/instrumentation/openai/wrapper.js.map +1 -1
- package/dist/semantic-convention.d.ts +30 -0
- package/dist/semantic-convention.js +47 -12
- package/dist/semantic-convention.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -161,7 +161,7 @@ Now that your LLM observability data is being collected and sent to configured O
|
|
|
161
161
|
|
|
162
162
|
If you want to use OpenLIT's Observability Dashboard to monitor LLM usage—like cost, tokens, and user interactions—please check out our [Quickstart Guide](https://docs.openlit.io/latest/quickstart).
|
|
163
163
|
|
|
164
|
-
If you're sending metrics and traces to other observability tools, take a look at our [Connections Guide](https://docs.openlit.io/latest/
|
|
164
|
+
If you're sending metrics and traces to other observability tools, take a look at our [Connections Guide](https://docs.openlit.io/latest/destinations/intro) to start using a pre-built dashboard we have created for these tools.
|
|
165
165
|
|
|
166
166
|

|
|
167
167
|
|
package/dist/helpers.js
CHANGED
|
@@ -19,9 +19,10 @@ class OpenLitHelper {
|
|
|
19
19
|
}
|
|
20
20
|
static getChatModelCost(model, pricingInfo, promptTokens, completionTokens) {
|
|
21
21
|
try {
|
|
22
|
-
|
|
22
|
+
const cost = ((promptTokens / OpenLitHelper.PROMPT_TOKEN_FACTOR) * pricingInfo.chat[model].promptPrice +
|
|
23
23
|
(completionTokens / OpenLitHelper.PROMPT_TOKEN_FACTOR) *
|
|
24
24
|
pricingInfo.chat[model].completionPrice);
|
|
25
|
+
return isNaN(cost) ? 0 : cost;
|
|
25
26
|
}
|
|
26
27
|
catch (error) {
|
|
27
28
|
console.error(`Error in getChatModelCost: ${error}`);
|
|
@@ -30,7 +31,8 @@ class OpenLitHelper {
|
|
|
30
31
|
}
|
|
31
32
|
static getEmbedModelCost(model, pricingInfo, promptTokens) {
|
|
32
33
|
try {
|
|
33
|
-
|
|
34
|
+
const cost = (promptTokens / OpenLitHelper.PROMPT_TOKEN_FACTOR) * pricingInfo.embeddings[model];
|
|
35
|
+
return isNaN(cost) ? 0 : cost;
|
|
34
36
|
}
|
|
35
37
|
catch (error) {
|
|
36
38
|
console.error(`Error in getEmbedModelCost: ${error}`);
|
|
@@ -39,7 +41,8 @@ class OpenLitHelper {
|
|
|
39
41
|
}
|
|
40
42
|
static getImageModelCost(model, pricingInfo, size, quality) {
|
|
41
43
|
try {
|
|
42
|
-
|
|
44
|
+
const cost = pricingInfo.images[model][quality][size];
|
|
45
|
+
return isNaN(cost) ? 0 : cost;
|
|
43
46
|
}
|
|
44
47
|
catch (error) {
|
|
45
48
|
console.error(`Error in getImageModelCost: ${error}`);
|
|
@@ -48,7 +51,8 @@ class OpenLitHelper {
|
|
|
48
51
|
}
|
|
49
52
|
static getAudioModelCost(model, pricingInfo, prompt) {
|
|
50
53
|
try {
|
|
51
|
-
|
|
54
|
+
const cost = (prompt.length / OpenLitHelper.PROMPT_TOKEN_FACTOR) * pricingInfo.audio[model];
|
|
55
|
+
return isNaN(cost) ? 0 : cost;
|
|
52
56
|
}
|
|
53
57
|
catch (error) {
|
|
54
58
|
console.error(`Error in getAudioModelCost: ${error}`);
|
package/dist/helpers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":";;AAAA,6CAA8D;AAC9D,4CAA0D;AAE1D,MAAqB,aAAa;IAGhC,MAAM,CAAC,YAAY,CAAC,IAAY,EAAE,KAAa;QAC7C,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAA,8BAAgB,EAAC,KAAsB,CAAC,CAAC;YAC1D,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;QACtC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,0BAA0B,KAAK,EAAE,CAAC,CAAC;YACjD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,IAAY;QAC/B,MAAM,QAAQ,GAAG,IAAA,8BAAgB,EAAC,MAAM,CAAC,CAAC;QAC1C,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;IACtC,CAAC;IAED,MAAM,CAAC,gBAAgB,CACrB,KAAa,EACb,WAAgB,EAChB,YAAoB,EACpB,gBAAwB;QAExB,IAAI,CAAC;YACH,
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,6 +18,7 @@ describe('OpenAIWrapper', () => {
|
|
|
18
18
|
beforeEach(() => {
|
|
19
19
|
span = mockTracer.startSpan('test-span');
|
|
20
20
|
span.setAttribute = jest.fn();
|
|
21
|
+
span.addEvent = jest.fn();
|
|
21
22
|
jest.clearAllMocks();
|
|
22
23
|
});
|
|
23
24
|
afterEach(() => {
|
|
@@ -25,12 +26,19 @@ describe('OpenAIWrapper', () => {
|
|
|
25
26
|
});
|
|
26
27
|
describe('_chatCompletion', () => {
|
|
27
28
|
it('should call recordMetrics after span ends', async () => {
|
|
28
|
-
const mockArgs = [{
|
|
29
|
+
const mockArgs = [{ messages: [{ role: 'user', content: 'test message' }] }];
|
|
29
30
|
const mockResponse = {
|
|
30
|
-
|
|
31
|
-
|
|
31
|
+
id: '123',
|
|
32
|
+
model: 'gpt-3.5-turbo',
|
|
33
|
+
usage: { prompt_tokens: 10, completion_tokens: 20, total_tokens: 30 },
|
|
34
|
+
choices: [
|
|
35
|
+
{
|
|
36
|
+
message: { content: 'response text', role: 'assistant' },
|
|
37
|
+
finish_reason: 'stop',
|
|
38
|
+
},
|
|
39
|
+
],
|
|
32
40
|
};
|
|
33
|
-
const mockGenAIEndpoint = 'openai.
|
|
41
|
+
const mockGenAIEndpoint = 'openai.resources.chat.completions';
|
|
34
42
|
jest
|
|
35
43
|
.spyOn(wrapper_1.default, '_chatCompletionCommonSetter')
|
|
36
44
|
.mockImplementationOnce(async ({ genAIEndpoint, span }) => {
|
|
@@ -39,7 +47,7 @@ describe('OpenAIWrapper', () => {
|
|
|
39
47
|
span.setAttribute(semantic_convention_1.default.GEN_AI_REQUEST_TEMPERATURE, 0.7);
|
|
40
48
|
return {
|
|
41
49
|
genAIEndpoint,
|
|
42
|
-
model: '
|
|
50
|
+
model: 'gpt-3.5-turbo',
|
|
43
51
|
user: 'test-user',
|
|
44
52
|
cost: 0.5,
|
|
45
53
|
aiSystem: 'openai',
|
|
@@ -53,7 +61,7 @@ describe('OpenAIWrapper', () => {
|
|
|
53
61
|
});
|
|
54
62
|
expect(base_wrapper_1.default.recordMetrics).toHaveBeenCalledWith(span, {
|
|
55
63
|
genAIEndpoint: mockGenAIEndpoint,
|
|
56
|
-
model: '
|
|
64
|
+
model: 'gpt-3.5-turbo',
|
|
57
65
|
user: 'test-user',
|
|
58
66
|
cost: 0.5,
|
|
59
67
|
aiSystem: 'openai',
|
|
@@ -64,7 +72,7 @@ describe('OpenAIWrapper', () => {
|
|
|
64
72
|
it('should set span attributes and return metric parameters', async () => {
|
|
65
73
|
const mockArgs = [
|
|
66
74
|
{
|
|
67
|
-
|
|
75
|
+
messages: [{ role: 'user', content: 'test message' }],
|
|
68
76
|
max_tokens: 100,
|
|
69
77
|
temperature: 0.7,
|
|
70
78
|
top_p: 1,
|
|
@@ -72,23 +80,29 @@ describe('OpenAIWrapper', () => {
|
|
|
72
80
|
presence_penalty: 2,
|
|
73
81
|
frequency_penalty: 3,
|
|
74
82
|
seed: 3,
|
|
75
|
-
stream:
|
|
83
|
+
stream: false,
|
|
84
|
+
stop: ['STOP'],
|
|
76
85
|
},
|
|
77
86
|
];
|
|
78
87
|
const mockResult = {
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
usage: {
|
|
82
|
-
|
|
83
|
-
|
|
88
|
+
id: '123',
|
|
89
|
+
model: 'gpt-3.5-turbo',
|
|
90
|
+
usage: {
|
|
91
|
+
prompt_tokens: 10,
|
|
92
|
+
completion_tokens: 20,
|
|
93
|
+
total_tokens: 30,
|
|
94
|
+
completion_tokens_details: { reasoning_tokens: 5 },
|
|
95
|
+
},
|
|
84
96
|
choices: [
|
|
85
97
|
{
|
|
98
|
+
message: { content: 'response text', role: 'assistant' },
|
|
86
99
|
finish_reason: 'stop',
|
|
87
100
|
},
|
|
88
101
|
],
|
|
89
|
-
|
|
102
|
+
system_fingerprint: 'fp_test',
|
|
103
|
+
service_tier: 'default',
|
|
90
104
|
};
|
|
91
|
-
const mockGenAIEndpoint = 'openai.
|
|
105
|
+
const mockGenAIEndpoint = 'openai.resources.chat.completions';
|
|
92
106
|
jest.restoreAllMocks();
|
|
93
107
|
jest.spyOn(config_1.default, 'updatePricingJson').mockResolvedValue({});
|
|
94
108
|
jest.spyOn(helpers_1.default, 'getChatModelCost').mockReturnValue(0.5);
|
|
@@ -98,21 +112,70 @@ describe('OpenAIWrapper', () => {
|
|
|
98
112
|
result: mockResult,
|
|
99
113
|
span,
|
|
100
114
|
});
|
|
115
|
+
// Basic request parameters
|
|
101
116
|
expect(span.setAttribute).toHaveBeenCalledWith(semantic_convention_1.default.GEN_AI_REQUEST_TOP_P, 1);
|
|
102
117
|
expect(span.setAttribute).toHaveBeenCalledWith(semantic_convention_1.default.GEN_AI_REQUEST_MAX_TOKENS, 100);
|
|
103
118
|
expect(span.setAttribute).toHaveBeenCalledWith(semantic_convention_1.default.GEN_AI_REQUEST_TEMPERATURE, 0.7);
|
|
104
119
|
expect(span.setAttribute).toHaveBeenCalledWith(semantic_convention_1.default.GEN_AI_REQUEST_PRESENCE_PENALTY, 2);
|
|
105
120
|
expect(span.setAttribute).toHaveBeenCalledWith(semantic_convention_1.default.GEN_AI_REQUEST_FREQUENCY_PENALTY, 3);
|
|
106
|
-
expect(span.setAttribute).toHaveBeenCalledWith(semantic_convention_1.default.GEN_AI_REQUEST_SEED, 3);
|
|
107
|
-
expect(span.setAttribute).toHaveBeenCalledWith(semantic_convention_1.default.GEN_AI_REQUEST_IS_STREAM,
|
|
121
|
+
expect(span.setAttribute).toHaveBeenCalledWith(semantic_convention_1.default.GEN_AI_REQUEST_SEED, '3');
|
|
122
|
+
expect(span.setAttribute).toHaveBeenCalledWith(semantic_convention_1.default.GEN_AI_REQUEST_IS_STREAM, false);
|
|
123
|
+
// New attributes
|
|
124
|
+
expect(span.setAttribute).toHaveBeenCalledWith(semantic_convention_1.default.GEN_AI_REQUEST_STOP_SEQUENCES, ['STOP']);
|
|
125
|
+
expect(span.setAttribute).toHaveBeenCalledWith(semantic_convention_1.default.GEN_AI_RESPONSE_MODEL, 'gpt-3.5-turbo');
|
|
126
|
+
expect(span.setAttribute).toHaveBeenCalledWith(semantic_convention_1.default.GEN_AI_RESPONSE_SYSTEM_FINGERPRINT, 'fp_test');
|
|
127
|
+
expect(span.setAttribute).toHaveBeenCalledWith(semantic_convention_1.default.GEN_AI_REQUEST_SERVICE_TIER, 'default');
|
|
128
|
+
expect(span.setAttribute).toHaveBeenCalledWith(semantic_convention_1.default.GEN_AI_CLIENT_TOKEN_USAGE, 30);
|
|
129
|
+
expect(span.setAttribute).toHaveBeenCalledWith(semantic_convention_1.default.GEN_AI_USAGE_COMPLETION_TOKENS_DETAILS_REASONING, 5);
|
|
108
130
|
expect(metricParams).toEqual({
|
|
109
131
|
genAIEndpoint: mockGenAIEndpoint,
|
|
110
|
-
model: '
|
|
132
|
+
model: 'gpt-3.5-turbo',
|
|
111
133
|
user: 'test-user',
|
|
112
134
|
cost: 0.5,
|
|
113
135
|
aiSystem: 'openai',
|
|
114
136
|
});
|
|
115
137
|
});
|
|
138
|
+
it('should handle tool calls properly', async () => {
|
|
139
|
+
const mockArgs = [
|
|
140
|
+
{
|
|
141
|
+
messages: [{ role: 'user', content: 'test message' }],
|
|
142
|
+
tools: [{ type: 'function', function: { name: 'get_weather' } }],
|
|
143
|
+
},
|
|
144
|
+
];
|
|
145
|
+
const mockResult = {
|
|
146
|
+
id: '123',
|
|
147
|
+
model: 'gpt-3.5-turbo',
|
|
148
|
+
usage: { prompt_tokens: 10, completion_tokens: 20, total_tokens: 30 },
|
|
149
|
+
choices: [
|
|
150
|
+
{
|
|
151
|
+
message: {
|
|
152
|
+
content: null,
|
|
153
|
+
role: 'assistant',
|
|
154
|
+
tool_calls: [
|
|
155
|
+
{
|
|
156
|
+
id: 'call_123',
|
|
157
|
+
type: 'function',
|
|
158
|
+
function: { name: 'get_weather', arguments: '{"location":"SF"}' },
|
|
159
|
+
},
|
|
160
|
+
],
|
|
161
|
+
},
|
|
162
|
+
finish_reason: 'tool_calls',
|
|
163
|
+
},
|
|
164
|
+
],
|
|
165
|
+
};
|
|
166
|
+
jest.spyOn(config_1.default, 'updatePricingJson').mockResolvedValue({});
|
|
167
|
+
jest.spyOn(helpers_1.default, 'getChatModelCost').mockReturnValue(0.5);
|
|
168
|
+
await wrapper_1.default._chatCompletionCommonSetter({
|
|
169
|
+
args: mockArgs,
|
|
170
|
+
genAIEndpoint: 'openai.resources.chat.completions',
|
|
171
|
+
result: mockResult,
|
|
172
|
+
span,
|
|
173
|
+
});
|
|
174
|
+
expect(span.setAttribute).toHaveBeenCalledWith(semantic_convention_1.default.GEN_AI_TOOL_NAME, 'get_weather');
|
|
175
|
+
expect(span.setAttribute).toHaveBeenCalledWith(semantic_convention_1.default.GEN_AI_TOOL_CALL_ID, 'call_123');
|
|
176
|
+
expect(span.setAttribute).toHaveBeenCalledWith(semantic_convention_1.default.GEN_AI_TOOL_CALL_ARGUMENTS, ['{"location":"SF"}']);
|
|
177
|
+
expect(span.setAttribute).toHaveBeenCalledWith(semantic_convention_1.default.GEN_AI_TOOL_TYPE, 'function');
|
|
178
|
+
});
|
|
116
179
|
});
|
|
117
180
|
});
|
|
118
181
|
//# sourceMappingURL=openai-wrapper.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai-wrapper.test.js","sourceRoot":"","sources":["../../../src/instrumentation/__tests__/openai-wrapper.test.ts"],"names":[],"mappings":";;;;;AAAA,4CAAiD;AACjD,gEAA8C;AAC9C,0DAAyC;AACzC,4DAA0C;AAC1C,mEAA0C;AAC1C,oFAA2D;AAE3D,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;AACjC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;AAClC,IAAI,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;AAEvD,MAAM,UAAU,GAAG,WAAK,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;AAElD,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,IAAI,IAAU,CAAC;IAEf,UAAU,CAAC,GAAG,EAAE;QACd,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QACzC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAC9B,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,GAAG,EAAE,CAAC;IACb,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC/B,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;YACzD,MAAM,QAAQ,GAAG,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"openai-wrapper.test.js","sourceRoot":"","sources":["../../../src/instrumentation/__tests__/openai-wrapper.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -44,12 +44,20 @@ class OpenlitOpenAIInstrumentation extends instrumentation_1.InstrumentationBase
|
|
|
44
44
|
if ((0, instrumentation_1.isWrapped)(moduleExports.OpenAI.Audio.Speech.prototype)) {
|
|
45
45
|
this._unwrap(moduleExports.OpenAI.Audio.Speech.prototype, 'create');
|
|
46
46
|
}
|
|
47
|
+
// Check if Responses API exists (OpenAI SDK >= 1.92.0)
|
|
48
|
+
if (moduleExports.OpenAI.Responses && (0, instrumentation_1.isWrapped)(moduleExports.OpenAI.Responses.prototype.create)) {
|
|
49
|
+
this._unwrap(moduleExports.OpenAI.Responses.prototype, 'create');
|
|
50
|
+
}
|
|
47
51
|
this._wrap(moduleExports.OpenAI.Chat.Completions.prototype, 'create', wrapper_1.default._patchChatCompletionCreate(this.tracer));
|
|
48
52
|
this._wrap(moduleExports.OpenAI.Embeddings.prototype, 'create', wrapper_1.default._patchEmbedding(this.tracer));
|
|
49
53
|
this._wrap(moduleExports.OpenAI.FineTuning.Jobs.prototype, 'create', wrapper_1.default._patchFineTune(this.tracer));
|
|
50
54
|
this._wrap(moduleExports.OpenAI.Images.prototype, 'generate', wrapper_1.default._patchImageGenerate(this.tracer));
|
|
51
55
|
this._wrap(moduleExports.OpenAI.Images.prototype, 'createVariation', wrapper_1.default._patchImageVariation(this.tracer));
|
|
52
56
|
this._wrap(moduleExports.OpenAI.Audio.Speech.prototype, 'create', wrapper_1.default._patchAudioCreate(this.tracer));
|
|
57
|
+
// Patch Responses API if available (OpenAI SDK >= 1.92.0)
|
|
58
|
+
if (moduleExports.OpenAI.Responses) {
|
|
59
|
+
this._wrap(moduleExports.OpenAI.Responses.prototype, 'create', wrapper_1.default._patchResponsesCreate(this.tracer));
|
|
60
|
+
}
|
|
53
61
|
}
|
|
54
62
|
catch (e) {
|
|
55
63
|
console.error('Error in _patch method:', e);
|
|
@@ -62,6 +70,9 @@ class OpenlitOpenAIInstrumentation extends instrumentation_1.InstrumentationBase
|
|
|
62
70
|
this._unwrap(moduleExports.OpenAI.Images.prototype, 'generate');
|
|
63
71
|
this._unwrap(moduleExports.OpenAI.Images.prototype, 'createVariation');
|
|
64
72
|
this._unwrap(moduleExports.OpenAI.Audio.prototype, 'speech');
|
|
73
|
+
if (moduleExports.OpenAI.Responses) {
|
|
74
|
+
this._unwrap(moduleExports.OpenAI.Responses.prototype, 'create');
|
|
75
|
+
}
|
|
65
76
|
}
|
|
66
77
|
}
|
|
67
78
|
exports.default = OpenlitOpenAIInstrumentation;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/instrumentation/openai/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/instrumentation/openai/index.ts"],"names":[],"mappings":";;;;;AAAA,oEAKwC;AAExC,6CAAwD;AAExD,wDAAsC;AAItC,MAAqB,4BAA6B,SAAQ,qCAAmB;IAC3E,YAAY,SAAsC,EAAE;QAClD,KAAK,CAAC,GAAG,iCAAsB,yBAAyB,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAC7E,CAAC;IAES,IAAI;QACZ,MAAM,MAAM,GAAG,IAAI,qDAAmC,CACpD,QAAQ,EACR,CAAC,YAAY,CAAC,EACd,CAAC,aAAa,EAAE,EAAE;YAChB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YAC3B,OAAO,aAAa,CAAC;QACvB,CAAC,EACD,CAAC,aAAa,EAAE,EAAE;YAChB,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;gBAChC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC,CACF,CAAC;QACF,OAAO,CAAC,MAAM,CAAC,CAAC;IAClB,CAAC;IAEM,WAAW,CAAC,MAAW;QAC5B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;IAES,MAAM,CAAC,aAA4B;QAC3C,IAAI,CAAC;YACH,IAAI,IAAA,2BAAS,EAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;gBACtE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAC1E,CAAC;YAED,IAAI,IAAA,2BAAS,EAAC,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;gBAChE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YACpE,CAAC;YAED,IAAI,IAAA,2BAAS,EAAC,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;gBACrE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YACzE,CAAC;YAED,IAAI,IAAA,2BAAS,EAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC9D,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YAClE,CAAC;YAED,IAAI,IAAA,2BAAS,EAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,CAAC;gBACrE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;YACzE,CAAC;YAED,IAAI,IAAA,2BAAS,EAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC3D,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YACtE,CAAC;YAED,uDAAuD;YACvD,IAAK,aAAa,CAAC,MAAc,CAAC,SAAS,IAAI,IAAA,2BAAS,EAAE,aAAa,CAAC,MAAc,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;gBACnH,IAAI,CAAC,OAAO,CAAE,aAAa,CAAC,MAAc,CAAC,SAAS,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAC5E,CAAC;YAED,IAAI,CAAC,KAAK,CACR,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,EAC/C,QAAQ,EACR,iBAAa,CAAC,0BAA0B,CAAC,IAAI,CAAC,MAAM,CAAC,CACtD,CAAC;YAEF,IAAI,CAAC,KAAK,CACR,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,EACzC,QAAQ,EACR,iBAAa,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAC3C,CAAC;YAEF,IAAI,CAAC,KAAK,CACR,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,EAC9C,QAAQ,EACR,iBAAa,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAC1C,CAAC;YAEF,IAAI,CAAC,KAAK,CACR,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EACrC,UAAU,EACV,iBAAa,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CAC/C,CAAC;YAEF,IAAI,CAAC,KAAK,CACR,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EACrC,iBAAiB,EACjB,iBAAa,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,CAChD,CAAC;YAEF,IAAI,CAAC,KAAK,CACR,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,EAC3C,QAAQ,EACR,iBAAa,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAC7C,CAAC;YAEF,0DAA0D;YAC1D,IAAK,aAAa,CAAC,MAAc,CAAC,SAAS,EAAE,CAAC;gBAC5C,IAAI,CAAC,KAAK,CACP,aAAa,CAAC,MAAc,CAAC,SAAS,CAAC,SAAS,EACjD,QAAQ,EACR,iBAAa,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,CACjD,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,CAAC,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAES,QAAQ,CAAC,aAA4B;QAC7C,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACxE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAClE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAChE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QAChE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;QACvE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC7D,IAAK,aAAa,CAAC,MAAc,CAAC,SAAS,EAAE,CAAC;YAC5C,IAAI,CAAC,OAAO,CAAE,aAAa,CAAC,MAAc,CAAC,SAAS,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;CACF;AArHD,+CAqHC"}
|
|
@@ -15,11 +15,13 @@ declare class OpenAIWrapper extends BaseWrapper {
|
|
|
15
15
|
response: any;
|
|
16
16
|
span: Span;
|
|
17
17
|
}): AsyncGenerator<unknown, any, unknown>;
|
|
18
|
-
static _chatCompletionCommonSetter({ args, genAIEndpoint, result, span, }: {
|
|
18
|
+
static _chatCompletionCommonSetter({ args, genAIEndpoint, result, span, ttft, tbt, }: {
|
|
19
19
|
args: any[];
|
|
20
20
|
genAIEndpoint: string;
|
|
21
21
|
result: any;
|
|
22
22
|
span: Span;
|
|
23
|
+
ttft?: number;
|
|
24
|
+
tbt?: number;
|
|
23
25
|
}): Promise<{
|
|
24
26
|
genAIEndpoint: string;
|
|
25
27
|
model: any;
|
|
@@ -32,5 +34,32 @@ declare class OpenAIWrapper extends BaseWrapper {
|
|
|
32
34
|
static _patchImageGenerate(tracer: Tracer): any;
|
|
33
35
|
static _patchImageVariation(tracer: Tracer): any;
|
|
34
36
|
static _patchAudioCreate(tracer: Tracer): any;
|
|
37
|
+
static _patchResponsesCreate(tracer: Tracer): any;
|
|
38
|
+
static _responsesComplete({ args, genAIEndpoint, response, span, }: {
|
|
39
|
+
args: any[];
|
|
40
|
+
genAIEndpoint: string;
|
|
41
|
+
response: any;
|
|
42
|
+
span: Span;
|
|
43
|
+
}): Promise<any>;
|
|
44
|
+
static _responsesGenerator({ args, genAIEndpoint, response, span, }: {
|
|
45
|
+
args: any[];
|
|
46
|
+
genAIEndpoint: string;
|
|
47
|
+
response: any;
|
|
48
|
+
span: Span;
|
|
49
|
+
}): AsyncGenerator<unknown, any, unknown>;
|
|
50
|
+
static _responsesCommonSetter({ args, genAIEndpoint, result, span, ttft, tbt, }: {
|
|
51
|
+
args: any[];
|
|
52
|
+
genAIEndpoint: string;
|
|
53
|
+
result: any;
|
|
54
|
+
span: Span;
|
|
55
|
+
ttft?: number;
|
|
56
|
+
tbt?: number;
|
|
57
|
+
}): Promise<{
|
|
58
|
+
genAIEndpoint: string;
|
|
59
|
+
model: any;
|
|
60
|
+
user: string;
|
|
61
|
+
cost: number;
|
|
62
|
+
aiSystem: string;
|
|
63
|
+
}>;
|
|
35
64
|
}
|
|
36
65
|
export default OpenAIWrapper;
|