openlayer 0.13.11 → 0.13.13
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/CHANGELOG.md +16 -0
- package/lib/integrations/bedrockAgentTracer.d.ts +1 -1
- package/lib/integrations/bedrockAgentTracer.d.ts.map +1 -1
- package/lib/integrations/bedrockAgentTracer.js +8 -18
- package/lib/integrations/bedrockAgentTracer.js.map +1 -1
- package/lib/integrations/bedrockAgentTracer.mjs +8 -18
- package/lib/integrations/bedrockAgentTracer.mjs.map +1 -1
- package/lib/tracing/tracer.d.ts +2 -2
- package/lib/tracing/tracer.d.ts.map +1 -1
- package/lib/tracing/tracer.js +10 -9
- package/lib/tracing/tracer.js.map +1 -1
- package/lib/tracing/tracer.mjs +10 -9
- package/lib/tracing/tracer.mjs.map +1 -1
- package/package.json +2 -1
- package/src/lib/integrations/bedrockAgentTracer.ts +17 -18
- package/src/lib/tracing/tracer.ts +58 -38
- package/src/version.ts +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
- package/version.mjs +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.13.13 (2025-08-20)
|
|
4
|
+
|
|
5
|
+
Full Changelog: [v0.13.12...v0.13.13](https://github.com/openlayer-ai/openlayer-ts/compare/v0.13.12...v0.13.13)
|
|
6
|
+
|
|
7
|
+
### Chores
|
|
8
|
+
|
|
9
|
+
* remove redundant logs ([8882a70](https://github.com/openlayer-ai/openlayer-ts/commit/8882a70a5bb9e1cf88cb5b72b77dfe94ce4c97d3))
|
|
10
|
+
|
|
11
|
+
## 0.13.12 (2025-08-20)
|
|
12
|
+
|
|
13
|
+
Full Changelog: [v0.13.11...v0.13.12](https://github.com/openlayer-ai/openlayer-ts/compare/v0.13.11...v0.13.12)
|
|
14
|
+
|
|
15
|
+
### Bug Fixes
|
|
16
|
+
|
|
17
|
+
* support setting inference pipeline ID from runtime variables ([46fd370](https://github.com/openlayer-ai/openlayer-ts/commit/46fd3703e71dce5f35f9f58f5b582fb0942f7145))
|
|
18
|
+
|
|
3
19
|
## 0.13.11 (2025-08-20)
|
|
4
20
|
|
|
5
21
|
Full Changelog: [v0.13.10...v0.13.11](https://github.com/openlayer-ai/openlayer-ts/compare/v0.13.10...v0.13.11)
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare function traceBedrockAgent(client: any): any;
|
|
1
|
+
export declare function traceBedrockAgent(client: any, openlayerInferencePipelineId?: string): any;
|
|
2
2
|
//# sourceMappingURL=bedrockAgentTracer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bedrockAgentTracer.d.ts","sourceRoot":"","sources":["../../src/lib/integrations/bedrockAgentTracer.ts"],"names":[],"mappings":"AAuBA,wBAAgB,iBAAiB,
|
|
1
|
+
{"version":3,"file":"bedrockAgentTracer.d.ts","sourceRoot":"","sources":["../../src/lib/integrations/bedrockAgentTracer.ts"],"names":[],"mappings":"AAuBA,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,GAAG,EACX,4BAA4B,CAAC,EAAE,MAAM,GACpC,GAAG,CAsDL"}
|
|
@@ -22,7 +22,7 @@ catch (error) {
|
|
|
22
22
|
console.debug('Bedrock Agent tracing will not be available. Error:', error);
|
|
23
23
|
}
|
|
24
24
|
const tracer_1 = require("../tracing/tracer.js");
|
|
25
|
-
function traceBedrockAgent(client) {
|
|
25
|
+
function traceBedrockAgent(client, openlayerInferencePipelineId) {
|
|
26
26
|
if (!BedrockAgentRuntimeClient || !InvokeAgentCommand) {
|
|
27
27
|
throw new Error('AWS SDK for Bedrock Agent Runtime is not installed. Please install it with: npm install @aws-sdk/client-bedrock-agent-runtime');
|
|
28
28
|
}
|
|
@@ -32,23 +32,13 @@ function traceBedrockAgent(client) {
|
|
|
32
32
|
const hasInput = command?.input;
|
|
33
33
|
const hasAgentId = typeof command?.input?.agentId === 'string';
|
|
34
34
|
const hasInputText = typeof command?.input?.inputText === 'string';
|
|
35
|
-
console.debug('Bedrock command analysis:', {
|
|
36
|
-
command: command,
|
|
37
|
-
hasInput: hasInput,
|
|
38
|
-
hasAgentId: hasAgentId,
|
|
39
|
-
hasInputText: hasInputText,
|
|
40
|
-
constructorName: command?.constructor?.name,
|
|
41
|
-
input: command?.input,
|
|
42
|
-
});
|
|
43
35
|
// Check if this looks like an InvokeAgentCommand by checking for expected properties
|
|
44
36
|
const isInvokeAgentCommand = hasInput && hasAgentId && hasInputText;
|
|
45
37
|
if (!isInvokeAgentCommand) {
|
|
46
38
|
console.debug('Command is not an InvokeAgentCommand, passing through uninstrumented');
|
|
47
39
|
return originalSend(command, options);
|
|
48
40
|
}
|
|
49
|
-
console.debug('Command identified as InvokeAgentCommand, applying tracing');
|
|
50
41
|
const startTime = (0, performance_now_1.default)();
|
|
51
|
-
console.debug('startTime', startTime);
|
|
52
42
|
const input = command.input;
|
|
53
43
|
try {
|
|
54
44
|
// Call the original send method
|
|
@@ -57,7 +47,7 @@ function traceBedrockAgent(client) {
|
|
|
57
47
|
throw new Error('Completion is undefined');
|
|
58
48
|
}
|
|
59
49
|
// Create a traced async iterator that preserves the original
|
|
60
|
-
const tracedCompletion = createTracedCompletion(response.completion, input, startTime);
|
|
50
|
+
const tracedCompletion = createTracedCompletion(response.completion, input, startTime, openlayerInferencePipelineId);
|
|
61
51
|
// Return the response with the traced completion
|
|
62
52
|
return {
|
|
63
53
|
...response,
|
|
@@ -73,7 +63,7 @@ function traceBedrockAgent(client) {
|
|
|
73
63
|
}
|
|
74
64
|
exports.traceBedrockAgent = traceBedrockAgent;
|
|
75
65
|
// Create a traced completion that collects data while yielding original events
|
|
76
|
-
function createTracedCompletion(originalCompletion, input, startTime) {
|
|
66
|
+
function createTracedCompletion(originalCompletion, input, startTime, openlayerInferencePipelineId) {
|
|
77
67
|
return {
|
|
78
68
|
async *[Symbol.asyncIterator]() {
|
|
79
69
|
let firstTokenTime;
|
|
@@ -100,9 +90,11 @@ function createTracedCompletion(originalCompletion, input, startTime) {
|
|
|
100
90
|
const chunk = chunkEvent.chunk;
|
|
101
91
|
rawOutputChunks.push(chunk);
|
|
102
92
|
if (chunk.bytes) {
|
|
103
|
-
|
|
93
|
+
// Convert the object-based bytes to a proper Uint8Array
|
|
94
|
+
const bytesObject = chunk.bytes;
|
|
95
|
+
const byteArray = new Uint8Array(Object.values(bytesObject));
|
|
96
|
+
const decodedResponse = new TextDecoder('utf-8').decode(byteArray);
|
|
104
97
|
collectedOutput += decodedResponse;
|
|
105
|
-
completionTokens += 1;
|
|
106
98
|
}
|
|
107
99
|
if (chunk.attribution && chunk.attribution.citations) {
|
|
108
100
|
citations.push(...chunk.attribution.citations);
|
|
@@ -110,7 +102,6 @@ function createTracedCompletion(originalCompletion, input, startTime) {
|
|
|
110
102
|
}
|
|
111
103
|
// Handle trace events
|
|
112
104
|
if (chunkEvent.trace) {
|
|
113
|
-
console.debug(JSON.stringify(chunkEvent.trace, null, 2));
|
|
114
105
|
traceData.push(chunkEvent.trace);
|
|
115
106
|
if (chunkEvent.trace.trace) {
|
|
116
107
|
const trace = chunkEvent.trace.trace;
|
|
@@ -130,7 +121,6 @@ function createTracedCompletion(originalCompletion, input, startTime) {
|
|
|
130
121
|
}
|
|
131
122
|
// After the stream is complete, send trace data
|
|
132
123
|
const endTime = (0, performance_now_1.default)();
|
|
133
|
-
console.debug('endTime', endTime);
|
|
134
124
|
totalTokens = promptTokens + completionTokens;
|
|
135
125
|
// Send trace data to Openlayer
|
|
136
126
|
const inputs = extractInputs(input, traceData);
|
|
@@ -172,7 +162,7 @@ function createTracedCompletion(originalCompletion, input, startTime) {
|
|
|
172
162
|
startTime: startTime,
|
|
173
163
|
endTime: endTime,
|
|
174
164
|
};
|
|
175
|
-
(0, tracer_1.addChatCompletionStepToTrace)(traceStepData);
|
|
165
|
+
(0, tracer_1.addChatCompletionStepToTrace)(traceStepData, openlayerInferencePipelineId);
|
|
176
166
|
}
|
|
177
167
|
catch (error) {
|
|
178
168
|
console.error('Error in traced completion:', error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bedrockAgentTracer.js","sourceRoot":"","sources":["../../src/lib/integrations/bedrockAgentTracer.ts"],"names":[],"mappings":";;;;;;AAAA,sEAA6C;AAE7C,uCAAuC;AACvC,IAAI,yBAA8B,CAAC;AACnC,IAAI,kBAAuB,CAAC;AAC5B,IAAI,uBAA4B,CAAC;AACjC,IAAI,wBAA6B,CAAC;AAElC,IAAI;IACF,MAAM,aAAa,GAAG,OAAO,CAAC,uCAAuC,CAAC,CAAC;IACvE,yBAAyB,GAAG,aAAa,CAAC,yBAAyB,CAAC;IACpE,kBAAkB,GAAG,aAAa,CAAC,kBAAkB,CAAC;IACtD,uBAAuB,GAAG,aAAa,CAAC,uBAAuB,CAAC;IAChE,wBAAwB,GAAG,aAAa,CAAC,wBAAwB,CAAC;CACnE;AAAC,OAAO,KAAK,EAAE;IACd,OAAO,CAAC,IAAI,CACV,wHAAwH,CACzH,CAAC;IACF,OAAO,CAAC,KAAK,CAAC,qDAAqD,EAAE,KAAK,CAAC,CAAC;CAC7E;AAED,iDAAiE;AAEjE,SAAgB,iBAAiB,
|
|
1
|
+
{"version":3,"file":"bedrockAgentTracer.js","sourceRoot":"","sources":["../../src/lib/integrations/bedrockAgentTracer.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,7 +16,7 @@ catch (error) {
|
|
|
16
16
|
console.debug('Bedrock Agent tracing will not be available. Error:', error);
|
|
17
17
|
}
|
|
18
18
|
import { addChatCompletionStepToTrace } from "../tracing/tracer.mjs";
|
|
19
|
-
export function traceBedrockAgent(client) {
|
|
19
|
+
export function traceBedrockAgent(client, openlayerInferencePipelineId) {
|
|
20
20
|
if (!BedrockAgentRuntimeClient || !InvokeAgentCommand) {
|
|
21
21
|
throw new Error('AWS SDK for Bedrock Agent Runtime is not installed. Please install it with: npm install @aws-sdk/client-bedrock-agent-runtime');
|
|
22
22
|
}
|
|
@@ -26,23 +26,13 @@ export function traceBedrockAgent(client) {
|
|
|
26
26
|
const hasInput = command?.input;
|
|
27
27
|
const hasAgentId = typeof command?.input?.agentId === 'string';
|
|
28
28
|
const hasInputText = typeof command?.input?.inputText === 'string';
|
|
29
|
-
console.debug('Bedrock command analysis:', {
|
|
30
|
-
command: command,
|
|
31
|
-
hasInput: hasInput,
|
|
32
|
-
hasAgentId: hasAgentId,
|
|
33
|
-
hasInputText: hasInputText,
|
|
34
|
-
constructorName: command?.constructor?.name,
|
|
35
|
-
input: command?.input,
|
|
36
|
-
});
|
|
37
29
|
// Check if this looks like an InvokeAgentCommand by checking for expected properties
|
|
38
30
|
const isInvokeAgentCommand = hasInput && hasAgentId && hasInputText;
|
|
39
31
|
if (!isInvokeAgentCommand) {
|
|
40
32
|
console.debug('Command is not an InvokeAgentCommand, passing through uninstrumented');
|
|
41
33
|
return originalSend(command, options);
|
|
42
34
|
}
|
|
43
|
-
console.debug('Command identified as InvokeAgentCommand, applying tracing');
|
|
44
35
|
const startTime = performanceNow();
|
|
45
|
-
console.debug('startTime', startTime);
|
|
46
36
|
const input = command.input;
|
|
47
37
|
try {
|
|
48
38
|
// Call the original send method
|
|
@@ -51,7 +41,7 @@ export function traceBedrockAgent(client) {
|
|
|
51
41
|
throw new Error('Completion is undefined');
|
|
52
42
|
}
|
|
53
43
|
// Create a traced async iterator that preserves the original
|
|
54
|
-
const tracedCompletion = createTracedCompletion(response.completion, input, startTime);
|
|
44
|
+
const tracedCompletion = createTracedCompletion(response.completion, input, startTime, openlayerInferencePipelineId);
|
|
55
45
|
// Return the response with the traced completion
|
|
56
46
|
return {
|
|
57
47
|
...response,
|
|
@@ -66,7 +56,7 @@ export function traceBedrockAgent(client) {
|
|
|
66
56
|
return client;
|
|
67
57
|
}
|
|
68
58
|
// Create a traced completion that collects data while yielding original events
|
|
69
|
-
function createTracedCompletion(originalCompletion, input, startTime) {
|
|
59
|
+
function createTracedCompletion(originalCompletion, input, startTime, openlayerInferencePipelineId) {
|
|
70
60
|
return {
|
|
71
61
|
async *[Symbol.asyncIterator]() {
|
|
72
62
|
let firstTokenTime;
|
|
@@ -93,9 +83,11 @@ function createTracedCompletion(originalCompletion, input, startTime) {
|
|
|
93
83
|
const chunk = chunkEvent.chunk;
|
|
94
84
|
rawOutputChunks.push(chunk);
|
|
95
85
|
if (chunk.bytes) {
|
|
96
|
-
|
|
86
|
+
// Convert the object-based bytes to a proper Uint8Array
|
|
87
|
+
const bytesObject = chunk.bytes;
|
|
88
|
+
const byteArray = new Uint8Array(Object.values(bytesObject));
|
|
89
|
+
const decodedResponse = new TextDecoder('utf-8').decode(byteArray);
|
|
97
90
|
collectedOutput += decodedResponse;
|
|
98
|
-
completionTokens += 1;
|
|
99
91
|
}
|
|
100
92
|
if (chunk.attribution && chunk.attribution.citations) {
|
|
101
93
|
citations.push(...chunk.attribution.citations);
|
|
@@ -103,7 +95,6 @@ function createTracedCompletion(originalCompletion, input, startTime) {
|
|
|
103
95
|
}
|
|
104
96
|
// Handle trace events
|
|
105
97
|
if (chunkEvent.trace) {
|
|
106
|
-
console.debug(JSON.stringify(chunkEvent.trace, null, 2));
|
|
107
98
|
traceData.push(chunkEvent.trace);
|
|
108
99
|
if (chunkEvent.trace.trace) {
|
|
109
100
|
const trace = chunkEvent.trace.trace;
|
|
@@ -123,7 +114,6 @@ function createTracedCompletion(originalCompletion, input, startTime) {
|
|
|
123
114
|
}
|
|
124
115
|
// After the stream is complete, send trace data
|
|
125
116
|
const endTime = performanceNow();
|
|
126
|
-
console.debug('endTime', endTime);
|
|
127
117
|
totalTokens = promptTokens + completionTokens;
|
|
128
118
|
// Send trace data to Openlayer
|
|
129
119
|
const inputs = extractInputs(input, traceData);
|
|
@@ -165,7 +155,7 @@ function createTracedCompletion(originalCompletion, input, startTime) {
|
|
|
165
155
|
startTime: startTime,
|
|
166
156
|
endTime: endTime,
|
|
167
157
|
};
|
|
168
|
-
addChatCompletionStepToTrace(traceStepData);
|
|
158
|
+
addChatCompletionStepToTrace(traceStepData, openlayerInferencePipelineId);
|
|
169
159
|
}
|
|
170
160
|
catch (error) {
|
|
171
161
|
console.error('Error in traced completion:', error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bedrockAgentTracer.mjs","sourceRoot":"","sources":["../../src/lib/integrations/bedrockAgentTracer.ts"],"names":[],"mappings":"OAAO,cAAc,MAAM,iBAAiB;AAE5C,uCAAuC;AACvC,IAAI,yBAA8B,CAAC;AACnC,IAAI,kBAAuB,CAAC;AAC5B,IAAI,uBAA4B,CAAC;AACjC,IAAI,wBAA6B,CAAC;AAElC,IAAI;IACF,MAAM,aAAa,GAAG,OAAO,CAAC,uCAAuC,CAAC,CAAC;IACvE,yBAAyB,GAAG,aAAa,CAAC,yBAAyB,CAAC;IACpE,kBAAkB,GAAG,aAAa,CAAC,kBAAkB,CAAC;IACtD,uBAAuB,GAAG,aAAa,CAAC,uBAAuB,CAAC;IAChE,wBAAwB,GAAG,aAAa,CAAC,wBAAwB,CAAC;CACnE;AAAC,OAAO,KAAK,EAAE;IACd,OAAO,CAAC,IAAI,CACV,wHAAwH,CACzH,CAAC;IACF,OAAO,CAAC,KAAK,CAAC,qDAAqD,EAAE,KAAK,CAAC,CAAC;CAC7E;OAEM,EAAE,4BAA4B,EAAE;AAEvC,MAAM,UAAU,iBAAiB,
|
|
1
|
+
{"version":3,"file":"bedrockAgentTracer.mjs","sourceRoot":"","sources":["../../src/lib/integrations/bedrockAgentTracer.ts"],"names":[],"mappings":"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"}
|
package/lib/tracing/tracer.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { StepType } from "./enums.js";
|
|
2
|
-
declare function trace(fn: Function, stepType?: StepType, stepName?: string): Function;
|
|
2
|
+
declare function trace(fn: Function, stepType?: StepType, stepName?: string, openlayerInferencePipelineId?: string): Function;
|
|
3
3
|
export declare function addChatCompletionStepToTrace({ name, inputs, output, latency, tokens, promptTokens, completionTokens, model, modelParameters, rawOutput, metadata, provider, startTime, endTime, }: {
|
|
4
4
|
name: string;
|
|
5
5
|
inputs: any;
|
|
@@ -15,6 +15,6 @@ export declare function addChatCompletionStepToTrace({ name, inputs, output, lat
|
|
|
15
15
|
provider?: string;
|
|
16
16
|
startTime?: number | null;
|
|
17
17
|
endTime?: number | null;
|
|
18
|
-
}): void;
|
|
18
|
+
}, openlayerInferencePipelineId?: string): void;
|
|
19
19
|
export default trace;
|
|
20
20
|
//# sourceMappingURL=tracer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracer.d.ts","sourceRoot":"","sources":["../../src/lib/tracing/tracer.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"tracer.d.ts","sourceRoot":"","sources":["../../src/lib/tracing/tracer.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AA0InC,iBAAS,KAAK,CACZ,EAAE,EAAE,QAAQ,EACZ,QAAQ,GAAE,QAA6B,EACvC,QAAQ,CAAC,EAAE,MAAM,EACjB,4BAA4B,CAAC,EAAE,MAAM,GACpC,QAAQ,CAkBV;AAED,wBAAgB,4BAA4B,CAC1C,EACE,IAAI,EACJ,MAAM,EACN,MAAM,EACN,OAAO,EACP,MAAa,EACb,YAAmB,EACnB,gBAAuB,EACvB,KAAY,EACZ,eAAsB,EACtB,SAAgB,EAChB,QAAa,EACb,QAAmB,EACnB,SAAgB,EAChB,OAAc,GACf,EAAE;IACD,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,GAAG,CAAC;IACZ,MAAM,EAAE,GAAG,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;IAC7C,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB,EACD,4BAA4B,CAAC,EAAE,MAAM,QA2BtC;AA4BD,eAAe,KAAK,CAAC"}
|
package/lib/tracing/tracer.js
CHANGED
|
@@ -24,7 +24,7 @@ function setCurrentTrace(trace) {
|
|
|
24
24
|
}
|
|
25
25
|
// Function to create a new step
|
|
26
26
|
const stepStack = [];
|
|
27
|
-
function createStep(name, stepType = enums_1.StepType.USER_CALL, inputs, output, metadata = null, startTime, endTime) {
|
|
27
|
+
function createStep(name, stepType = enums_1.StepType.USER_CALL, inputs, output, metadata = null, startTime, endTime, openlayerInferencePipelineId) {
|
|
28
28
|
metadata = metadata || {};
|
|
29
29
|
let newStep;
|
|
30
30
|
if (stepType === enums_1.StepType.CHAT_COMPLETION) {
|
|
@@ -33,6 +33,7 @@ function createStep(name, stepType = enums_1.StepType.USER_CALL, inputs, output,
|
|
|
33
33
|
else {
|
|
34
34
|
newStep = new steps_1.UserCallStep(name, inputs, output, metadata, startTime, endTime);
|
|
35
35
|
}
|
|
36
|
+
const inferencePipelineId = openlayerInferencePipelineId || process.env['OPENLAYER_INFERENCE_PIPELINE_ID'];
|
|
36
37
|
const parentStep = getCurrentStep();
|
|
37
38
|
const isRootStep = parentStep === null;
|
|
38
39
|
if (isRootStep) {
|
|
@@ -55,10 +56,10 @@ function createStep(name, stepType = enums_1.StepType.USER_CALL, inputs, output,
|
|
|
55
56
|
const traceData = getCurrentTrace();
|
|
56
57
|
// Post process trace and get the input variable names
|
|
57
58
|
const { traceData: processedTraceData, inputVariableNames } = postProcessTrace(traceData);
|
|
58
|
-
if (publish &&
|
|
59
|
+
if (publish && inferencePipelineId) {
|
|
59
60
|
console.debug('Uploading trace to Openlayer...');
|
|
60
61
|
client.inferencePipelines.data
|
|
61
|
-
.stream(
|
|
62
|
+
.stream(inferencePipelineId, {
|
|
62
63
|
config: {
|
|
63
64
|
outputColumnName: 'output',
|
|
64
65
|
inputVariableNames: inputVariableNames,
|
|
@@ -77,7 +78,7 @@ function createStep(name, stepType = enums_1.StepType.USER_CALL, inputs, output,
|
|
|
77
78
|
.catch((error) => {
|
|
78
79
|
console.error('Failed to upload trace to Openlayer:', error);
|
|
79
80
|
console.error('Trace data that failed to upload:', JSON.stringify({
|
|
80
|
-
pipelineId:
|
|
81
|
+
pipelineId: inferencePipelineId,
|
|
81
82
|
inputVariableNames,
|
|
82
83
|
processedTraceData,
|
|
83
84
|
}, null, 2));
|
|
@@ -87,7 +88,7 @@ function createStep(name, stepType = enums_1.StepType.USER_CALL, inputs, output,
|
|
|
87
88
|
if (!publish) {
|
|
88
89
|
console.debug('Trace upload disabled (OPENLAYER_DISABLE_PUBLISH=true)');
|
|
89
90
|
}
|
|
90
|
-
else if (!
|
|
91
|
+
else if (!inferencePipelineId) {
|
|
91
92
|
console.warn('Trace upload skipped: OPENLAYER_INFERENCE_PIPELINE_ID environment variable not set');
|
|
92
93
|
}
|
|
93
94
|
}
|
|
@@ -113,12 +114,12 @@ function getParamNames(func) {
|
|
|
113
114
|
return result || [];
|
|
114
115
|
}
|
|
115
116
|
// Higher-order function to trace synchronous or asynchronous functions
|
|
116
|
-
function trace(fn, stepType = enums_1.StepType.USER_CALL, stepName) {
|
|
117
|
+
function trace(fn, stepType = enums_1.StepType.USER_CALL, stepName, openlayerInferencePipelineId) {
|
|
117
118
|
return async function (...args) {
|
|
118
119
|
const name = stepName || fn.name;
|
|
119
120
|
const paramNames = getParamNames(fn);
|
|
120
121
|
const inputs = Object.fromEntries(paramNames.map((name, index) => [name, args[index]]));
|
|
121
|
-
const [step, endStep] = createStep(name, stepType, args);
|
|
122
|
+
const [step, endStep] = createStep(name, stepType, args, openlayerInferencePipelineId);
|
|
122
123
|
try {
|
|
123
124
|
const result = await fn(...args);
|
|
124
125
|
step.log({ inputs, output: result });
|
|
@@ -133,8 +134,8 @@ function trace(fn, stepType = enums_1.StepType.USER_CALL, stepName) {
|
|
|
133
134
|
}
|
|
134
135
|
};
|
|
135
136
|
}
|
|
136
|
-
function addChatCompletionStepToTrace({ name, inputs, output, latency, tokens = null, promptTokens = null, completionTokens = null, model = null, modelParameters = null, rawOutput = null, metadata = {}, provider = 'OpenAI', startTime = null, endTime = null, }) {
|
|
137
|
-
const [step, endStep] = createStep(name, enums_1.StepType.CHAT_COMPLETION, inputs, output, metadata, startTime, endTime);
|
|
137
|
+
function addChatCompletionStepToTrace({ name, inputs, output, latency, tokens = null, promptTokens = null, completionTokens = null, model = null, modelParameters = null, rawOutput = null, metadata = {}, provider = 'OpenAI', startTime = null, endTime = null, }, openlayerInferencePipelineId) {
|
|
138
|
+
const [step, endStep] = createStep(name, enums_1.StepType.CHAT_COMPLETION, inputs, output, metadata, startTime, endTime, openlayerInferencePipelineId);
|
|
138
139
|
if (step.stepType === enums_1.StepType.CHAT_COMPLETION) {
|
|
139
140
|
step.provider = provider;
|
|
140
141
|
step.promptTokens = promptTokens;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracer.js","sourceRoot":"","sources":["../../src/lib/tracing/tracer.ts"],"names":[],"mappings":";AAAA,oBAAoB;;;;;;AAEpB,2DAAoC;AACpC,sCAAmC;AACnC,sCAAiE;AACjE,wCAAiC;AAEjC,IAAI,YAAY,GAAiB,IAAI,CAAC;AAEtC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,IAAI,MAAM,CAAC;AACnE,IAAI,MAAM,GAAqB,IAAI,CAAC;AACpC,IAAI,OAAO,EAAE;IACX,OAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;IACvC,MAAM,GAAG,IAAI,eAAS,EAAE,CAAC;CAC1B;AAED,SAAS,eAAe;IACtB,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,SAAS,eAAe,CAAC,KAAmB;IAC1C,YAAY,GAAG,KAAK,CAAC;AACvB,CAAC;AAED,gCAAgC;AAChC,MAAM,SAAS,GAAW,EAAE,CAAC;AAE7B,SAAS,UAAU,CACjB,IAAY,EACZ,WAAqB,gBAAQ,CAAC,SAAS,EACvC,MAAY,EACZ,MAAY,EACZ,WAAuC,IAAI,EAC3C,SAAyB,EACzB,OAAuB;
|
|
1
|
+
{"version":3,"file":"tracer.js","sourceRoot":"","sources":["../../src/lib/tracing/tracer.ts"],"names":[],"mappings":"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"}
|
package/lib/tracing/tracer.mjs
CHANGED
|
@@ -18,7 +18,7 @@ function setCurrentTrace(trace) {
|
|
|
18
18
|
}
|
|
19
19
|
// Function to create a new step
|
|
20
20
|
const stepStack = [];
|
|
21
|
-
function createStep(name, stepType = StepType.USER_CALL, inputs, output, metadata = null, startTime, endTime) {
|
|
21
|
+
function createStep(name, stepType = StepType.USER_CALL, inputs, output, metadata = null, startTime, endTime, openlayerInferencePipelineId) {
|
|
22
22
|
metadata = metadata || {};
|
|
23
23
|
let newStep;
|
|
24
24
|
if (stepType === StepType.CHAT_COMPLETION) {
|
|
@@ -27,6 +27,7 @@ function createStep(name, stepType = StepType.USER_CALL, inputs, output, metadat
|
|
|
27
27
|
else {
|
|
28
28
|
newStep = new UserCallStep(name, inputs, output, metadata, startTime, endTime);
|
|
29
29
|
}
|
|
30
|
+
const inferencePipelineId = openlayerInferencePipelineId || process.env['OPENLAYER_INFERENCE_PIPELINE_ID'];
|
|
30
31
|
const parentStep = getCurrentStep();
|
|
31
32
|
const isRootStep = parentStep === null;
|
|
32
33
|
if (isRootStep) {
|
|
@@ -49,10 +50,10 @@ function createStep(name, stepType = StepType.USER_CALL, inputs, output, metadat
|
|
|
49
50
|
const traceData = getCurrentTrace();
|
|
50
51
|
// Post process trace and get the input variable names
|
|
51
52
|
const { traceData: processedTraceData, inputVariableNames } = postProcessTrace(traceData);
|
|
52
|
-
if (publish &&
|
|
53
|
+
if (publish && inferencePipelineId) {
|
|
53
54
|
console.debug('Uploading trace to Openlayer...');
|
|
54
55
|
client.inferencePipelines.data
|
|
55
|
-
.stream(
|
|
56
|
+
.stream(inferencePipelineId, {
|
|
56
57
|
config: {
|
|
57
58
|
outputColumnName: 'output',
|
|
58
59
|
inputVariableNames: inputVariableNames,
|
|
@@ -71,7 +72,7 @@ function createStep(name, stepType = StepType.USER_CALL, inputs, output, metadat
|
|
|
71
72
|
.catch((error) => {
|
|
72
73
|
console.error('Failed to upload trace to Openlayer:', error);
|
|
73
74
|
console.error('Trace data that failed to upload:', JSON.stringify({
|
|
74
|
-
pipelineId:
|
|
75
|
+
pipelineId: inferencePipelineId,
|
|
75
76
|
inputVariableNames,
|
|
76
77
|
processedTraceData,
|
|
77
78
|
}, null, 2));
|
|
@@ -81,7 +82,7 @@ function createStep(name, stepType = StepType.USER_CALL, inputs, output, metadat
|
|
|
81
82
|
if (!publish) {
|
|
82
83
|
console.debug('Trace upload disabled (OPENLAYER_DISABLE_PUBLISH=true)');
|
|
83
84
|
}
|
|
84
|
-
else if (!
|
|
85
|
+
else if (!inferencePipelineId) {
|
|
85
86
|
console.warn('Trace upload skipped: OPENLAYER_INFERENCE_PIPELINE_ID environment variable not set');
|
|
86
87
|
}
|
|
87
88
|
}
|
|
@@ -107,12 +108,12 @@ function getParamNames(func) {
|
|
|
107
108
|
return result || [];
|
|
108
109
|
}
|
|
109
110
|
// Higher-order function to trace synchronous or asynchronous functions
|
|
110
|
-
function trace(fn, stepType = StepType.USER_CALL, stepName) {
|
|
111
|
+
function trace(fn, stepType = StepType.USER_CALL, stepName, openlayerInferencePipelineId) {
|
|
111
112
|
return async function (...args) {
|
|
112
113
|
const name = stepName || fn.name;
|
|
113
114
|
const paramNames = getParamNames(fn);
|
|
114
115
|
const inputs = Object.fromEntries(paramNames.map((name, index) => [name, args[index]]));
|
|
115
|
-
const [step, endStep] = createStep(name, stepType, args);
|
|
116
|
+
const [step, endStep] = createStep(name, stepType, args, openlayerInferencePipelineId);
|
|
116
117
|
try {
|
|
117
118
|
const result = await fn(...args);
|
|
118
119
|
step.log({ inputs, output: result });
|
|
@@ -127,8 +128,8 @@ function trace(fn, stepType = StepType.USER_CALL, stepName) {
|
|
|
127
128
|
}
|
|
128
129
|
};
|
|
129
130
|
}
|
|
130
|
-
export function addChatCompletionStepToTrace({ name, inputs, output, latency, tokens = null, promptTokens = null, completionTokens = null, model = null, modelParameters = null, rawOutput = null, metadata = {}, provider = 'OpenAI', startTime = null, endTime = null, }) {
|
|
131
|
-
const [step, endStep] = createStep(name, StepType.CHAT_COMPLETION, inputs, output, metadata, startTime, endTime);
|
|
131
|
+
export function addChatCompletionStepToTrace({ name, inputs, output, latency, tokens = null, promptTokens = null, completionTokens = null, model = null, modelParameters = null, rawOutput = null, metadata = {}, provider = 'OpenAI', startTime = null, endTime = null, }, openlayerInferencePipelineId) {
|
|
132
|
+
const [step, endStep] = createStep(name, StepType.CHAT_COMPLETION, inputs, output, metadata, startTime, endTime, openlayerInferencePipelineId);
|
|
132
133
|
if (step.stepType === StepType.CHAT_COMPLETION) {
|
|
133
134
|
step.provider = provider;
|
|
134
135
|
step.promptTokens = promptTokens;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracer.mjs","sourceRoot":"","sources":["../../src/lib/tracing/tracer.ts"],"names":[],"mappings":"AAAA,oBAAoB;OAEb,SAAS;OACT,EAAE,QAAQ,EAAE;OACZ,EAAE,kBAAkB,EAAQ,YAAY,EAAE;OAC1C,EAAE,KAAK,EAAE;AAEhB,IAAI,YAAY,GAAiB,IAAI,CAAC;AAEtC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,IAAI,MAAM,CAAC;AACnE,IAAI,MAAM,GAAqB,IAAI,CAAC;AACpC,IAAI,OAAO,EAAE;IACX,OAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;IACvC,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;CAC1B;AAED,SAAS,eAAe;IACtB,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,SAAS,eAAe,CAAC,KAAmB;IAC1C,YAAY,GAAG,KAAK,CAAC;AACvB,CAAC;AAED,gCAAgC;AAChC,MAAM,SAAS,GAAW,EAAE,CAAC;AAE7B,SAAS,UAAU,CACjB,IAAY,EACZ,WAAqB,QAAQ,CAAC,SAAS,EACvC,MAAY,EACZ,MAAY,EACZ,WAAuC,IAAI,EAC3C,SAAyB,EACzB,OAAuB;
|
|
1
|
+
{"version":3,"file":"tracer.mjs","sourceRoot":"","sources":["../../src/lib/tracing/tracer.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "openlayer",
|
|
3
|
-
"version": "0.13.
|
|
3
|
+
"version": "0.13.13",
|
|
4
4
|
"description": "The official TypeScript library for the Openlayer API",
|
|
5
5
|
"author": "Openlayer <support@openlayer.com>",
|
|
6
6
|
"types": "./index.d.ts",
|
|
@@ -36,6 +36,7 @@
|
|
|
36
36
|
"formdata-node": "^4.3.2",
|
|
37
37
|
"node-fetch": "^2.7.0",
|
|
38
38
|
"openai": "^4.49.0",
|
|
39
|
+
"openlayer": "https://registry.npmjs.org/openlayer/-/openlayer-0.13.12.tgz",
|
|
39
40
|
"performance-now": "^2.1.0",
|
|
40
41
|
"uuid": "^9.0.1",
|
|
41
42
|
"web-streams-polyfill": "^3.2.1"
|
|
@@ -21,7 +21,10 @@ try {
|
|
|
21
21
|
|
|
22
22
|
import { addChatCompletionStepToTrace } from '../tracing/tracer';
|
|
23
23
|
|
|
24
|
-
export function traceBedrockAgent(
|
|
24
|
+
export function traceBedrockAgent(
|
|
25
|
+
client: any,
|
|
26
|
+
openlayerInferencePipelineId?: string,
|
|
27
|
+
): any {
|
|
25
28
|
if (!BedrockAgentRuntimeClient || !InvokeAgentCommand) {
|
|
26
29
|
throw new Error(
|
|
27
30
|
'AWS SDK for Bedrock Agent Runtime is not installed. Please install it with: npm install @aws-sdk/client-bedrock-agent-runtime',
|
|
@@ -36,15 +39,6 @@ export function traceBedrockAgent(client: any): any {
|
|
|
36
39
|
const hasAgentId = typeof command?.input?.agentId === 'string';
|
|
37
40
|
const hasInputText = typeof command?.input?.inputText === 'string';
|
|
38
41
|
|
|
39
|
-
console.debug('Bedrock command analysis:', {
|
|
40
|
-
command: command,
|
|
41
|
-
hasInput: hasInput,
|
|
42
|
-
hasAgentId: hasAgentId,
|
|
43
|
-
hasInputText: hasInputText,
|
|
44
|
-
constructorName: command?.constructor?.name,
|
|
45
|
-
input: command?.input,
|
|
46
|
-
});
|
|
47
|
-
|
|
48
42
|
// Check if this looks like an InvokeAgentCommand by checking for expected properties
|
|
49
43
|
const isInvokeAgentCommand = hasInput && hasAgentId && hasInputText;
|
|
50
44
|
|
|
@@ -52,10 +46,8 @@ export function traceBedrockAgent(client: any): any {
|
|
|
52
46
|
console.debug('Command is not an InvokeAgentCommand, passing through uninstrumented');
|
|
53
47
|
return originalSend(command, options);
|
|
54
48
|
}
|
|
55
|
-
console.debug('Command identified as InvokeAgentCommand, applying tracing');
|
|
56
49
|
|
|
57
50
|
const startTime = performanceNow();
|
|
58
|
-
console.debug('startTime', startTime);
|
|
59
51
|
const input = command.input;
|
|
60
52
|
|
|
61
53
|
try {
|
|
@@ -67,7 +59,12 @@ export function traceBedrockAgent(client: any): any {
|
|
|
67
59
|
}
|
|
68
60
|
|
|
69
61
|
// Create a traced async iterator that preserves the original
|
|
70
|
-
const tracedCompletion = createTracedCompletion(
|
|
62
|
+
const tracedCompletion = createTracedCompletion(
|
|
63
|
+
response.completion,
|
|
64
|
+
input,
|
|
65
|
+
startTime,
|
|
66
|
+
openlayerInferencePipelineId,
|
|
67
|
+
);
|
|
71
68
|
|
|
72
69
|
// Return the response with the traced completion
|
|
73
70
|
return {
|
|
@@ -88,6 +85,7 @@ function createTracedCompletion(
|
|
|
88
85
|
originalCompletion: AsyncIterable<any>,
|
|
89
86
|
input: any,
|
|
90
87
|
startTime: number,
|
|
88
|
+
openlayerInferencePipelineId?: string,
|
|
91
89
|
): AsyncIterable<any> {
|
|
92
90
|
return {
|
|
93
91
|
async *[Symbol.asyncIterator]() {
|
|
@@ -111,6 +109,7 @@ function createTracedCompletion(
|
|
|
111
109
|
if (chunkCount === 0) {
|
|
112
110
|
firstTokenTime = performanceNow();
|
|
113
111
|
}
|
|
112
|
+
|
|
114
113
|
chunkCount++;
|
|
115
114
|
|
|
116
115
|
// Handle chunk events
|
|
@@ -119,9 +118,11 @@ function createTracedCompletion(
|
|
|
119
118
|
rawOutputChunks.push(chunk);
|
|
120
119
|
|
|
121
120
|
if (chunk.bytes) {
|
|
122
|
-
|
|
121
|
+
// Convert the object-based bytes to a proper Uint8Array
|
|
122
|
+
const bytesObject = chunk.bytes;
|
|
123
|
+
const byteArray = new Uint8Array(Object.values(bytesObject));
|
|
124
|
+
const decodedResponse = new TextDecoder('utf-8').decode(byteArray);
|
|
123
125
|
collectedOutput += decodedResponse;
|
|
124
|
-
completionTokens += 1;
|
|
125
126
|
}
|
|
126
127
|
|
|
127
128
|
if (chunk.attribution && chunk.attribution.citations) {
|
|
@@ -131,7 +132,6 @@ function createTracedCompletion(
|
|
|
131
132
|
|
|
132
133
|
// Handle trace events
|
|
133
134
|
if (chunkEvent.trace) {
|
|
134
|
-
console.debug(JSON.stringify(chunkEvent.trace, null, 2));
|
|
135
135
|
traceData.push(chunkEvent.trace);
|
|
136
136
|
|
|
137
137
|
if (chunkEvent.trace.trace) {
|
|
@@ -159,7 +159,6 @@ function createTracedCompletion(
|
|
|
159
159
|
|
|
160
160
|
// After the stream is complete, send trace data
|
|
161
161
|
const endTime = performanceNow();
|
|
162
|
-
console.debug('endTime', endTime);
|
|
163
162
|
totalTokens = promptTokens + completionTokens;
|
|
164
163
|
|
|
165
164
|
// Send trace data to Openlayer
|
|
@@ -208,7 +207,7 @@ function createTracedCompletion(
|
|
|
208
207
|
endTime: endTime,
|
|
209
208
|
};
|
|
210
209
|
|
|
211
|
-
addChatCompletionStepToTrace(traceStepData);
|
|
210
|
+
addChatCompletionStepToTrace(traceStepData, openlayerInferencePipelineId);
|
|
212
211
|
} catch (error) {
|
|
213
212
|
console.error('Error in traced completion:', error);
|
|
214
213
|
// Don't rethrow - we don't want tracing errors to break the user's stream
|
|
@@ -33,6 +33,7 @@ function createStep(
|
|
|
33
33
|
metadata: Record<string, any> | null = null,
|
|
34
34
|
startTime?: number | null,
|
|
35
35
|
endTime?: number | null,
|
|
36
|
+
openlayerInferencePipelineId?: string,
|
|
36
37
|
): [Step, () => void] {
|
|
37
38
|
metadata = metadata || {};
|
|
38
39
|
let newStep: Step;
|
|
@@ -42,6 +43,8 @@ function createStep(
|
|
|
42
43
|
newStep = new UserCallStep(name, inputs, output, metadata, startTime, endTime);
|
|
43
44
|
}
|
|
44
45
|
|
|
46
|
+
const inferencePipelineId = openlayerInferencePipelineId || process.env['OPENLAYER_INFERENCE_PIPELINE_ID'];
|
|
47
|
+
|
|
45
48
|
const parentStep = getCurrentStep();
|
|
46
49
|
const isRootStep = parentStep === null;
|
|
47
50
|
|
|
@@ -68,11 +71,11 @@ function createStep(
|
|
|
68
71
|
// Post process trace and get the input variable names
|
|
69
72
|
const { traceData: processedTraceData, inputVariableNames } = postProcessTrace(traceData!);
|
|
70
73
|
|
|
71
|
-
if (publish &&
|
|
74
|
+
if (publish && inferencePipelineId) {
|
|
72
75
|
console.debug('Uploading trace to Openlayer...');
|
|
73
76
|
|
|
74
77
|
client!.inferencePipelines.data
|
|
75
|
-
.stream(
|
|
78
|
+
.stream(inferencePipelineId, {
|
|
76
79
|
config: {
|
|
77
80
|
outputColumnName: 'output',
|
|
78
81
|
inputVariableNames: inputVariableNames,
|
|
@@ -94,7 +97,7 @@ function createStep(
|
|
|
94
97
|
'Trace data that failed to upload:',
|
|
95
98
|
JSON.stringify(
|
|
96
99
|
{
|
|
97
|
-
pipelineId:
|
|
100
|
+
pipelineId: inferencePipelineId,
|
|
98
101
|
inputVariableNames,
|
|
99
102
|
processedTraceData,
|
|
100
103
|
},
|
|
@@ -106,7 +109,7 @@ function createStep(
|
|
|
106
109
|
} else {
|
|
107
110
|
if (!publish) {
|
|
108
111
|
console.debug('Trace upload disabled (OPENLAYER_DISABLE_PUBLISH=true)');
|
|
109
|
-
} else if (!
|
|
112
|
+
} else if (!inferencePipelineId) {
|
|
110
113
|
console.warn('Trace upload skipped: OPENLAYER_INFERENCE_PIPELINE_ID environment variable not set');
|
|
111
114
|
}
|
|
112
115
|
}
|
|
@@ -136,12 +139,17 @@ function getParamNames(func: Function): string[] {
|
|
|
136
139
|
}
|
|
137
140
|
|
|
138
141
|
// Higher-order function to trace synchronous or asynchronous functions
|
|
139
|
-
function trace(
|
|
142
|
+
function trace(
|
|
143
|
+
fn: Function,
|
|
144
|
+
stepType: StepType = StepType.USER_CALL,
|
|
145
|
+
stepName?: string,
|
|
146
|
+
openlayerInferencePipelineId?: string,
|
|
147
|
+
): Function {
|
|
140
148
|
return async function (...args: any[]) {
|
|
141
149
|
const name = stepName || fn.name;
|
|
142
150
|
const paramNames = getParamNames(fn);
|
|
143
151
|
const inputs = Object.fromEntries(paramNames.map((name, index) => [name, args[index]]));
|
|
144
|
-
const [step, endStep] = createStep(name, stepType, args);
|
|
152
|
+
const [step, endStep] = createStep(name, stepType, args, openlayerInferencePipelineId);
|
|
145
153
|
|
|
146
154
|
try {
|
|
147
155
|
const result = await fn(...args);
|
|
@@ -156,38 +164,50 @@ function trace(fn: Function, stepType: StepType = StepType.USER_CALL, stepName?:
|
|
|
156
164
|
};
|
|
157
165
|
}
|
|
158
166
|
|
|
159
|
-
export function addChatCompletionStepToTrace(
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
167
|
+
export function addChatCompletionStepToTrace(
|
|
168
|
+
{
|
|
169
|
+
name,
|
|
170
|
+
inputs,
|
|
171
|
+
output,
|
|
172
|
+
latency,
|
|
173
|
+
tokens = null,
|
|
174
|
+
promptTokens = null,
|
|
175
|
+
completionTokens = null,
|
|
176
|
+
model = null,
|
|
177
|
+
modelParameters = null,
|
|
178
|
+
rawOutput = null,
|
|
179
|
+
metadata = {},
|
|
180
|
+
provider = 'OpenAI',
|
|
181
|
+
startTime = null,
|
|
182
|
+
endTime = null,
|
|
183
|
+
}: {
|
|
184
|
+
name: string;
|
|
185
|
+
inputs: any;
|
|
186
|
+
output: any;
|
|
187
|
+
latency: number;
|
|
188
|
+
tokens?: number | null;
|
|
189
|
+
promptTokens?: number | null;
|
|
190
|
+
completionTokens?: number | null;
|
|
191
|
+
model?: string | null;
|
|
192
|
+
modelParameters?: Record<string, any> | null;
|
|
193
|
+
rawOutput?: string | null;
|
|
194
|
+
metadata?: Record<string, any>;
|
|
195
|
+
provider?: string;
|
|
196
|
+
startTime?: number | null;
|
|
197
|
+
endTime?: number | null;
|
|
198
|
+
},
|
|
199
|
+
openlayerInferencePipelineId?: string,
|
|
200
|
+
) {
|
|
201
|
+
const [step, endStep] = createStep(
|
|
202
|
+
name,
|
|
203
|
+
StepType.CHAT_COMPLETION,
|
|
204
|
+
inputs,
|
|
205
|
+
output,
|
|
206
|
+
metadata,
|
|
207
|
+
startTime,
|
|
208
|
+
endTime,
|
|
209
|
+
openlayerInferencePipelineId,
|
|
210
|
+
);
|
|
191
211
|
|
|
192
212
|
if (step.stepType === StepType.CHAT_COMPLETION) {
|
|
193
213
|
(step as ChatCompletionStep).provider = provider;
|
package/src/version.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const VERSION = '0.13.
|
|
1
|
+
export const VERSION = '0.13.13'; // x-release-please-version
|
package/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const VERSION = "0.13.
|
|
1
|
+
export declare const VERSION = "0.13.13";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/version.js
CHANGED
package/version.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const VERSION = '0.13.
|
|
1
|
+
export const VERSION = '0.13.13'; // x-release-please-version
|
|
2
2
|
//# sourceMappingURL=version.mjs.map
|