@revenium/openai 1.1.0 → 1.1.2
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 +22 -0
- package/README.md +60 -12
- package/dist/cjs/core/tracking/tool-api-client.js +58 -0
- package/dist/cjs/core/tracking/tool-api-client.js.map +1 -0
- package/dist/cjs/core/tracking/tool-context.js +23 -0
- package/dist/cjs/core/tracking/tool-context.js.map +1 -0
- package/dist/cjs/core/tracking/tool-tracker.js +122 -0
- package/dist/cjs/core/tracking/tool-tracker.js.map +1 -0
- package/dist/cjs/index.js +9 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/index.js +1 -0
- package/dist/cjs/types/index.js.map +1 -1
- package/dist/cjs/types/tool-metering.js +3 -0
- package/dist/cjs/types/tool-metering.js.map +1 -0
- package/dist/cjs/utils/metadata-builder.js +21 -9
- package/dist/cjs/utils/metadata-builder.js.map +1 -1
- package/dist/esm/core/tracking/tool-api-client.js +55 -0
- package/dist/esm/core/tracking/tool-api-client.js.map +1 -0
- package/dist/esm/core/tracking/tool-context.js +17 -0
- package/dist/esm/core/tracking/tool-context.js.map +1 -0
- package/dist/esm/core/tracking/tool-tracker.js +118 -0
- package/dist/esm/core/tracking/tool-tracker.js.map +1 -0
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types/index.js +1 -0
- package/dist/esm/types/index.js.map +1 -1
- package/dist/esm/types/tool-metering.js +2 -0
- package/dist/esm/types/tool-metering.js.map +1 -0
- package/dist/esm/utils/metadata-builder.js +21 -9
- package/dist/esm/utils/metadata-builder.js.map +1 -1
- package/dist/types/core/tracking/tool-api-client.d.ts +3 -0
- package/dist/types/core/tracking/tool-api-client.d.ts.map +1 -0
- package/dist/types/core/tracking/tool-context.d.ts +6 -0
- package/dist/types/core/tracking/tool-context.d.ts.map +1 -0
- package/dist/types/core/tracking/tool-tracker.d.ts +4 -0
- package/dist/types/core/tracking/tool-tracker.d.ts.map +1 -0
- package/dist/types/index.d.ts +3 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/types/index.d.ts +15 -4
- package/dist/types/types/index.d.ts.map +1 -1
- package/dist/types/types/tool-metering.d.ts +47 -0
- package/dist/types/types/tool-metering.d.ts.map +1 -0
- package/dist/types/utils/metadata-builder.d.ts +3 -0
- package/dist/types/utils/metadata-builder.d.ts.map +1 -1
- package/examples/README.md +2 -2
- package/examples/azure/basic.ts +3 -3
- package/examples/azure/responses-basic.ts +4 -4
- package/examples/azure/responses-stream.ts +4 -4
- package/examples/azure/stream.ts +3 -3
- package/examples/getting_started.ts +2 -2
- package/examples/openai/basic.ts +3 -3
- package/examples/openai/metadata.ts +4 -4
- package/examples/openai/prompt-capture.ts +6 -6
- package/examples/openai/responses-basic.ts +4 -4
- package/examples/openai/responses-embed.ts +3 -3
- package/examples/openai/responses-streaming.ts +4 -4
- package/examples/openai/streaming.ts +3 -3
- package/package.json +1 -1
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { randomUUID } from "crypto";
|
|
2
|
+
import { getToolContext } from "./tool-context.js";
|
|
3
|
+
import { sendToolEvent } from "./tool-api-client.js";
|
|
4
|
+
import { getLogger } from "../config/index.js";
|
|
5
|
+
const MIDDLEWARE_SOURCE = "revenium-openai-node";
|
|
6
|
+
function isPromise(value) {
|
|
7
|
+
return value !== null && typeof value === "object" && typeof value.then === "function";
|
|
8
|
+
}
|
|
9
|
+
function extractOutputFields(result, fields) {
|
|
10
|
+
if (typeof result !== "object" || result === null) {
|
|
11
|
+
return {};
|
|
12
|
+
}
|
|
13
|
+
const extracted = {};
|
|
14
|
+
for (const field of fields) {
|
|
15
|
+
if (field in result) {
|
|
16
|
+
extracted[field] = result[field];
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
return extracted;
|
|
20
|
+
}
|
|
21
|
+
function buildToolEventPayload(toolId, durationMs, success, metadata, errorMessage) {
|
|
22
|
+
const context = getToolContext();
|
|
23
|
+
const transactionId = metadata?.transactionId ?? context.transactionId ?? randomUUID();
|
|
24
|
+
return {
|
|
25
|
+
transactionId,
|
|
26
|
+
toolId,
|
|
27
|
+
operation: metadata?.operation,
|
|
28
|
+
durationMs,
|
|
29
|
+
success,
|
|
30
|
+
timestamp: new Date().toISOString(),
|
|
31
|
+
errorMessage,
|
|
32
|
+
usageMetadata: metadata?.usageMetadata,
|
|
33
|
+
agent: metadata?.agent ?? context.agent,
|
|
34
|
+
organizationName: metadata?.organizationName ?? context.organizationName,
|
|
35
|
+
productName: metadata?.productName ?? context.productName,
|
|
36
|
+
subscriberCredential: metadata?.subscriberCredential ?? context.subscriberCredential,
|
|
37
|
+
workflowId: metadata?.workflowId ?? context.workflowId,
|
|
38
|
+
traceId: metadata?.traceId ?? context.traceId,
|
|
39
|
+
middlewareSource: MIDDLEWARE_SOURCE,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
function dispatchToolEvent(payload) {
|
|
43
|
+
const logger = getLogger();
|
|
44
|
+
sendToolEvent(payload)
|
|
45
|
+
.then(() => {
|
|
46
|
+
logger.debug("Tool event sent successfully", {
|
|
47
|
+
transactionId: payload.transactionId,
|
|
48
|
+
toolId: payload.toolId,
|
|
49
|
+
});
|
|
50
|
+
})
|
|
51
|
+
.catch((error) => {
|
|
52
|
+
logger.warn("Failed to send tool event", {
|
|
53
|
+
transactionId: payload.transactionId,
|
|
54
|
+
toolId: payload.toolId,
|
|
55
|
+
error: error instanceof Error ? error.message : String(error),
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
export function meterTool(toolId, fn, metadata) {
|
|
60
|
+
const startTime = performance.now();
|
|
61
|
+
const handleSuccess = (result) => {
|
|
62
|
+
const durationMs = Math.round(performance.now() - startTime);
|
|
63
|
+
let finalMetadata = metadata;
|
|
64
|
+
if (metadata?.outputFields && metadata.outputFields.length > 0) {
|
|
65
|
+
const extracted = extractOutputFields(result, metadata.outputFields);
|
|
66
|
+
finalMetadata = {
|
|
67
|
+
...metadata,
|
|
68
|
+
usageMetadata: {
|
|
69
|
+
...metadata.usageMetadata,
|
|
70
|
+
...extracted,
|
|
71
|
+
},
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
const payload = buildToolEventPayload(toolId, durationMs, true, finalMetadata);
|
|
75
|
+
dispatchToolEvent(payload);
|
|
76
|
+
return result;
|
|
77
|
+
};
|
|
78
|
+
const handleError = (error) => {
|
|
79
|
+
const durationMs = Math.round(performance.now() - startTime);
|
|
80
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
81
|
+
const payload = buildToolEventPayload(toolId, durationMs, false, metadata, errorMessage);
|
|
82
|
+
dispatchToolEvent(payload);
|
|
83
|
+
throw error;
|
|
84
|
+
};
|
|
85
|
+
try {
|
|
86
|
+
const result = fn();
|
|
87
|
+
if (isPromise(result)) {
|
|
88
|
+
return result.then(handleSuccess, handleError);
|
|
89
|
+
}
|
|
90
|
+
return Promise.resolve(handleSuccess(result));
|
|
91
|
+
}
|
|
92
|
+
catch (error) {
|
|
93
|
+
return Promise.reject(handleError(error));
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
export function reportToolCall(toolId, report) {
|
|
97
|
+
const context = getToolContext();
|
|
98
|
+
const transactionId = report.transactionId ?? context.transactionId ?? randomUUID();
|
|
99
|
+
const payload = {
|
|
100
|
+
transactionId,
|
|
101
|
+
toolId,
|
|
102
|
+
operation: report.operation,
|
|
103
|
+
durationMs: report.durationMs,
|
|
104
|
+
success: report.success,
|
|
105
|
+
timestamp: report.timestamp ?? new Date().toISOString(),
|
|
106
|
+
errorMessage: report.errorMessage,
|
|
107
|
+
usageMetadata: report.usageMetadata,
|
|
108
|
+
agent: report.agent ?? context.agent,
|
|
109
|
+
organizationName: report.organizationName ?? context.organizationName,
|
|
110
|
+
productName: report.productName ?? context.productName,
|
|
111
|
+
subscriberCredential: report.subscriberCredential ?? context.subscriberCredential,
|
|
112
|
+
workflowId: report.workflowId ?? context.workflowId,
|
|
113
|
+
traceId: report.traceId ?? context.traceId,
|
|
114
|
+
middlewareSource: MIDDLEWARE_SOURCE,
|
|
115
|
+
};
|
|
116
|
+
dispatchToolEvent(payload);
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=tool-tracker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-tracker.js","sourceRoot":"","sources":["../../../../src/core/tracking/tool-tracker.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/index.js
CHANGED
|
@@ -24,4 +24,6 @@ export { trackUsageAsync, trackEmbeddingsUsageAsync, trackImageUsageAsync, track
|
|
|
24
24
|
* Provider detection functions
|
|
25
25
|
*/
|
|
26
26
|
export { detectProvider, hasAzureConfig, validateAzureConfig, getProviderMetadata, } from "./core/providers";
|
|
27
|
+
export { meterTool, reportToolCall, } from "./core/tracking/tool-tracker.js";
|
|
28
|
+
export { setToolContext, getToolContext, clearToolContext, runWithToolContext, } from "./core/tracking/tool-context.js";
|
|
27
29
|
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,sEAAsE;AACtE,OAAO,gCAAgC,CAAC;AA8DxC,oGAAoG;AACpG,mGAAmG;AACnG,oFAAoF;AAEpF;;GAEG;AACH,OAAO,EACL,UAAU,EACV,SAAS,EACT,aAAa,EACb,KAAK,EACL,SAAS,GACV,MAAM,eAAe,CAAC;AAEvB;;GAEG;AACH,OAAO,EACL,cAAc,EACd,aAAa,EACb,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,4BAA4B,EAC5B,0BAA0B,EAC1B,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAE3B;;GAEG;AACH,OAAO,EACL,eAAe,EACf,yBAAyB,EACzB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AAEzB;;GAEG;AACH,OAAO,EACL,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,sEAAsE;AACtE,OAAO,gCAAgC,CAAC;AA8DxC,oGAAoG;AACpG,mGAAmG;AACnG,oFAAoF;AAEpF;;GAEG;AACH,OAAO,EACL,UAAU,EACV,SAAS,EACT,aAAa,EACb,KAAK,EACL,SAAS,GACV,MAAM,eAAe,CAAC;AAEvB;;GAEG;AACH,OAAO,EACL,cAAc,EACd,aAAa,EACb,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,4BAA4B,EAC5B,0BAA0B,EAC1B,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAE3B;;GAEG;AACH,OAAO,EACL,eAAe,EACf,yBAAyB,EACzB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AAEzB;;GAEG;AACH,OAAO,EACL,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAS1B,OAAO,EACL,SAAS,EACT,cAAc,GACf,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,iCAAiC,CAAC"}
|
package/dist/esm/types/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,qCAAqC;AACrC,cAAc,0BAA0B,CAAC;AAEzC,gCAAgC;AAChC,cAAc,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,qCAAqC;AACrC,cAAc,0BAA0B,CAAC;AAEzC,gCAAgC;AAChC,cAAc,oBAAoB,CAAC;AAgGnC;;;;;GAKG;AACH,MAAM,CAAN,IAAY,QAKX;AALD,WAAY,QAAQ;IAClB,0BAA0B;IAC1B,6BAAiB,CAAA;IACjB,2BAA2B;IAC3B,yCAA6B,CAAA;AAC/B,CAAC,EALW,QAAQ,KAAR,QAAQ,QAKnB;AA2MD,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-metering.js","sourceRoot":"","sources":["../../../src/types/tool-metering.ts"],"names":[],"mappings":""}
|
|
@@ -14,13 +14,14 @@ const METADATA_FIELD_MAP = [
|
|
|
14
14
|
{ source: "taskType" },
|
|
15
15
|
{ source: "agent" },
|
|
16
16
|
{ source: "organizationId" },
|
|
17
|
+
{ source: "organizationName" },
|
|
17
18
|
{ source: "productId" },
|
|
18
|
-
{ source: "
|
|
19
|
+
{ source: "productName" },
|
|
20
|
+
{ source: "subscriber" },
|
|
19
21
|
{ source: "subscriptionId" },
|
|
20
22
|
{
|
|
21
23
|
source: "responseQualityScore",
|
|
22
24
|
transform: (value) => {
|
|
23
|
-
// Ensure quality score is between 0.0 and 1.0 (API spec requirement)
|
|
24
25
|
if (typeof value === "number")
|
|
25
26
|
return Math.max(0, Math.min(1, value));
|
|
26
27
|
return value;
|
|
@@ -34,6 +35,9 @@ const METADATA_FIELD_MAP = [
|
|
|
34
35
|
* a clean, testable way to handle metadata transformation.
|
|
35
36
|
* Subscriber object is passed through directly without transformation.
|
|
36
37
|
*
|
|
38
|
+
* Implements field migration: organizationName/productName take priority over
|
|
39
|
+
* organizationId/productId for backward compatibility.
|
|
40
|
+
*
|
|
37
41
|
* @param usageMetadata - Source metadata from request
|
|
38
42
|
* @returns Clean metadata object for payload
|
|
39
43
|
*/
|
|
@@ -41,18 +45,26 @@ export function buildMetadataFields(usageMetadata) {
|
|
|
41
45
|
if (!usageMetadata)
|
|
42
46
|
return {};
|
|
43
47
|
const result = {};
|
|
44
|
-
// Process all metadata fields including nested subscriber object
|
|
45
48
|
for (const config of METADATA_FIELD_MAP) {
|
|
46
49
|
const value = usageMetadata[config.source];
|
|
47
|
-
// Skip undefined values (but allow null, empty strings, objects, etc.)
|
|
48
50
|
if (value === undefined)
|
|
49
51
|
continue;
|
|
50
|
-
//
|
|
52
|
+
// Skip deprecated fields - they'll be handled by migration logic below
|
|
53
|
+
if (config.source === "organizationId" || config.source === "productId") {
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
51
56
|
const transformedValue = config.transform ? config.transform(value) : value;
|
|
52
|
-
// Use target field name or default to source
|
|
53
57
|
const targetField = config.target || config.source;
|
|
54
58
|
result[targetField] = transformedValue;
|
|
55
59
|
}
|
|
60
|
+
// Handle field migration: new names take priority
|
|
61
|
+
if (usageMetadata.organizationName || usageMetadata.organizationId) {
|
|
62
|
+
result.organizationName =
|
|
63
|
+
usageMetadata.organizationName || usageMetadata.organizationId;
|
|
64
|
+
}
|
|
65
|
+
if (usageMetadata.productName || usageMetadata.productId) {
|
|
66
|
+
result.productName = usageMetadata.productName || usageMetadata.productId;
|
|
67
|
+
}
|
|
56
68
|
return result;
|
|
57
69
|
}
|
|
58
70
|
/**
|
|
@@ -143,9 +155,9 @@ export function createLoggingContext(usageMetadata) {
|
|
|
143
155
|
traceId: usageMetadata.traceId,
|
|
144
156
|
taskType: usageMetadata.taskType,
|
|
145
157
|
subscriberId: usageMetadata.subscriber?.id,
|
|
146
|
-
subscriberEmail: sanitizedSubscriber?.email,
|
|
147
|
-
|
|
148
|
-
|
|
158
|
+
subscriberEmail: sanitizedSubscriber?.email,
|
|
159
|
+
organizationName: usageMetadata.organizationName || usageMetadata.organizationId,
|
|
160
|
+
productName: usageMetadata.productName || usageMetadata.productId,
|
|
149
161
|
agent: usageMetadata.agent,
|
|
150
162
|
};
|
|
151
163
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata-builder.js","sourceRoot":"","sources":["../../../src/utils/metadata-builder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAkBH;;;;GAIG;AACH,MAAM,kBAAkB,GAA0B;IAChD,EAAE,MAAM,EAAE,SAAS,EAAE;IACrB,EAAE,MAAM,EAAE,UAAU,EAAE;IACtB,EAAE,MAAM,EAAE,OAAO,EAAE;IACnB,EAAE,MAAM,EAAE,gBAAgB,EAAE;IAC5B,EAAE,MAAM,EAAE,WAAW,EAAE;IACvB,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"metadata-builder.js","sourceRoot":"","sources":["../../../src/utils/metadata-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-api-client.d.ts","sourceRoot":"","sources":["../../../../src/core/tracking/tool-api-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAOhE,wBAAsB,aAAa,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4D5E"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { ToolContext } from "../../types/tool-metering.js";
|
|
2
|
+
export declare function setToolContext(ctx: ToolContext): void;
|
|
3
|
+
export declare function getToolContext(): ToolContext;
|
|
4
|
+
export declare function clearToolContext(): void;
|
|
5
|
+
export declare function runWithToolContext<T>(ctx: ToolContext, fn: () => T | Promise<T>): T | Promise<T>;
|
|
6
|
+
//# sourceMappingURL=tool-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-context.d.ts","sourceRoot":"","sources":["../../../../src/core/tracking/tool-context.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAI3D,wBAAgB,cAAc,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,CAGrD;AAED,wBAAgB,cAAc,IAAI,WAAW,CAE5C;AAED,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC;AAED,wBAAgB,kBAAkB,CAAC,CAAC,EAClC,GAAG,EAAE,WAAW,EAChB,EAAE,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GACvB,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAGhB"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { ToolMetadata, ToolCallReport } from "../../types/tool-metering.js";
|
|
2
|
+
export declare function meterTool<T>(toolId: string, fn: () => T | Promise<T>, metadata?: ToolMetadata): Promise<T>;
|
|
3
|
+
export declare function reportToolCall(toolId: string, report: ToolCallReport): void;
|
|
4
|
+
//# sourceMappingURL=tool-tracker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-tracker.d.ts","sourceRoot":"","sources":["../../../../src/core/tracking/tool-tracker.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAoB,MAAM,8BAA8B,CAAC;AAwE9F,wBAAgB,SAAS,CAAC,CAAC,EACzB,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EACxB,QAAQ,CAAC,EAAE,YAAY,GACtB,OAAO,CAAC,CAAC,CAAC,CA0CZ;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,CAuB3E"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -73,4 +73,7 @@ export { trackUsageAsync, trackEmbeddingsUsageAsync, trackImageUsageAsync, track
|
|
|
73
73
|
* Provider detection functions
|
|
74
74
|
*/
|
|
75
75
|
export { detectProvider, hasAzureConfig, validateAzureConfig, getProviderMetadata, } from "./core/providers";
|
|
76
|
+
export type { ToolContext, ToolMetadata, ToolEventPayload, ToolCallReport, } from "./types/tool-metering.js";
|
|
77
|
+
export { meterTool, reportToolCall, } from "./core/tracking/tool-tracker.js";
|
|
78
|
+
export { setToolContext, getToolContext, clearToolContext, runWithToolContext, } from "./core/tracking/tool-context.js";
|
|
76
79
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,gCAAgC,CAAC;AAExC;;;;;;;GAOG;AACH,YAAY;AACV;;;;;GAKG;AACH,cAAc;AAEd;;;;;;GAMG;AACH,aAAa;AAEb;;;;;;GAMG;AACH,MAAM;AAEN;;;;;GAKG;AACH,WAAW;AAEX;;;;;GAKG;AACH,QAAQ;AAER;;;;;GAKG;AACH,YAAY,GACb,MAAM,SAAS,CAAC;AAMjB;;GAEG;AACH,OAAO,EACL,UAAU,EACV,SAAS,EACT,aAAa,EACb,KAAK,EACL,SAAS,GACV,MAAM,eAAe,CAAC;AAEvB;;GAEG;AACH,OAAO,EACL,cAAc,EACd,aAAa,EACb,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,4BAA4B,EAC5B,0BAA0B,EAC1B,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAE3B;;GAEG;AACH,OAAO,EACL,eAAe,EACf,yBAAyB,EACzB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AAEzB;;GAEG;AACH,OAAO,EACL,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,gCAAgC,CAAC;AAExC;;;;;;;GAOG;AACH,YAAY;AACV;;;;;GAKG;AACH,cAAc;AAEd;;;;;;GAMG;AACH,aAAa;AAEb;;;;;;GAMG;AACH,MAAM;AAEN;;;;;GAKG;AACH,WAAW;AAEX;;;;;GAKG;AACH,QAAQ;AAER;;;;;GAKG;AACH,YAAY,GACb,MAAM,SAAS,CAAC;AAMjB;;GAEG;AACH,OAAO,EACL,UAAU,EACV,SAAS,EACT,aAAa,EACb,KAAK,EACL,SAAS,GACV,MAAM,eAAe,CAAC;AAEvB;;GAEG;AACH,OAAO,EACL,cAAc,EACd,aAAa,EACb,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,4BAA4B,EAC5B,0BAA0B,EAC1B,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAE3B;;GAEG;AACH,OAAO,EACL,eAAe,EACf,yBAAyB,EACzB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AAEzB;;GAEG;AACH,OAAO,EACL,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EACV,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,cAAc,GACf,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,SAAS,EACT,cAAc,GACf,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,iCAAiC,CAAC"}
|
|
@@ -42,9 +42,19 @@ export interface Subscriber {
|
|
|
42
42
|
export interface UsageMetadata {
|
|
43
43
|
/** User identification information (nested structure for detailed tracking) */
|
|
44
44
|
subscriber?: Subscriber;
|
|
45
|
-
/**
|
|
45
|
+
/** Customer organization name for multi-tenant applications (used for lookup/auto-creation) */
|
|
46
|
+
organizationName?: string;
|
|
47
|
+
/**
|
|
48
|
+
* @deprecated Use organizationName instead. This field will be removed in a future version.
|
|
49
|
+
* Organization or company identifier for multi-tenant applications
|
|
50
|
+
*/
|
|
46
51
|
organizationId?: string;
|
|
47
|
-
/** Product or
|
|
52
|
+
/** Product or feature name that is using AI services (used for lookup/auto-creation) */
|
|
53
|
+
productName?: string;
|
|
54
|
+
/**
|
|
55
|
+
* @deprecated Use productName instead. This field will be removed in a future version.
|
|
56
|
+
* Product or application identifier for usage segmentation
|
|
57
|
+
*/
|
|
48
58
|
productId?: string;
|
|
49
59
|
/** Subscription identifier for billing and plan management */
|
|
50
60
|
subscriptionId?: string;
|
|
@@ -197,8 +207,8 @@ export interface ReveniumPayload {
|
|
|
197
207
|
traceId?: string;
|
|
198
208
|
taskType?: string;
|
|
199
209
|
agent?: string;
|
|
200
|
-
|
|
201
|
-
|
|
210
|
+
organizationName?: string;
|
|
211
|
+
productName?: string;
|
|
202
212
|
subscriber?: Subscriber;
|
|
203
213
|
subscriptionId?: string;
|
|
204
214
|
responseQualityScore?: number;
|
|
@@ -255,4 +265,5 @@ export interface AudioSpeechAttributes {
|
|
|
255
265
|
audio_size_bytes?: number;
|
|
256
266
|
}
|
|
257
267
|
export type AudioAttributes = AudioTranscriptionAttributes | AudioSpeechAttributes;
|
|
268
|
+
export * from "./tool-metering.js";
|
|
258
269
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,cAAc,0BAA0B,CAAC;AAGzC,cAAc,oBAAoB,CAAC;AAEnC;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IACzB,wEAAwE;IACxE,IAAI,EAAE,MAAM,CAAC;IACb,wDAAwD;IACxD,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IACzB,gDAAgD;IAChD,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,sCAAsC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4DAA4D;IAC5D,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B,+EAA+E;IAC/E,UAAU,CAAC,EAAE,UAAU,CAAC;IAExB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
export interface ToolContext {
|
|
2
|
+
agent?: string;
|
|
3
|
+
organizationName?: string;
|
|
4
|
+
productName?: string;
|
|
5
|
+
subscriberCredential?: string;
|
|
6
|
+
workflowId?: string;
|
|
7
|
+
traceId?: string;
|
|
8
|
+
transactionId?: string;
|
|
9
|
+
}
|
|
10
|
+
export interface ToolMetadata extends ToolContext {
|
|
11
|
+
operation?: string;
|
|
12
|
+
outputFields?: string[];
|
|
13
|
+
usageMetadata?: Record<string, unknown>;
|
|
14
|
+
}
|
|
15
|
+
export interface ToolEventPayload {
|
|
16
|
+
transactionId: string;
|
|
17
|
+
toolId: string;
|
|
18
|
+
operation?: string;
|
|
19
|
+
durationMs: number;
|
|
20
|
+
success: boolean;
|
|
21
|
+
timestamp: string;
|
|
22
|
+
errorMessage?: string;
|
|
23
|
+
usageMetadata?: Record<string, unknown>;
|
|
24
|
+
agent?: string;
|
|
25
|
+
organizationName?: string;
|
|
26
|
+
productName?: string;
|
|
27
|
+
subscriberCredential?: string;
|
|
28
|
+
workflowId?: string;
|
|
29
|
+
traceId?: string;
|
|
30
|
+
middlewareSource: string;
|
|
31
|
+
}
|
|
32
|
+
export interface ToolCallReport {
|
|
33
|
+
operation?: string;
|
|
34
|
+
durationMs: number;
|
|
35
|
+
success: boolean;
|
|
36
|
+
errorMessage?: string;
|
|
37
|
+
usageMetadata?: Record<string, unknown>;
|
|
38
|
+
agent?: string;
|
|
39
|
+
organizationName?: string;
|
|
40
|
+
productName?: string;
|
|
41
|
+
subscriberCredential?: string;
|
|
42
|
+
workflowId?: string;
|
|
43
|
+
traceId?: string;
|
|
44
|
+
transactionId?: string;
|
|
45
|
+
timestamp?: string;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=tool-metering.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-metering.d.ts","sourceRoot":"","sources":["../../../src/types/tool-metering.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,YAAa,SAAQ,WAAW;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,gBAAgB;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
|
|
@@ -12,6 +12,9 @@ import { UsageMetadata } from "../types";
|
|
|
12
12
|
* a clean, testable way to handle metadata transformation.
|
|
13
13
|
* Subscriber object is passed through directly without transformation.
|
|
14
14
|
*
|
|
15
|
+
* Implements field migration: organizationName/productName take priority over
|
|
16
|
+
* organizationId/productId for backward compatibility.
|
|
17
|
+
*
|
|
15
18
|
* @param usageMetadata - Source metadata from request
|
|
16
19
|
* @returns Clean metadata object for payload
|
|
17
20
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata-builder.d.ts","sourceRoot":"","sources":["../../../src/utils/metadata-builder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"metadata-builder.d.ts","sourceRoot":"","sources":["../../../src/utils/metadata-builder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAwCzC;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CACjC,aAAa,CAAC,EAAE,aAAa,GAC5B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAgCzB;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,aAAa,CAAC,EAAE,aAAa,EAC7B,cAAc,GAAE,CAAC,MAAM,aAAa,CAAC,EAAO,GAC3C;IACD,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CA4CA;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,GAAG,OAAO,EAAE,CAAC,aAAa,GAAG,SAAS,CAAC,EAAE,GACxC,aAAa,CAQf;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/D,MAAM,EAAE,CAAC,GAAG;IAAE,aAAa,CAAC,EAAE,aAAa,CAAA;CAAE,GAC5C;IACD,QAAQ,EAAE,aAAa,GAAG,SAAS,CAAC;IACpC,WAAW,EAAE,IAAI,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;CACvC,CAMA;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,aAAa,CAAC,EAAE,aAAa,GAC5B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAqBzB;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACxC,aAAa,CAAC,EAAE,aAAa,GAC5B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAiCzB"}
|
package/examples/README.md
CHANGED
|
@@ -120,8 +120,8 @@ npx tsx examples/openai/metadata.ts
|
|
|
120
120
|
- `traceId` - Session or conversation tracking identifier
|
|
121
121
|
- `taskType` - Type of AI task being performed
|
|
122
122
|
- `agent` - AI agent or bot identifier
|
|
123
|
-
- `
|
|
124
|
-
- `
|
|
123
|
+
- `organizationName` - Organization name (used for lookup/auto-creation)
|
|
124
|
+
- `productName` - Product or service name (used for lookup/auto-creation)
|
|
125
125
|
- `subscriptionId` - Subscription tier identifier
|
|
126
126
|
- `responseQualityScore` - Quality rating (0.0-1.0)
|
|
127
127
|
- `subscriber` - Nested subscriber object with `id`, `email`, `credential` (with `name` and `value`)
|
package/examples/azure/basic.ts
CHANGED
|
@@ -14,8 +14,8 @@ async function main() {
|
|
|
14
14
|
|
|
15
15
|
// Create a metadata
|
|
16
16
|
const metadata: UsageMetadata = {
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
organizationName: "org-azure-demo",
|
|
18
|
+
productName: "prod-azure-integration",
|
|
19
19
|
taskType: "question-answering",
|
|
20
20
|
agent: "azure-assistant",
|
|
21
21
|
};
|
|
@@ -49,7 +49,7 @@ async function main() {
|
|
|
49
49
|
max_completion_tokens: 2000, // Increased for reasoning models (gpt-5-mini uses reasoning tokens)
|
|
50
50
|
// Note: Reasoning models like gpt-5-mini only support default temperature (1.0)
|
|
51
51
|
},
|
|
52
|
-
metadata
|
|
52
|
+
metadata,
|
|
53
53
|
);
|
|
54
54
|
|
|
55
55
|
// Display the response
|
|
@@ -18,8 +18,8 @@ async function main() {
|
|
|
18
18
|
|
|
19
19
|
// Create a metadata
|
|
20
20
|
const metadata: UsageMetadata = {
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
organizationName: "org-azure-responses",
|
|
22
|
+
productName: "prod-azure-responses",
|
|
23
23
|
};
|
|
24
24
|
|
|
25
25
|
try {
|
|
@@ -28,7 +28,7 @@ async function main() {
|
|
|
28
28
|
model: "gpt-5-mini-2", // Your Azure deployment name
|
|
29
29
|
input: "What is the capital of France?",
|
|
30
30
|
},
|
|
31
|
-
metadata
|
|
31
|
+
metadata,
|
|
32
32
|
);
|
|
33
33
|
|
|
34
34
|
// Display response
|
|
@@ -37,7 +37,7 @@ async function main() {
|
|
|
37
37
|
} catch (error) {
|
|
38
38
|
console.error("Error:", (error as Error).message);
|
|
39
39
|
console.log(
|
|
40
|
-
"\nNote: Responses API is experimental and may not be available in all OpenAI SDK versions"
|
|
40
|
+
"\nNote: Responses API is experimental and may not be available in all OpenAI SDK versions",
|
|
41
41
|
);
|
|
42
42
|
}
|
|
43
43
|
}
|
|
@@ -18,8 +18,8 @@ async function main() {
|
|
|
18
18
|
|
|
19
19
|
// Create a metadata
|
|
20
20
|
const metadata: UsageMetadata = {
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
organizationName: "org-azure-responses-streaming-demo",
|
|
22
|
+
productName: "prod-azure-responses",
|
|
23
23
|
taskType: "creative-writing",
|
|
24
24
|
};
|
|
25
25
|
|
|
@@ -31,7 +31,7 @@ async function main() {
|
|
|
31
31
|
input: "Write a short poem about the ocean.",
|
|
32
32
|
stream: true as const,
|
|
33
33
|
},
|
|
34
|
-
metadata
|
|
34
|
+
metadata,
|
|
35
35
|
);
|
|
36
36
|
|
|
37
37
|
// Process the stream
|
|
@@ -53,7 +53,7 @@ async function main() {
|
|
|
53
53
|
} catch (error) {
|
|
54
54
|
console.error("Error:", (error as Error).message);
|
|
55
55
|
console.log(
|
|
56
|
-
"\nNote: Responses API is experimental and may not be available in all OpenAI SDK versions"
|
|
56
|
+
"\nNote: Responses API is experimental and may not be available in all OpenAI SDK versions",
|
|
57
57
|
);
|
|
58
58
|
}
|
|
59
59
|
}
|
package/examples/azure/stream.ts
CHANGED
|
@@ -14,8 +14,8 @@ async function main() {
|
|
|
14
14
|
|
|
15
15
|
// Create a metadata
|
|
16
16
|
const metadata: UsageMetadata = {
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
organizationName: "org-azure-streaming",
|
|
18
|
+
productName: "prod-azure-integration",
|
|
19
19
|
taskType: "creative-writing",
|
|
20
20
|
agent: "azure-poet",
|
|
21
21
|
};
|
|
@@ -39,7 +39,7 @@ async function main() {
|
|
|
39
39
|
max_completion_tokens: 2000,
|
|
40
40
|
stream: true as const,
|
|
41
41
|
},
|
|
42
|
-
metadata
|
|
42
|
+
metadata,
|
|
43
43
|
);
|
|
44
44
|
|
|
45
45
|
// Process the stream
|
|
@@ -17,8 +17,8 @@ async function main() {
|
|
|
17
17
|
|
|
18
18
|
// Create metadata
|
|
19
19
|
const metadata = {
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
organizationName: "org-getting-started-demo",
|
|
21
|
+
productName: "prod-getting-started",
|
|
22
22
|
};
|
|
23
23
|
|
|
24
24
|
// Make request
|
package/examples/openai/basic.ts
CHANGED
|
@@ -12,8 +12,8 @@ async function main() {
|
|
|
12
12
|
// Get client
|
|
13
13
|
const client = GetClient();
|
|
14
14
|
const metadata: UsageMetadata = {
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
organizationName: "org-basic-demo",
|
|
16
|
+
productName: "prod-openai-basic",
|
|
17
17
|
};
|
|
18
18
|
|
|
19
19
|
// Create chat completion
|
|
@@ -32,7 +32,7 @@ async function main() {
|
|
|
32
32
|
],
|
|
33
33
|
max_tokens: 1000,
|
|
34
34
|
},
|
|
35
|
-
metadata
|
|
35
|
+
metadata,
|
|
36
36
|
);
|
|
37
37
|
|
|
38
38
|
// Display response
|
|
@@ -15,11 +15,11 @@ async function main() {
|
|
|
15
15
|
// Optional metadata for advanced reporting, lineage tracking, and cost allocation
|
|
16
16
|
const metadata: UsageMetadata = {
|
|
17
17
|
// Organization & billing
|
|
18
|
-
|
|
18
|
+
organizationName: "org-metadata-demo",
|
|
19
19
|
subscriptionId: "plan-premium-2025",
|
|
20
20
|
|
|
21
21
|
// Product & task tracking
|
|
22
|
-
|
|
22
|
+
productName: "ai-assistant",
|
|
23
23
|
taskType: "explanation-request",
|
|
24
24
|
agent: "openai-metadata-chat-node",
|
|
25
25
|
|
|
@@ -27,7 +27,7 @@ async function main() {
|
|
|
27
27
|
traceId: "session-" + Date.now(),
|
|
28
28
|
|
|
29
29
|
// Quality metrics
|
|
30
|
-
responseQualityScore: 0.95,
|
|
30
|
+
responseQualityScore: 0.95,
|
|
31
31
|
|
|
32
32
|
// User tracking
|
|
33
33
|
subscriber: {
|
|
@@ -54,7 +54,7 @@ async function main() {
|
|
|
54
54
|
],
|
|
55
55
|
max_tokens: 1000,
|
|
56
56
|
},
|
|
57
|
-
metadata
|
|
57
|
+
metadata,
|
|
58
58
|
);
|
|
59
59
|
|
|
60
60
|
// Display response
|