@revenium/openai 1.0.16 → 1.1.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/CHANGELOG.md +20 -0
- package/README.md +159 -18
- package/dist/cjs/core/config/loader.js +27 -1
- package/dist/cjs/core/config/loader.js.map +1 -1
- package/dist/cjs/core/middleware/interfaces.js +70 -32
- package/dist/cjs/core/middleware/interfaces.js.map +1 -1
- package/dist/cjs/core/tracking/index.js +3 -1
- package/dist/cjs/core/tracking/index.js.map +1 -1
- package/dist/cjs/core/tracking/payload-builder.js +34 -5
- package/dist/cjs/core/tracking/payload-builder.js.map +1 -1
- package/dist/cjs/core/tracking/summary-printer.js +196 -0
- package/dist/cjs/core/tracking/summary-printer.js.map +1 -0
- package/dist/cjs/core/tracking/usage-tracker.js +37 -5
- package/dist/cjs/core/tracking/usage-tracker.js.map +1 -1
- package/dist/cjs/types/index.js.map +1 -1
- package/dist/cjs/utils/metadata-builder.js +21 -9
- package/dist/cjs/utils/metadata-builder.js.map +1 -1
- package/dist/cjs/utils/prompt-extraction.js +231 -0
- package/dist/cjs/utils/prompt-extraction.js.map +1 -0
- package/dist/esm/core/config/loader.js +27 -1
- package/dist/esm/core/config/loader.js.map +1 -1
- package/dist/esm/core/middleware/interfaces.js +70 -32
- package/dist/esm/core/middleware/interfaces.js.map +1 -1
- package/dist/esm/core/tracking/index.js +1 -0
- package/dist/esm/core/tracking/index.js.map +1 -1
- package/dist/esm/core/tracking/payload-builder.js +34 -5
- package/dist/esm/core/tracking/payload-builder.js.map +1 -1
- package/dist/esm/core/tracking/summary-printer.js +193 -0
- package/dist/esm/core/tracking/summary-printer.js.map +1 -0
- package/dist/esm/core/tracking/usage-tracker.js +37 -5
- package/dist/esm/core/tracking/usage-tracker.js.map +1 -1
- package/dist/esm/types/index.js.map +1 -1
- package/dist/esm/utils/metadata-builder.js +21 -9
- package/dist/esm/utils/metadata-builder.js.map +1 -1
- package/dist/esm/utils/prompt-extraction.js +225 -0
- package/dist/esm/utils/prompt-extraction.js.map +1 -0
- package/dist/types/core/config/loader.d.ts.map +1 -1
- package/dist/types/core/middleware/interfaces.d.ts +4 -1
- package/dist/types/core/middleware/interfaces.d.ts.map +1 -1
- package/dist/types/core/tracking/index.d.ts +1 -0
- package/dist/types/core/tracking/index.d.ts.map +1 -1
- package/dist/types/core/tracking/payload-builder.d.ts.map +1 -1
- package/dist/types/core/tracking/summary-printer.d.ts +9 -0
- package/dist/types/core/tracking/summary-printer.d.ts.map +1 -0
- package/dist/types/core/tracking/usage-tracker.d.ts +2 -0
- package/dist/types/core/tracking/usage-tracker.d.ts.map +1 -1
- package/dist/types/types/index.d.ts +39 -4
- package/dist/types/types/index.d.ts.map +1 -1
- package/dist/types/utils/metadata-builder.d.ts +3 -0
- package/dist/types/utils/metadata-builder.d.ts.map +1 -1
- package/dist/types/utils/prompt-extraction.d.ts +29 -0
- package/dist/types/utils/prompt-extraction.d.ts.map +1 -0
- 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 +95 -0
- 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,225 @@
|
|
|
1
|
+
import { getConfig } from "../core/config/index.js";
|
|
2
|
+
const DEFAULT_MAX_PROMPT_SIZE = 50000;
|
|
3
|
+
const CAPTURE_PROMPTS_DEFAULT = false;
|
|
4
|
+
export function getMaxPromptSize() {
|
|
5
|
+
const config = getConfig();
|
|
6
|
+
if (config?.maxPromptSize && config.maxPromptSize > 0) {
|
|
7
|
+
return config.maxPromptSize;
|
|
8
|
+
}
|
|
9
|
+
const envValue = process.env.REVENIUM_MAX_PROMPT_SIZE;
|
|
10
|
+
if (envValue) {
|
|
11
|
+
const parsed = parseInt(envValue, 10);
|
|
12
|
+
if (!isNaN(parsed) && parsed > 0) {
|
|
13
|
+
return parsed;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
return DEFAULT_MAX_PROMPT_SIZE;
|
|
17
|
+
}
|
|
18
|
+
function contentBlocksToString(blocks) {
|
|
19
|
+
return blocks
|
|
20
|
+
.map((block) => {
|
|
21
|
+
if (block.type === "text" && block.text) {
|
|
22
|
+
return block.text;
|
|
23
|
+
}
|
|
24
|
+
if (block.type === "image_url") {
|
|
25
|
+
return "[IMAGE]";
|
|
26
|
+
}
|
|
27
|
+
return "";
|
|
28
|
+
})
|
|
29
|
+
.filter(Boolean)
|
|
30
|
+
.join("\n");
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Sanitizes common credential patterns from text.
|
|
34
|
+
*
|
|
35
|
+
* Redacts the following credential types:
|
|
36
|
+
* - OpenAI keys: sk-*, sk-proj-*, sk-ant-* (20+ chars)
|
|
37
|
+
* - Perplexity keys: pplx-* (20+ chars)
|
|
38
|
+
* - AWS access keys: AKIA* (20 chars)
|
|
39
|
+
* - GitHub tokens: ghp_*, ghs_* (36+ chars)
|
|
40
|
+
* - JWT tokens: eyJ*.eyJ*.*
|
|
41
|
+
* - Bearer tokens
|
|
42
|
+
* - Generic API keys, tokens, passwords, secrets (8-20+ chars)
|
|
43
|
+
*
|
|
44
|
+
* LIMITATIONS:
|
|
45
|
+
* - Shorter credentials may pass through unsanitized
|
|
46
|
+
* - Length constraints balance security with false positive prevention
|
|
47
|
+
*/
|
|
48
|
+
export function sanitizeCredentials(text) {
|
|
49
|
+
const patterns = [
|
|
50
|
+
{
|
|
51
|
+
regex: /pplx-[a-zA-Z0-9_-]{20,}/g,
|
|
52
|
+
replacement: "pplx-***REDACTED***",
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
regex: /sk-proj-[a-zA-Z0-9_-]{48,}/g,
|
|
56
|
+
replacement: "sk-proj-***REDACTED***",
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
regex: /sk-ant-[a-zA-Z0-9_-]{20,}/g,
|
|
60
|
+
replacement: "sk-ant-***REDACTED***",
|
|
61
|
+
},
|
|
62
|
+
{ regex: /sk-[a-zA-Z0-9_-]{20,}/g, replacement: "sk-***REDACTED***" },
|
|
63
|
+
{
|
|
64
|
+
regex: /AKIA[A-Z0-9]{16}/g,
|
|
65
|
+
replacement: "AKIA***REDACTED***",
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
regex: /ghp_[a-zA-Z0-9]{36,}/g,
|
|
69
|
+
replacement: "ghp_***REDACTED***",
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
regex: /ghs_[a-zA-Z0-9]{36,}/g,
|
|
73
|
+
replacement: "ghs_***REDACTED***",
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
regex: /eyJ[a-zA-Z0-9_-]+\.eyJ[a-zA-Z0-9_-]+\.[a-zA-Z0-9_-]+/g,
|
|
77
|
+
replacement: "***REDACTED_JWT***",
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
regex: /Bearer\s+[a-zA-Z0-9_\-.+\/=]+/gi,
|
|
81
|
+
replacement: "Bearer ***REDACTED***",
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
regex: /api[_-]?key["'\s:=]+[a-zA-Z0-9_\-.+\/=]{20,}/gi,
|
|
85
|
+
replacement: "api_key: ***REDACTED***",
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
regex: /token["'\s:=]+[a-zA-Z0-9_\-.+\/=]{20,}/gi,
|
|
89
|
+
replacement: "token: ***REDACTED***",
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
regex: /password["'\s:=]+["']?([^"'\s]{8,})["']?/gi,
|
|
93
|
+
replacement: "password: ***REDACTED***",
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
regex: /secret["'\s:=]+["']?([^"'\s]{8,})["']?/gi,
|
|
97
|
+
replacement: "secret: ***REDACTED***",
|
|
98
|
+
},
|
|
99
|
+
];
|
|
100
|
+
let sanitized = text;
|
|
101
|
+
for (const pattern of patterns) {
|
|
102
|
+
sanitized = sanitized.replace(pattern.regex, pattern.replacement);
|
|
103
|
+
}
|
|
104
|
+
return sanitized;
|
|
105
|
+
}
|
|
106
|
+
function truncateString(str, maxLength) {
|
|
107
|
+
if (!str || str.length === 0) {
|
|
108
|
+
return { value: "", truncated: false };
|
|
109
|
+
}
|
|
110
|
+
const sanitized = sanitizeCredentials(str);
|
|
111
|
+
if (sanitized.length <= maxLength) {
|
|
112
|
+
return { value: sanitized, truncated: false };
|
|
113
|
+
}
|
|
114
|
+
return { value: sanitized.substring(0, maxLength), truncated: true };
|
|
115
|
+
}
|
|
116
|
+
function hasValidMessages(params) {
|
|
117
|
+
return !!(params.messages && Array.isArray(params.messages));
|
|
118
|
+
}
|
|
119
|
+
function extractSystemPrompt(params) {
|
|
120
|
+
if (!hasValidMessages(params)) {
|
|
121
|
+
return "";
|
|
122
|
+
}
|
|
123
|
+
const systemMessages = params.messages
|
|
124
|
+
.filter((msg) => msg.role === "system")
|
|
125
|
+
.map((msg) => {
|
|
126
|
+
const content = msg.content;
|
|
127
|
+
if (typeof content === "string") {
|
|
128
|
+
return content;
|
|
129
|
+
}
|
|
130
|
+
if (Array.isArray(content)) {
|
|
131
|
+
return contentBlocksToString(content);
|
|
132
|
+
}
|
|
133
|
+
return "";
|
|
134
|
+
})
|
|
135
|
+
.filter(Boolean);
|
|
136
|
+
return systemMessages.join("\n\n");
|
|
137
|
+
}
|
|
138
|
+
function extractInputMessages(params) {
|
|
139
|
+
if (!hasValidMessages(params)) {
|
|
140
|
+
return "";
|
|
141
|
+
}
|
|
142
|
+
return params.messages
|
|
143
|
+
.filter((msg) => msg.role !== "system")
|
|
144
|
+
.map((message) => {
|
|
145
|
+
const role = message.role;
|
|
146
|
+
let content = "";
|
|
147
|
+
const msgContent = message.content;
|
|
148
|
+
if (typeof msgContent === "string") {
|
|
149
|
+
content = msgContent;
|
|
150
|
+
}
|
|
151
|
+
else if (Array.isArray(msgContent)) {
|
|
152
|
+
content = contentBlocksToString(msgContent);
|
|
153
|
+
}
|
|
154
|
+
return `[${role}]\n${content}`;
|
|
155
|
+
})
|
|
156
|
+
.join("\n\n");
|
|
157
|
+
}
|
|
158
|
+
function extractOutputResponse(response) {
|
|
159
|
+
if (!response.choices || response.choices.length === 0) {
|
|
160
|
+
return "";
|
|
161
|
+
}
|
|
162
|
+
const choice = response.choices[0];
|
|
163
|
+
const parts = [];
|
|
164
|
+
if (choice.message?.content) {
|
|
165
|
+
parts.push(choice.message.content);
|
|
166
|
+
}
|
|
167
|
+
if (choice.delta?.content) {
|
|
168
|
+
parts.push(choice.delta.content);
|
|
169
|
+
}
|
|
170
|
+
const message = choice.message;
|
|
171
|
+
if (message?.tool_calls && Array.isArray(message.tool_calls)) {
|
|
172
|
+
message.tool_calls.forEach((toolCall) => {
|
|
173
|
+
if (toolCall.function?.name) {
|
|
174
|
+
parts.push(`[TOOL_USE: ${toolCall.function.name}]`);
|
|
175
|
+
}
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
if (message?.function_call?.name) {
|
|
179
|
+
parts.push(`[FUNCTION_CALL: ${message.function_call.name}]`);
|
|
180
|
+
}
|
|
181
|
+
return parts.join("\n");
|
|
182
|
+
}
|
|
183
|
+
export function shouldCapturePrompts(metadata) {
|
|
184
|
+
if (metadata?.capturePrompts !== undefined) {
|
|
185
|
+
return metadata.capturePrompts;
|
|
186
|
+
}
|
|
187
|
+
const config = getConfig();
|
|
188
|
+
if (config?.capturePrompts !== undefined) {
|
|
189
|
+
return config.capturePrompts;
|
|
190
|
+
}
|
|
191
|
+
const envValue = process.env.REVENIUM_CAPTURE_PROMPTS;
|
|
192
|
+
if (envValue !== undefined) {
|
|
193
|
+
return envValue.toLowerCase() === "true";
|
|
194
|
+
}
|
|
195
|
+
return CAPTURE_PROMPTS_DEFAULT;
|
|
196
|
+
}
|
|
197
|
+
export function extractPrompts(params, response, metadata) {
|
|
198
|
+
if (!shouldCapturePrompts(metadata)) {
|
|
199
|
+
return null;
|
|
200
|
+
}
|
|
201
|
+
const maxSize = getMaxPromptSize();
|
|
202
|
+
let anyTruncated = false;
|
|
203
|
+
const systemPromptRaw = extractSystemPrompt(params);
|
|
204
|
+
const systemPromptResult = truncateString(systemPromptRaw, maxSize);
|
|
205
|
+
anyTruncated = anyTruncated || systemPromptResult.truncated;
|
|
206
|
+
const inputMessagesRaw = extractInputMessages(params);
|
|
207
|
+
const inputMessagesResult = truncateString(inputMessagesRaw, maxSize);
|
|
208
|
+
anyTruncated = anyTruncated || inputMessagesResult.truncated;
|
|
209
|
+
const outputResponseRaw = extractOutputResponse(response);
|
|
210
|
+
const outputResponseResult = truncateString(outputResponseRaw, maxSize);
|
|
211
|
+
anyTruncated = anyTruncated || outputResponseResult.truncated;
|
|
212
|
+
const hasAnyContent = systemPromptResult.value ||
|
|
213
|
+
inputMessagesResult.value ||
|
|
214
|
+
outputResponseResult.value;
|
|
215
|
+
if (!hasAnyContent) {
|
|
216
|
+
return null;
|
|
217
|
+
}
|
|
218
|
+
return {
|
|
219
|
+
systemPrompt: systemPromptResult.value || undefined,
|
|
220
|
+
inputMessages: inputMessagesResult.value || undefined,
|
|
221
|
+
outputResponse: outputResponseResult.value || undefined,
|
|
222
|
+
promptsTruncated: anyTruncated,
|
|
223
|
+
};
|
|
224
|
+
}
|
|
225
|
+
//# sourceMappingURL=prompt-extraction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt-extraction.js","sourceRoot":"","sources":["../../../src/utils/prompt-extraction.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../../src/core/config/loader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../../src/core/config/loader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,WAAW,EAAiB,MAAM,aAAa,CAAC;AAwDzE;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,cAAc,GAAG,IAAI,CA+BzD;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,WAAW,GAAG,IAAI,CAc3D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAI7C"}
|
|
@@ -20,7 +20,10 @@ export declare class StreamingWrapper implements AsyncIterable<OpenAI.ChatComple
|
|
|
20
20
|
private firstTokenTime?;
|
|
21
21
|
private requestId;
|
|
22
22
|
private usage;
|
|
23
|
-
|
|
23
|
+
private messages;
|
|
24
|
+
private accumulatedContent;
|
|
25
|
+
constructor(stream: AsyncIterable<OpenAI.ChatCompletionChunk>, config: Config, providerInfo: ProviderInfo, model: string, messages: any[], metadata?: UsageMetadata);
|
|
26
|
+
private buildTrackingPayload;
|
|
24
27
|
[Symbol.asyncIterator](): AsyncIterator<OpenAI.ChatCompletionChunk>;
|
|
25
28
|
}
|
|
26
29
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../../src/core/middleware/interfaces.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAQlE,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EAClB,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../../src/core/middleware/interfaces.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,5 +7,6 @@
|
|
|
7
7
|
export { sendToRevenium } from "./api-client.js";
|
|
8
8
|
export { buildPayload, buildImagePayload, buildAudioPayload, } from "./payload-builder.js";
|
|
9
9
|
export { sendReveniumMetrics, sendReveniumEmbeddingsMetrics, trackUsageAsync, trackEmbeddingsUsageAsync, trackImageUsageAsync, trackAudioUsageAsync, } from "./usage-tracker.js";
|
|
10
|
+
export { printUsageSummary } from "./summary-printer.js";
|
|
10
11
|
export { mapStopReason } from "../../utils/stop-reason-mapper.js";
|
|
11
12
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/tracking/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,mBAAmB,EACnB,6BAA6B,EAC7B,eAAe,EACf,yBAAyB,EACzB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/tracking/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,mBAAmB,EACnB,6BAA6B,EAC7B,eAAe,EACf,yBAAyB,EACzB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGzD,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payload-builder.d.ts","sourceRoot":"","sources":["../../../../src/core/tracking/payload-builder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,iBAAiB,EACjB,sBAAsB,EACvB,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"payload-builder.d.ts","sourceRoot":"","sources":["../../../../src/core/tracking/payload-builder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,iBAAiB,EACjB,sBAAsB,EACvB,MAAM,oCAAoC,CAAC;AAqB5C;;;;;;;;;;;;;GAaG;AACH,wBAAsB,YAAY,CAChC,aAAa,EAAE,MAAM,GAAG,OAAO,EAC/B,QAAQ,EAAE,kBAAkB,GAAG,uBAAuB,EACtD,OAAO,EAAE,iBAAiB,GAAG,sBAAsB,EACnD,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,eAAe,CAAC,CA2I1B;AAED,wBAAgB,iBAAiB,CAC/B,gBAAgB,EAAE,YAAY,GAAG,MAAM,GAAG,WAAW,EACrD,QAAQ,EAAE,GAAG,EACb,OAAO,EAAE,GAAG,EACZ,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,YAAY,CAAC,EAAE,YAAY,EAC3B,aAAa,CAAC,EAAE,GAAG,GAClB,eAAe,CAgEjB;AAED,wBAAgB,iBAAiB,CAC/B,gBAAgB,EAAE,eAAe,GAAG,aAAa,GAAG,kBAAkB,EACtE,QAAQ,EAAE,GAAG,EACb,OAAO,EAAE,GAAG,EACZ,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,YAAY,CAAC,EAAE,YAAY,EAC3B,aAAa,CAAC,EAAE,GAAG,GAClB,eAAe,CAsEjB"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Summary Printer Module
|
|
3
|
+
*
|
|
4
|
+
* Provides terminal output for cost/metrics summary after API requests.
|
|
5
|
+
* Fetches cost data from Revenium's traces API and formats for console display.
|
|
6
|
+
*/
|
|
7
|
+
import { ReveniumPayload } from "../../types";
|
|
8
|
+
export declare function printUsageSummary(payload: ReveniumPayload): void;
|
|
9
|
+
//# sourceMappingURL=summary-printer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"summary-printer.d.ts","sourceRoot":"","sources":["../../../../src/core/tracking/summary-printer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAAiB,MAAM,aAAa,CAAC;AA4P7D,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAyBhE"}
|
|
@@ -31,6 +31,8 @@ export declare function trackUsageAsync(trackingData: {
|
|
|
31
31
|
isStreamed?: boolean;
|
|
32
32
|
timeToFirstToken?: number;
|
|
33
33
|
providerInfo?: ProviderInfo;
|
|
34
|
+
messages?: any[];
|
|
35
|
+
responseContent?: string;
|
|
34
36
|
}): void;
|
|
35
37
|
/**
|
|
36
38
|
* Fire-and-forget wrapper for embeddings with Azure support
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usage-tracker.d.ts","sourceRoot":"","sources":["../../../../src/core/tracking/usage-tracker.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,iBAAiB,EACjB,sBAAsB,EACvB,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"usage-tracker.d.ts","sourceRoot":"","sources":["../../../../src/core/tracking/usage-tracker.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,iBAAiB,EACjB,sBAAsB,EACvB,MAAM,oCAAoC,CAAC;AAU5C;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,EAAE,iBAAiB,EAC1B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,IAAI,CAAC,CA2Bf;AAED;;GAEG;AACH,wBAAsB,6BAA6B,CACjD,QAAQ,EAAE,uBAAuB,EACjC,OAAO,EAAE,sBAAsB,EAC/B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,IAAI,CAAC,CA2Bf;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,YAAY,EAAE;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,GAAG,IAAI,CAwDP;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,YAAY,EAAE;IACtD,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B,GAAG,IAAI,CAmCP;AAED,wBAAsB,oBAAoB,CACxC,gBAAgB,EAAE,YAAY,GAAG,MAAM,GAAG,WAAW,EACrD,QAAQ,EAAE,GAAG,EACb,OAAO,EAAE,GAAG,EACZ,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,GAAG,EACX,YAAY,EAAE,YAAY,EAC1B,QAAQ,CAAC,EAAE,aAAa,GACvB,OAAO,CAAC,IAAI,CAAC,CA0Cf;AAED,wBAAsB,oBAAoB,CACxC,gBAAgB,EAAE,eAAe,GAAG,aAAa,GAAG,kBAAkB,EACtE,QAAQ,EAAE,GAAG,EACb,OAAO,EAAE,GAAG,EACZ,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,GAAG,EACX,YAAY,EAAE,YAAY,EAC1B,QAAQ,CAAC,EAAE,aAAa,GACvB,OAAO,CAAC,IAAI,CAAC,CA0Cf"}
|
|
@@ -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;
|
|
@@ -56,6 +66,8 @@ export interface UsageMetadata {
|
|
|
56
66
|
responseQualityScore?: number;
|
|
57
67
|
/** Agent or model variant identifier for A/B testing and performance tracking */
|
|
58
68
|
agent?: string;
|
|
69
|
+
/** Per-call override for prompt capture (overrides environment variable and config) */
|
|
70
|
+
capturePrompts?: boolean;
|
|
59
71
|
}
|
|
60
72
|
/**
|
|
61
73
|
* Provider information for tracking API source
|
|
@@ -104,6 +116,12 @@ export interface AzureConfig {
|
|
|
104
116
|
/** Azure OpenAI API version */
|
|
105
117
|
apiVersion?: string;
|
|
106
118
|
}
|
|
119
|
+
/**
|
|
120
|
+
* Summary output format options
|
|
121
|
+
* - 'human': Human-readable formatted output with emojis (default when enabled)
|
|
122
|
+
* - 'json': JSON formatted output for automation/parsing
|
|
123
|
+
*/
|
|
124
|
+
export type SummaryFormat = "human" | "json";
|
|
107
125
|
/**
|
|
108
126
|
* Revenium configuration interface
|
|
109
127
|
*
|
|
@@ -123,6 +141,19 @@ export interface ReveniumConfig {
|
|
|
123
141
|
azure?: AzureConfig;
|
|
124
142
|
/** OpenAI API key (optional, can be set via environment variable) */
|
|
125
143
|
openaiApiKey?: string;
|
|
144
|
+
/**
|
|
145
|
+
* Enable cost/metrics summary output to terminal after each API request.
|
|
146
|
+
* - true or 'human': Human-readable format with emojis
|
|
147
|
+
* - 'json': JSON format for automation
|
|
148
|
+
* - false: Disabled (default)
|
|
149
|
+
*/
|
|
150
|
+
printSummary?: boolean | SummaryFormat;
|
|
151
|
+
/** Revenium team ID for fetching cost metrics from the API. If not provided, the summary will still be printed but without cost information. */
|
|
152
|
+
teamId?: string;
|
|
153
|
+
/** Whether to capture and send prompts to Revenium API (default: false) */
|
|
154
|
+
capturePrompts?: boolean;
|
|
155
|
+
/** Maximum size in characters for captured prompts before truncation (default: 50000). Note: uses JavaScript string length (UTF-16 code units), not byte count. */
|
|
156
|
+
maxPromptSize?: number;
|
|
126
157
|
}
|
|
127
158
|
/**
|
|
128
159
|
* Alias for ReveniumConfig for internal use
|
|
@@ -176,8 +207,8 @@ export interface ReveniumPayload {
|
|
|
176
207
|
traceId?: string;
|
|
177
208
|
taskType?: string;
|
|
178
209
|
agent?: string;
|
|
179
|
-
|
|
180
|
-
|
|
210
|
+
organizationName?: string;
|
|
211
|
+
productName?: string;
|
|
181
212
|
subscriber?: Subscriber;
|
|
182
213
|
subscriptionId?: string;
|
|
183
214
|
responseQualityScore?: number;
|
|
@@ -197,6 +228,10 @@ export interface ReveniumPayload {
|
|
|
197
228
|
credentialAlias?: string;
|
|
198
229
|
traceType?: string;
|
|
199
230
|
traceName?: string;
|
|
231
|
+
systemPrompt?: string;
|
|
232
|
+
inputMessages?: string;
|
|
233
|
+
outputResponse?: string;
|
|
234
|
+
promptsTruncated?: boolean;
|
|
200
235
|
}
|
|
201
236
|
export interface ImageAttributes {
|
|
202
237
|
billing_unit: "per_image";
|
|
@@ -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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"}
|
|
@@ -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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { UsageMetadata } from "../types/index.js";
|
|
2
|
+
import { OpenAIChatRequest, OpenAIChatResponse } from "../types/function-parameters.js";
|
|
3
|
+
export declare function getMaxPromptSize(): number;
|
|
4
|
+
export interface PromptData {
|
|
5
|
+
systemPrompt?: string;
|
|
6
|
+
inputMessages?: string;
|
|
7
|
+
outputResponse?: string;
|
|
8
|
+
promptsTruncated: boolean;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Sanitizes common credential patterns from text.
|
|
12
|
+
*
|
|
13
|
+
* Redacts the following credential types:
|
|
14
|
+
* - OpenAI keys: sk-*, sk-proj-*, sk-ant-* (20+ chars)
|
|
15
|
+
* - Perplexity keys: pplx-* (20+ chars)
|
|
16
|
+
* - AWS access keys: AKIA* (20 chars)
|
|
17
|
+
* - GitHub tokens: ghp_*, ghs_* (36+ chars)
|
|
18
|
+
* - JWT tokens: eyJ*.eyJ*.*
|
|
19
|
+
* - Bearer tokens
|
|
20
|
+
* - Generic API keys, tokens, passwords, secrets (8-20+ chars)
|
|
21
|
+
*
|
|
22
|
+
* LIMITATIONS:
|
|
23
|
+
* - Shorter credentials may pass through unsanitized
|
|
24
|
+
* - Length constraints balance security with false positive prevention
|
|
25
|
+
*/
|
|
26
|
+
export declare function sanitizeCredentials(text: string): string;
|
|
27
|
+
export declare function shouldCapturePrompts(metadata?: UsageMetadata): boolean;
|
|
28
|
+
export declare function extractPrompts(params: OpenAIChatRequest, response: OpenAIChatResponse, metadata?: UsageMetadata): PromptData | null;
|
|
29
|
+
//# sourceMappingURL=prompt-extraction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt-extraction.d.ts","sourceRoot":"","sources":["../../../src/utils/prompt-extraction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,iCAAiC,CAAC;AAMzC,wBAAgB,gBAAgB,IAAI,MAAM,CAezC;AAED,MAAM,WAAW,UAAU;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAwCD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CA0DxD;AAmGD,wBAAgB,oBAAoB,CAAC,QAAQ,CAAC,EAAE,aAAa,GAAG,OAAO,CAgBtE;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,iBAAiB,EACzB,QAAQ,EAAE,kBAAkB,EAC5B,QAAQ,CAAC,EAAE,aAAa,GACvB,UAAU,GAAG,IAAI,CAmCnB"}
|
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
|