@revenium/openai 1.0.13 → 1.0.15
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/.env.example +10 -15
- package/CHANGELOG.md +65 -11
- package/CODE_OF_CONDUCT.md +57 -0
- package/CONTRIBUTING.md +38 -0
- package/README.md +104 -216
- package/SECURITY.md +34 -0
- package/dist/cjs/core/client/index.js +14 -0
- package/dist/cjs/core/client/index.js.map +1 -0
- package/dist/cjs/core/client/manager.js +109 -0
- package/dist/cjs/core/client/manager.js.map +1 -0
- package/dist/cjs/core/config/azure-config.js +5 -17
- package/dist/cjs/core/config/azure-config.js.map +1 -1
- package/dist/cjs/core/config/index.js +2 -2
- package/dist/cjs/core/config/index.js.map +1 -1
- package/dist/cjs/core/config/loader.js +34 -14
- package/dist/cjs/core/config/loader.js.map +1 -1
- package/dist/cjs/core/config/manager.js +11 -5
- package/dist/cjs/core/config/manager.js.map +1 -1
- package/dist/cjs/core/config/validator.js +3 -45
- package/dist/cjs/core/config/validator.js.map +1 -1
- package/dist/cjs/core/middleware/index.js +21 -0
- package/dist/cjs/core/middleware/index.js.map +1 -0
- package/dist/cjs/core/middleware/interfaces.js +454 -0
- package/dist/cjs/core/middleware/interfaces.js.map +1 -0
- package/dist/cjs/core/middleware/revenium-client.js +152 -0
- package/dist/cjs/core/middleware/revenium-client.js.map +1 -0
- package/dist/cjs/core/providers/detector.js +45 -23
- package/dist/cjs/core/providers/detector.js.map +1 -1
- package/dist/cjs/core/providers/index.js +2 -1
- package/dist/cjs/core/providers/index.js.map +1 -1
- package/dist/cjs/core/tracking/api-client.js +21 -14
- package/dist/cjs/core/tracking/api-client.js.map +1 -1
- package/dist/cjs/core/tracking/index.js +5 -1
- package/dist/cjs/core/tracking/index.js.map +1 -1
- package/dist/cjs/core/tracking/payload-builder.js +143 -25
- package/dist/cjs/core/tracking/payload-builder.js.map +1 -1
- package/dist/cjs/core/tracking/usage-tracker.js +111 -18
- package/dist/cjs/core/tracking/usage-tracker.js.map +1 -1
- package/dist/cjs/index.js +39 -202
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/index.js +0 -8
- package/dist/cjs/types/index.js.map +1 -1
- package/dist/cjs/types/openai-augmentation.js +0 -49
- package/dist/cjs/types/openai-augmentation.js.map +1 -1
- package/dist/cjs/utils/constants.js +17 -20
- package/dist/cjs/utils/constants.js.map +1 -1
- package/dist/cjs/utils/error-handler.js +18 -14
- package/dist/cjs/utils/error-handler.js.map +1 -1
- package/dist/cjs/utils/metadata-builder.js +17 -16
- package/dist/cjs/utils/metadata-builder.js.map +1 -1
- package/dist/cjs/utils/provider-detection.js +25 -28
- package/dist/cjs/utils/provider-detection.js.map +1 -1
- package/dist/cjs/utils/trace-fields.js +115 -0
- package/dist/cjs/utils/trace-fields.js.map +1 -0
- package/dist/esm/core/client/index.js +6 -0
- package/dist/esm/core/client/index.js.map +1 -0
- package/dist/esm/core/client/manager.js +102 -0
- package/dist/esm/core/client/manager.js.map +1 -0
- package/dist/esm/core/config/azure-config.js +6 -18
- package/dist/esm/core/config/azure-config.js.map +1 -1
- package/dist/esm/core/config/index.js +5 -4
- package/dist/esm/core/config/index.js.map +1 -1
- package/dist/esm/core/config/loader.js +33 -13
- package/dist/esm/core/config/loader.js.map +1 -1
- package/dist/esm/core/config/manager.js +13 -7
- package/dist/esm/core/config/manager.js.map +1 -1
- package/dist/esm/core/config/validator.js +3 -44
- package/dist/esm/core/config/validator.js.map +1 -1
- package/dist/esm/core/middleware/index.js +8 -0
- package/dist/esm/core/middleware/index.js.map +1 -0
- package/dist/esm/core/middleware/interfaces.js +442 -0
- package/dist/esm/core/middleware/interfaces.js.map +1 -0
- package/dist/esm/core/middleware/revenium-client.js +115 -0
- package/dist/esm/core/middleware/revenium-client.js.map +1 -0
- package/dist/esm/core/providers/detector.js +43 -22
- package/dist/esm/core/providers/detector.js.map +1 -1
- package/dist/esm/core/providers/index.js +2 -2
- package/dist/esm/core/providers/index.js.map +1 -1
- package/dist/esm/core/tracking/api-client.js +20 -13
- package/dist/esm/core/tracking/api-client.js.map +1 -1
- package/dist/esm/core/tracking/index.js +4 -4
- package/dist/esm/core/tracking/index.js.map +1 -1
- package/dist/esm/core/tracking/payload-builder.js +142 -26
- package/dist/esm/core/tracking/payload-builder.js.map +1 -1
- package/dist/esm/core/tracking/usage-tracker.js +78 -20
- package/dist/esm/core/tracking/usage-tracker.js.map +1 -1
- package/dist/esm/index.js +9 -177
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types/index.js +2 -10
- package/dist/esm/types/index.js.map +1 -1
- package/dist/esm/types/openai-augmentation.js +0 -49
- package/dist/esm/types/openai-augmentation.js.map +1 -1
- package/dist/esm/utils/constants.js +16 -19
- package/dist/esm/utils/constants.js.map +1 -1
- package/dist/esm/utils/error-handler.js +19 -15
- package/dist/esm/utils/error-handler.js.map +1 -1
- package/dist/esm/utils/metadata-builder.js +17 -16
- package/dist/esm/utils/metadata-builder.js.map +1 -1
- package/dist/esm/utils/provider-detection.js +26 -29
- package/dist/esm/utils/provider-detection.js.map +1 -1
- package/dist/esm/utils/trace-fields.js +100 -0
- package/dist/esm/utils/trace-fields.js.map +1 -0
- package/dist/types/core/client/index.d.ts +6 -0
- package/dist/types/core/client/index.d.ts.map +1 -0
- package/dist/types/core/client/manager.d.ts +32 -0
- package/dist/types/core/client/manager.d.ts.map +1 -0
- package/dist/types/core/config/azure-config.d.ts +2 -2
- package/dist/types/core/config/azure-config.d.ts.map +1 -1
- package/dist/types/core/config/index.d.ts +4 -4
- package/dist/types/core/config/index.d.ts.map +1 -1
- package/dist/types/core/config/loader.d.ts +3 -1
- package/dist/types/core/config/loader.d.ts.map +1 -1
- package/dist/types/core/config/manager.d.ts +1 -1
- package/dist/types/core/config/manager.d.ts.map +1 -1
- package/dist/types/core/config/validator.d.ts +1 -12
- package/dist/types/core/config/validator.d.ts.map +1 -1
- package/dist/types/core/middleware/index.d.ts +8 -0
- package/dist/types/core/middleware/index.d.ts.map +1 -0
- package/dist/types/core/middleware/interfaces.d.ts +104 -0
- package/dist/types/core/middleware/interfaces.d.ts.map +1 -0
- package/dist/types/core/middleware/revenium-client.d.ts +64 -0
- package/dist/types/core/middleware/revenium-client.d.ts.map +1 -0
- package/dist/types/core/providers/detector.d.ts +9 -2
- package/dist/types/core/providers/detector.d.ts.map +1 -1
- package/dist/types/core/providers/index.d.ts +2 -2
- package/dist/types/core/providers/index.d.ts.map +1 -1
- package/dist/types/core/tracking/api-client.d.ts +1 -1
- package/dist/types/core/tracking/api-client.d.ts.map +1 -1
- package/dist/types/core/tracking/index.d.ts +4 -4
- package/dist/types/core/tracking/index.d.ts.map +1 -1
- package/dist/types/core/tracking/payload-builder.d.ts +5 -3
- package/dist/types/core/tracking/payload-builder.d.ts.map +1 -1
- package/dist/types/core/tracking/usage-tracker.d.ts +4 -2
- package/dist/types/core/tracking/usage-tracker.d.ts.map +1 -1
- package/dist/types/index.d.ts +11 -135
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/types/function-parameters.d.ts +91 -23
- package/dist/types/types/function-parameters.d.ts.map +1 -1
- package/dist/types/types/index.d.ts +53 -108
- package/dist/types/types/index.d.ts.map +1 -1
- package/dist/types/types/openai-augmentation.d.ts +4 -138
- package/dist/types/types/openai-augmentation.d.ts.map +1 -1
- package/dist/types/utils/constants.d.ts +7 -1
- package/dist/types/utils/constants.d.ts.map +1 -1
- package/dist/types/utils/error-handler.d.ts +2 -2
- package/dist/types/utils/error-handler.d.ts.map +1 -1
- package/dist/types/utils/metadata-builder.d.ts +2 -2
- package/dist/types/utils/metadata-builder.d.ts.map +1 -1
- package/dist/types/utils/provider-detection.d.ts +3 -3
- package/dist/types/utils/provider-detection.d.ts.map +1 -1
- package/dist/types/utils/trace-fields.d.ts +11 -0
- package/dist/types/utils/trace-fields.d.ts.map +1 -0
- package/examples/README.md +282 -198
- package/examples/azure/basic.ts +62 -0
- package/examples/azure/responses-basic.ts +45 -0
- package/examples/azure/responses-stream.ts +61 -0
- package/examples/azure/stream.ts +56 -0
- package/examples/getting_started.ts +31 -43
- package/examples/openai/basic.ts +45 -0
- package/examples/openai/metadata.ts +67 -0
- package/examples/openai/responses-basic.ts +44 -0
- package/examples/openai/responses-embed.ts +34 -0
- package/examples/openai/responses-streaming.ts +63 -0
- package/examples/openai/streaming.ts +59 -0
- package/package.json +23 -13
- package/dist/cjs/core/wrapper/index.js +0 -15
- package/dist/cjs/core/wrapper/index.js.map +0 -1
- package/dist/cjs/core/wrapper/instance-patcher.js +0 -202
- package/dist/cjs/core/wrapper/instance-patcher.js.map +0 -1
- package/dist/cjs/core/wrapper/request-handler.js +0 -317
- package/dist/cjs/core/wrapper/request-handler.js.map +0 -1
- package/dist/cjs/core/wrapper/stream-wrapper.js +0 -82
- package/dist/cjs/core/wrapper/stream-wrapper.js.map +0 -1
- package/dist/cjs/utils/azure-model-resolver.js +0 -211
- package/dist/cjs/utils/azure-model-resolver.js.map +0 -1
- package/dist/cjs/utils/request-handler-factory.js +0 -185
- package/dist/cjs/utils/request-handler-factory.js.map +0 -1
- package/dist/esm/core/wrapper/index.js +0 -9
- package/dist/esm/core/wrapper/index.js.map +0 -1
- package/dist/esm/core/wrapper/instance-patcher.js +0 -199
- package/dist/esm/core/wrapper/instance-patcher.js.map +0 -1
- package/dist/esm/core/wrapper/request-handler.js +0 -310
- package/dist/esm/core/wrapper/request-handler.js.map +0 -1
- package/dist/esm/core/wrapper/stream-wrapper.js +0 -79
- package/dist/esm/core/wrapper/stream-wrapper.js.map +0 -1
- package/dist/esm/utils/azure-model-resolver.js +0 -204
- package/dist/esm/utils/azure-model-resolver.js.map +0 -1
- package/dist/esm/utils/request-handler-factory.js +0 -146
- package/dist/esm/utils/request-handler-factory.js.map +0 -1
- package/dist/types/core/wrapper/index.d.ts +0 -8
- package/dist/types/core/wrapper/index.d.ts.map +0 -1
- package/dist/types/core/wrapper/instance-patcher.d.ts +0 -33
- package/dist/types/core/wrapper/instance-patcher.d.ts.map +0 -1
- package/dist/types/core/wrapper/request-handler.d.ts +0 -29
- package/dist/types/core/wrapper/request-handler.d.ts.map +0 -1
- package/dist/types/core/wrapper/stream-wrapper.d.ts +0 -13
- package/dist/types/core/wrapper/stream-wrapper.d.ts.map +0 -1
- package/dist/types/utils/azure-model-resolver.d.ts +0 -41
- package/dist/types/utils/azure-model-resolver.d.ts.map +0 -1
- package/dist/types/utils/request-handler-factory.d.ts +0 -81
- package/dist/types/utils/request-handler-factory.d.ts.map +0 -1
- package/examples/azure-basic.ts +0 -206
- package/examples/azure-responses-basic.ts +0 -233
- package/examples/azure-responses-streaming.ts +0 -255
- package/examples/azure-streaming.ts +0 -209
- package/examples/openai-basic.ts +0 -147
- package/examples/openai-function-calling.ts +0 -259
- package/examples/openai-responses-basic.ts +0 -212
- package/examples/openai-responses-streaming.ts +0 -232
- package/examples/openai-streaming.ts +0 -172
- package/examples/openai-vision.ts +0 -289
- package/src/core/config/azure-config.ts +0 -72
- package/src/core/config/index.ts +0 -23
- package/src/core/config/loader.ts +0 -66
- package/src/core/config/manager.ts +0 -95
- package/src/core/config/validator.ts +0 -89
- package/src/core/providers/detector.ts +0 -159
- package/src/core/providers/index.ts +0 -16
- package/src/core/tracking/api-client.ts +0 -78
- package/src/core/tracking/index.ts +0 -21
- package/src/core/tracking/payload-builder.ts +0 -137
- package/src/core/tracking/usage-tracker.ts +0 -189
- package/src/core/wrapper/index.ts +0 -9
- package/src/core/wrapper/instance-patcher.ts +0 -288
- package/src/core/wrapper/request-handler.ts +0 -423
- package/src/core/wrapper/stream-wrapper.ts +0 -100
- package/src/index.ts +0 -360
- package/src/types/function-parameters.ts +0 -251
- package/src/types/index.ts +0 -310
- package/src/types/openai-augmentation.ts +0 -232
- package/src/types/responses-api.ts +0 -308
- package/src/utils/azure-model-resolver.ts +0 -220
- package/src/utils/constants.ts +0 -21
- package/src/utils/error-handler.ts +0 -251
- package/src/utils/metadata-builder.ts +0 -228
- package/src/utils/provider-detection.ts +0 -257
- package/src/utils/request-handler-factory.ts +0 -285
- package/src/utils/stop-reason-mapper.ts +0 -78
- package/src/utils/type-guards.ts +0 -202
- package/src/utils/url-builder.ts +0 -68
|
@@ -10,18 +10,18 @@
|
|
|
10
10
|
* Subscriber object is passed through directly without transformation
|
|
11
11
|
*/
|
|
12
12
|
const METADATA_FIELD_MAP = [
|
|
13
|
-
{ source:
|
|
14
|
-
{ source:
|
|
15
|
-
{ source:
|
|
16
|
-
{ source:
|
|
17
|
-
{ source:
|
|
18
|
-
{ source:
|
|
19
|
-
{ source:
|
|
13
|
+
{ source: "traceId" },
|
|
14
|
+
{ source: "taskType" },
|
|
15
|
+
{ source: "agent" },
|
|
16
|
+
{ source: "organizationId" },
|
|
17
|
+
{ source: "productId" },
|
|
18
|
+
{ source: "subscriber" }, // Pass through nested subscriber object directly
|
|
19
|
+
{ source: "subscriptionId" },
|
|
20
20
|
{
|
|
21
|
-
source:
|
|
21
|
+
source: "responseQualityScore",
|
|
22
22
|
transform: (value) => {
|
|
23
23
|
// Ensure quality score is between 0.0 and 1.0 (API spec requirement)
|
|
24
|
-
if (typeof value ===
|
|
24
|
+
if (typeof value === "number")
|
|
25
25
|
return Math.max(0, Math.min(1, value));
|
|
26
26
|
return value;
|
|
27
27
|
},
|
|
@@ -69,7 +69,7 @@ export function validateMetadata(usageMetadata, requiredFields = []) {
|
|
|
69
69
|
return {
|
|
70
70
|
isValid: false,
|
|
71
71
|
missingFields: requiredFields,
|
|
72
|
-
warnings: [
|
|
72
|
+
warnings: ["No metadata provided"],
|
|
73
73
|
};
|
|
74
74
|
}
|
|
75
75
|
if (usageMetadata) {
|
|
@@ -83,12 +83,13 @@ export function validateMetadata(usageMetadata, requiredFields = []) {
|
|
|
83
83
|
const score = usageMetadata.responseQualityScore;
|
|
84
84
|
// API Spec: https://revenium.readme.io/reference/meter_ai_completion (responseQualityScore)
|
|
85
85
|
// "typically on a 0.0-1.0 scale"
|
|
86
|
-
if (typeof score !==
|
|
87
|
-
warnings.push(
|
|
86
|
+
if (typeof score !== "number" || score < 0 || score > 1) {
|
|
87
|
+
warnings.push("responseQualityScore should be a number between 0.0 and 1.0");
|
|
88
88
|
}
|
|
89
89
|
}
|
|
90
|
-
if (usageMetadata.subscriber?.email &&
|
|
91
|
-
|
|
90
|
+
if (usageMetadata.subscriber?.email &&
|
|
91
|
+
!usageMetadata.subscriber.email.includes("@")) {
|
|
92
|
+
warnings.push("subscriber.email does not appear to be a valid email address");
|
|
92
93
|
}
|
|
93
94
|
}
|
|
94
95
|
return {
|
|
@@ -168,12 +169,12 @@ export function sanitizeMetadataForLogging(usageMetadata) {
|
|
|
168
169
|
}
|
|
169
170
|
if (subscriber.email) {
|
|
170
171
|
// Mask email: handles single-char emails (a@x.com → a***@x.com)
|
|
171
|
-
sanitizedSubscriber.email = subscriber.email.replace(/(.{1,2}).*(@.*)/,
|
|
172
|
+
sanitizedSubscriber.email = subscriber.email.replace(/(.{1,2}).*(@.*)/, "$1***$2");
|
|
172
173
|
}
|
|
173
174
|
if (subscriber.credential) {
|
|
174
175
|
sanitizedSubscriber.credential = {
|
|
175
176
|
name: subscriber.credential.name,
|
|
176
|
-
value:
|
|
177
|
+
value: "[REDACTED]",
|
|
177
178
|
};
|
|
178
179
|
}
|
|
179
180
|
result.subscriber = sanitizedSubscriber;
|
|
@@ -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,YAAY,EAAE,EAAE,iDAAiD;IAC3E,EAAE,MAAM,EAAE,gBAAgB,EAAE;IAC5B;QACE,MAAM,EAAE,sBAAsB;QAC9B,SAAS,EAAE,CAAC,KAAc,EAAE,EAAE;YAC5B,qEAAqE;YACrE,IAAI,OAAO,KAAK,KAAK,QAAQ;gBAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;YACtE,OAAO,KAAK,CAAC;QACf,CAAC;KACF;CACF,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,UAAU,mBAAmB,
|
|
1
|
+
{"version":3,"file":"metadata-builder.js","sourceRoot":"","sources":["../../../src/utils/metadata-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,46 +4,45 @@
|
|
|
4
4
|
* Simplifies complex provider detection logic using strategy pattern
|
|
5
5
|
* instead of nested conditionals.
|
|
6
6
|
*/
|
|
7
|
-
import { Provider } from
|
|
7
|
+
import { Provider } from "../types/index.js";
|
|
8
8
|
/**
|
|
9
9
|
* Provider detection strategies in priority order
|
|
10
10
|
*/
|
|
11
11
|
const DETECTION_STRATEGIES = [
|
|
12
12
|
{
|
|
13
|
-
name:
|
|
13
|
+
name: "Constructor Name",
|
|
14
14
|
priority: 100,
|
|
15
|
-
detect: client => {
|
|
16
|
-
return client?.constructor?.name?.includes(
|
|
15
|
+
detect: (client) => {
|
|
16
|
+
return client?.constructor?.name?.includes("Azure") || false;
|
|
17
17
|
},
|
|
18
|
-
getContext: client => ({
|
|
18
|
+
getContext: (client) => ({
|
|
19
19
|
constructorName: client?.constructor?.name,
|
|
20
20
|
}),
|
|
21
21
|
},
|
|
22
22
|
{
|
|
23
|
-
name:
|
|
23
|
+
name: "Base URL",
|
|
24
24
|
priority: 90,
|
|
25
|
-
detect: client => {
|
|
25
|
+
detect: (client) => {
|
|
26
26
|
const baseUrl = getBaseUrlString(client);
|
|
27
|
-
return baseUrl?.toLowerCase().includes(
|
|
27
|
+
return baseUrl?.toLowerCase().includes("azure") || false;
|
|
28
28
|
},
|
|
29
|
-
getContext: client => ({
|
|
29
|
+
getContext: (client) => ({
|
|
30
30
|
baseURL: getBaseUrlString(client),
|
|
31
31
|
}),
|
|
32
32
|
},
|
|
33
33
|
{
|
|
34
|
-
name:
|
|
34
|
+
name: "Environment Variables",
|
|
35
35
|
priority: 80,
|
|
36
|
-
detect: client => {
|
|
36
|
+
detect: (client) => {
|
|
37
37
|
// Only use env vars if not explicitly OpenAI
|
|
38
38
|
const baseUrl = getBaseUrlString(client);
|
|
39
|
-
const isExplicitlyOpenAI = baseUrl?.includes(
|
|
40
|
-
(client?.constructor?.name?.toLowerCase().includes(
|
|
41
|
-
!client?.constructor?.name?.toLowerCase().includes(
|
|
39
|
+
const isExplicitlyOpenAI = baseUrl?.includes("api.openai.com") ||
|
|
40
|
+
(client?.constructor?.name?.toLowerCase().includes("openai") &&
|
|
41
|
+
!client?.constructor?.name?.toLowerCase().includes("azure"));
|
|
42
42
|
return !isExplicitlyOpenAI && !!process.env.AZURE_OPENAI_ENDPOINT;
|
|
43
43
|
},
|
|
44
44
|
getContext: () => ({
|
|
45
45
|
hasAzureEndpoint: !!process.env.AZURE_OPENAI_ENDPOINT,
|
|
46
|
-
hasAzureDeployment: !!process.env.AZURE_OPENAI_DEPLOYMENT,
|
|
47
46
|
hasAzureApiKey: !!process.env.AZURE_OPENAI_API_KEY,
|
|
48
47
|
}),
|
|
49
48
|
},
|
|
@@ -54,7 +53,9 @@ const DETECTION_STRATEGIES = [
|
|
|
54
53
|
function getBaseUrlString(client) {
|
|
55
54
|
if (!client?.baseURL)
|
|
56
55
|
return undefined;
|
|
57
|
-
return typeof client.baseURL ===
|
|
56
|
+
return typeof client.baseURL === "string"
|
|
57
|
+
? client.baseURL
|
|
58
|
+
: client.baseURL.toString();
|
|
58
59
|
}
|
|
59
60
|
/**
|
|
60
61
|
* Detect provider using strategy pattern
|
|
@@ -93,27 +94,24 @@ export function detectProviderStrategy(client, logger) {
|
|
|
93
94
|
}
|
|
94
95
|
// Default to OpenAI
|
|
95
96
|
if (logger) {
|
|
96
|
-
logger.debug(
|
|
97
|
+
logger.debug("Standard OpenAI provider detected (no Azure indicators found)");
|
|
97
98
|
}
|
|
98
99
|
return { provider: Provider.OPENAI };
|
|
99
100
|
}
|
|
100
101
|
const AZURE_CONFIG_STRATEGIES = [
|
|
101
102
|
{
|
|
102
|
-
name:
|
|
103
|
-
gather: client => {
|
|
103
|
+
name: "Client BaseURL",
|
|
104
|
+
gather: (client) => {
|
|
104
105
|
const baseUrl = getBaseUrlString(client);
|
|
105
106
|
return baseUrl ? { endpoint: baseUrl } : {};
|
|
106
107
|
},
|
|
107
108
|
},
|
|
108
109
|
{
|
|
109
|
-
name:
|
|
110
|
+
name: "Environment Variables",
|
|
110
111
|
gather: () => ({
|
|
111
112
|
endpoint: process.env.AZURE_OPENAI_ENDPOINT,
|
|
112
|
-
|
|
113
|
-
apiVersion: process.env.AZURE_OPENAI_API_VERSION || '2024-12-01-preview',
|
|
113
|
+
apiVersion: process.env.AZURE_OPENAI_API_VERSION,
|
|
114
114
|
apiKey: process.env.AZURE_OPENAI_API_KEY,
|
|
115
|
-
tenantId: process.env.AZURE_OPENAI_TENANT_ID,
|
|
116
|
-
resourceGroup: process.env.AZURE_OPENAI_RESOURCE_GROUP,
|
|
117
115
|
}),
|
|
118
116
|
},
|
|
119
117
|
];
|
|
@@ -145,9 +143,8 @@ export function gatherAzureConfigStrategy(client, logger) {
|
|
|
145
143
|
}
|
|
146
144
|
}
|
|
147
145
|
if (logger) {
|
|
148
|
-
logger.debug(
|
|
146
|
+
logger.debug("Azure configuration gathered", {
|
|
149
147
|
hasEndpoint: !!config.endpoint,
|
|
150
|
-
hasDeployment: !!config.deployment,
|
|
151
148
|
hasApiKey: !!config.apiKey,
|
|
152
149
|
apiVersion: config.apiVersion,
|
|
153
150
|
});
|
|
@@ -187,14 +184,14 @@ export function validateProviderInfo(providerInfo) {
|
|
|
187
184
|
const warnings = [];
|
|
188
185
|
if (providerInfo.isAzure) {
|
|
189
186
|
if (!providerInfo.azureConfig) {
|
|
190
|
-
warnings.push(
|
|
187
|
+
warnings.push("Azure provider detected but no Azure configuration available");
|
|
191
188
|
}
|
|
192
189
|
else {
|
|
193
190
|
if (!providerInfo.azureConfig.endpoint) {
|
|
194
|
-
warnings.push(
|
|
191
|
+
warnings.push("Azure configuration missing endpoint");
|
|
195
192
|
}
|
|
196
193
|
if (!providerInfo.azureConfig.apiKey) {
|
|
197
|
-
warnings.push(
|
|
194
|
+
warnings.push("Azure configuration missing API key");
|
|
198
195
|
}
|
|
199
196
|
}
|
|
200
197
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-detection.js","sourceRoot":"","sources":["../../../src/utils/provider-detection.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAA6B,MAAM,mBAAmB,CAAC;AAkBxE;;GAEG;AACH,MAAM,oBAAoB,GAAgC;IACxD;QACE,IAAI,EAAE,kBAAkB;QACxB,QAAQ,EAAE,GAAG;QACb,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"provider-detection.js","sourceRoot":"","sources":["../../../src/utils/provider-detection.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { getLogger } from "../core/config";
|
|
2
|
+
import axios from "axios";
|
|
3
|
+
const logger = getLogger();
|
|
4
|
+
let cachedRegion = null;
|
|
5
|
+
let regionCached = false;
|
|
6
|
+
export function resetRegionCache() {
|
|
7
|
+
cachedRegion = null;
|
|
8
|
+
regionCached = false;
|
|
9
|
+
}
|
|
10
|
+
export function getEnvironment() {
|
|
11
|
+
const env = process.env.REVENIUM_ENVIRONMENT ||
|
|
12
|
+
process.env.NODE_ENV ||
|
|
13
|
+
process.env.DEPLOYMENT_ENV ||
|
|
14
|
+
null;
|
|
15
|
+
if (env && env.length > 255) {
|
|
16
|
+
logger.warn(`environment exceeds max length of 255 characters. Truncating.`);
|
|
17
|
+
return env.substring(0, 255).trim();
|
|
18
|
+
}
|
|
19
|
+
return env ? env.trim() : null;
|
|
20
|
+
}
|
|
21
|
+
export async function getRegion() {
|
|
22
|
+
if (regionCached) {
|
|
23
|
+
return cachedRegion;
|
|
24
|
+
}
|
|
25
|
+
const envRegion = process.env.AWS_REGION ||
|
|
26
|
+
process.env.AZURE_REGION ||
|
|
27
|
+
process.env.GCP_REGION ||
|
|
28
|
+
process.env.REVENIUM_REGION;
|
|
29
|
+
if (envRegion) {
|
|
30
|
+
cachedRegion = envRegion.trim();
|
|
31
|
+
regionCached = true;
|
|
32
|
+
return cachedRegion;
|
|
33
|
+
}
|
|
34
|
+
try {
|
|
35
|
+
const response = await axios.get("http://169.254.169.254/latest/meta-data/placement/region", { timeout: 1000 });
|
|
36
|
+
cachedRegion = response.data.trim();
|
|
37
|
+
regionCached = true;
|
|
38
|
+
return cachedRegion;
|
|
39
|
+
}
|
|
40
|
+
catch (error) {
|
|
41
|
+
cachedRegion = null;
|
|
42
|
+
regionCached = true;
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
export function getCredentialAlias() {
|
|
47
|
+
const alias = process.env.REVENIUM_CREDENTIAL_ALIAS || null;
|
|
48
|
+
if (alias && alias.length > 255) {
|
|
49
|
+
logger.warn(`credentialAlias exceeds max length of 255 characters. Truncating.`);
|
|
50
|
+
return alias.substring(0, 255).trim();
|
|
51
|
+
}
|
|
52
|
+
return alias ? alias.trim() : null;
|
|
53
|
+
}
|
|
54
|
+
export function getTraceType() {
|
|
55
|
+
const traceType = process.env.REVENIUM_TRACE_TYPE;
|
|
56
|
+
if (!traceType) {
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
59
|
+
if (!/^[a-zA-Z0-9_-]+$/.test(traceType)) {
|
|
60
|
+
logger.warn(`Invalid trace_type format: ${traceType}. Must be alphanumeric with hyphens/underscores only.`);
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
if (traceType.length > 128) {
|
|
64
|
+
logger.warn(`trace_type exceeds max length of 128 characters: ${traceType}. Truncating.`);
|
|
65
|
+
return traceType.substring(0, 128);
|
|
66
|
+
}
|
|
67
|
+
return traceType;
|
|
68
|
+
}
|
|
69
|
+
export function getTraceName() {
|
|
70
|
+
const traceName = process.env.REVENIUM_TRACE_NAME;
|
|
71
|
+
if (!traceName) {
|
|
72
|
+
return null;
|
|
73
|
+
}
|
|
74
|
+
if (traceName.length > 256) {
|
|
75
|
+
logger.warn(`trace_name exceeds max length of 256 characters. Truncating.`);
|
|
76
|
+
return traceName.substring(0, 256);
|
|
77
|
+
}
|
|
78
|
+
return traceName;
|
|
79
|
+
}
|
|
80
|
+
export function detectOperationSubtype(requestBody) {
|
|
81
|
+
if (requestBody && (requestBody.tools || requestBody.functions)) {
|
|
82
|
+
return "function_call";
|
|
83
|
+
}
|
|
84
|
+
return null;
|
|
85
|
+
}
|
|
86
|
+
export function getParentTransactionId() {
|
|
87
|
+
return process.env.REVENIUM_PARENT_TRANSACTION_ID || null;
|
|
88
|
+
}
|
|
89
|
+
export function getTransactionName() {
|
|
90
|
+
return process.env.REVENIUM_TRANSACTION_NAME || null;
|
|
91
|
+
}
|
|
92
|
+
export function getRetryNumber() {
|
|
93
|
+
const retryNum = process.env.REVENIUM_RETRY_NUMBER;
|
|
94
|
+
if (retryNum) {
|
|
95
|
+
const parsed = parseInt(retryNum, 10);
|
|
96
|
+
return isNaN(parsed) ? 0 : parsed;
|
|
97
|
+
}
|
|
98
|
+
return 0;
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=trace-fields.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trace-fields.js","sourceRoot":"","sources":["../../../src/utils/trace-fields.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/client/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,UAAU,EACV,SAAS,EACT,aAAa,EACb,KAAK,EACL,SAAS,GACV,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Client Manager
|
|
3
|
+
*/
|
|
4
|
+
import { ReveniumOpenAI } from "../middleware/revenium-client.js";
|
|
5
|
+
import { Config } from "../../types";
|
|
6
|
+
/**
|
|
7
|
+
* Initialize - Initialize Revenium client
|
|
8
|
+
* Can be called with explicit config or will load from environment variables.
|
|
9
|
+
* @param config - Optional configuration. If not provided, loads from environment.
|
|
10
|
+
*/
|
|
11
|
+
export declare function Initialize(config?: Partial<Config>): void;
|
|
12
|
+
/**
|
|
13
|
+
* GetClient - Get the global Revenium client
|
|
14
|
+
* @returns The global ReveniumOpenAI client
|
|
15
|
+
* @throws Error if client is not initialized
|
|
16
|
+
*/
|
|
17
|
+
export declare function GetClient(): ReveniumOpenAI;
|
|
18
|
+
/**
|
|
19
|
+
* IsInitialized - Check if client is initialized
|
|
20
|
+
* @returns true if client is initialized, false otherwise
|
|
21
|
+
*/
|
|
22
|
+
export declare function IsInitialized(): boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Reset - Reset the global client
|
|
25
|
+
*/
|
|
26
|
+
export declare function Reset(): void;
|
|
27
|
+
/**
|
|
28
|
+
* Configure - Alias for Initialize
|
|
29
|
+
* @param config - Configuration object
|
|
30
|
+
*/
|
|
31
|
+
export declare function Configure(config: Partial<Config>): void;
|
|
32
|
+
//# sourceMappingURL=manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../../src/core/client/manager.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAiBrC;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CA0DzD;AAED;;;;GAIG;AACH,wBAAgB,SAAS,IAAI,cAAc,CAW1C;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAEvC;AAED;;GAEG;AACH,wBAAgB,KAAK,IAAI,IAAI,CAG5B;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAEvD"}
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
* Handles Azure-specific configuration logic.
|
|
5
5
|
* Extracted from provider.ts for better separation of concerns.
|
|
6
6
|
*/
|
|
7
|
-
import { AzureConfig } from
|
|
8
|
-
import { OpenAIClientInstance } from
|
|
7
|
+
import { AzureConfig } from "../../types";
|
|
8
|
+
import { OpenAIClientInstance } from "../../types/function-parameters.js";
|
|
9
9
|
/**
|
|
10
10
|
* Gather Azure configuration from client and environment
|
|
11
11
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"azure-config.d.ts","sourceRoot":"","sources":["../../../../src/core/config/azure-config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"azure-config.d.ts","sourceRoot":"","sources":["../../../../src/core/config/azure-config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAM1E;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,oBAAoB,GAAG,WAAW,CAqC3E"}
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
* This module provides a clean interface for configuration management,
|
|
5
5
|
* separating concerns into focused sub-modules.
|
|
6
6
|
*/
|
|
7
|
-
export { loadConfigFromEnv, loadAzureConfigFromEnv, hasAzureConfigInEnv } from
|
|
8
|
-
export { validateConfig
|
|
9
|
-
export { getConfig, setConfig, getLogger, setLogger, initializeConfig, defaultLogger, } from
|
|
10
|
-
export * from
|
|
7
|
+
export { loadConfigFromEnv, loadAzureConfigFromEnv, hasAzureConfigInEnv, } from "./loader.js";
|
|
8
|
+
export { validateConfig } from "./validator.js";
|
|
9
|
+
export { getConfig, setConfig, getLogger, setLogger, initializeConfig, defaultLogger, } from "./manager.js";
|
|
10
|
+
export * from "./azure-config.js";
|
|
11
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/config/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/config/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,EACL,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,aAAa,GACd,MAAM,cAAc,CAAC;AAGtB,cAAc,mBAAmB,CAAC"}
|
|
@@ -4,13 +4,15 @@
|
|
|
4
4
|
* Handles loading configuration from environment variables.
|
|
5
5
|
* Separated from validation and management for single responsibility.
|
|
6
6
|
*/
|
|
7
|
-
import { ReveniumConfig, AzureConfig } from
|
|
7
|
+
import { ReveniumConfig, AzureConfig } from "../../types";
|
|
8
8
|
/**
|
|
9
9
|
* Load configuration from environment variables
|
|
10
|
+
* Automatically loads .env files first
|
|
10
11
|
*/
|
|
11
12
|
export declare function loadConfigFromEnv(): ReveniumConfig | null;
|
|
12
13
|
/**
|
|
13
14
|
* Load Azure configuration from environment variables
|
|
15
|
+
* Automatically loads .env files first
|
|
14
16
|
*/
|
|
15
17
|
export declare function loadAzureConfigFromEnv(): AzureConfig | null;
|
|
16
18
|
/**
|
|
@@ -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,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../../src/core/config/loader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAkC1D;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,cAAc,GAAG,IAAI,CAiBzD;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,WAAW,GAAG,IAAI,CAc3D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAI7C"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Handles global configuration state management and logging.
|
|
5
5
|
* Separated from loading and validation for single responsibility.
|
|
6
6
|
*/
|
|
7
|
-
import { ReveniumConfig, Logger } from
|
|
7
|
+
import { ReveniumConfig, Logger } from "../../types";
|
|
8
8
|
/**
|
|
9
9
|
* Default console logger implementation
|
|
10
10
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../../src/core/config/manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../../src/core/config/manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAQrD;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,MAgB3B,CAAC;AAQF;;GAEG;AACH,wBAAgB,SAAS,IAAI,cAAc,GAAG,IAAI,CAEjD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAQtD;AAED;;GAEG;AACH,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAE9C;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,OAAO,CAgC1C"}
|
|
@@ -4,20 +4,9 @@
|
|
|
4
4
|
* Handles validation of configuration objects.
|
|
5
5
|
* Separated from loading and management for single responsibility.
|
|
6
6
|
*/
|
|
7
|
-
import { ReveniumConfig
|
|
7
|
+
import { ReveniumConfig } from "../../types";
|
|
8
8
|
/**
|
|
9
9
|
* Validate Revenium configuration
|
|
10
10
|
*/
|
|
11
11
|
export declare function validateConfig(config: ReveniumConfig): void;
|
|
12
|
-
/**
|
|
13
|
-
* Validate Azure configuration completeness
|
|
14
|
-
*
|
|
15
|
-
* @param config - Azure configuration to validate
|
|
16
|
-
* @returns validation result with missing fields
|
|
17
|
-
*/
|
|
18
|
-
export declare function validateAzureConfig(config: AzureConfig): {
|
|
19
|
-
isValid: boolean;
|
|
20
|
-
missingFields: string[];
|
|
21
|
-
warnings: string[];
|
|
22
|
-
};
|
|
23
12
|
//# sourceMappingURL=validator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../../../src/core/config/validator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../../../src/core/config/validator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CA2B3D"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Middleware Module
|
|
3
|
+
*
|
|
4
|
+
* Exports all middleware components.
|
|
5
|
+
*/
|
|
6
|
+
export { ReveniumOpenAI } from "./revenium-client.js";
|
|
7
|
+
export { ChatInterface, CompletionsInterface, EmbeddingsInterface, ResponsesInterface, StreamingWrapper, ImagesInterface, AudioTranscriptionsInterface, AudioTranslationsInterface, AudioSpeechInterface, } from "./interfaces.js";
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/middleware/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,4BAA4B,EAC5B,0BAA0B,EAC1B,oBAAoB,GACrB,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Middleware Interfaces
|
|
3
|
+
*
|
|
4
|
+
* Provides interfaces for OpenAI operations.
|
|
5
|
+
* Contains: ChatInterface, CompletionsInterface, EmbeddingsInterface, ResponsesInterface, StreamingWrapper
|
|
6
|
+
*/
|
|
7
|
+
import OpenAI from "openai";
|
|
8
|
+
import { Config, UsageMetadata, ProviderInfo } from "../../types";
|
|
9
|
+
import { ResponsesCreateParams, ResponsesResponse } from "../../types/responses-api.js";
|
|
10
|
+
/**
|
|
11
|
+
* StreamingWrapper - wraps OpenAI stream and tracks tokens
|
|
12
|
+
*/
|
|
13
|
+
export declare class StreamingWrapper implements AsyncIterable<OpenAI.ChatCompletionChunk> {
|
|
14
|
+
private stream;
|
|
15
|
+
private config;
|
|
16
|
+
private providerInfo;
|
|
17
|
+
private model;
|
|
18
|
+
private metadata?;
|
|
19
|
+
private startTime;
|
|
20
|
+
private firstTokenTime?;
|
|
21
|
+
private requestId;
|
|
22
|
+
private usage;
|
|
23
|
+
constructor(stream: AsyncIterable<OpenAI.ChatCompletionChunk>, config: Config, providerInfo: ProviderInfo, model: string, metadata?: UsageMetadata);
|
|
24
|
+
[Symbol.asyncIterator](): AsyncIterator<OpenAI.ChatCompletionChunk>;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* CompletionsInterface - handles chat completions
|
|
28
|
+
*/
|
|
29
|
+
export declare class CompletionsInterface {
|
|
30
|
+
private client;
|
|
31
|
+
private config;
|
|
32
|
+
private providerInfo;
|
|
33
|
+
constructor(client: OpenAI, config: Config, providerInfo: ProviderInfo);
|
|
34
|
+
/**
|
|
35
|
+
* Create a non-streaming chat completion
|
|
36
|
+
*/
|
|
37
|
+
create(params: OpenAI.ChatCompletionCreateParamsNonStreaming, metadata?: UsageMetadata): Promise<OpenAI.ChatCompletion>;
|
|
38
|
+
/**
|
|
39
|
+
* Create a streaming chat completion
|
|
40
|
+
*/
|
|
41
|
+
createStreaming(params: OpenAI.ChatCompletionCreateParamsStreaming, metadata?: UsageMetadata): Promise<StreamingWrapper>;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* ChatInterface - provides access to completions
|
|
45
|
+
*/
|
|
46
|
+
export declare class ChatInterface {
|
|
47
|
+
private client;
|
|
48
|
+
private config;
|
|
49
|
+
private providerInfo;
|
|
50
|
+
constructor(client: OpenAI, config: Config, providerInfo: ProviderInfo);
|
|
51
|
+
completions(): CompletionsInterface;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* EmbeddingsInterface - handles embeddings
|
|
55
|
+
*/
|
|
56
|
+
export declare class EmbeddingsInterface {
|
|
57
|
+
private client;
|
|
58
|
+
private config;
|
|
59
|
+
private providerInfo;
|
|
60
|
+
constructor(client: OpenAI, config: Config, providerInfo: ProviderInfo);
|
|
61
|
+
create(params: OpenAI.EmbeddingCreateParams, metadata?: UsageMetadata): Promise<OpenAI.CreateEmbeddingResponse>;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* ResponsesInterface - handles Responses API (stateful API)
|
|
65
|
+
*/
|
|
66
|
+
export declare class ResponsesInterface {
|
|
67
|
+
private client;
|
|
68
|
+
private config;
|
|
69
|
+
private providerInfo;
|
|
70
|
+
constructor(client: OpenAI, config: Config, providerInfo: ProviderInfo);
|
|
71
|
+
create(params: ResponsesCreateParams, metadata?: UsageMetadata): Promise<ResponsesResponse>;
|
|
72
|
+
createStreaming(params: ResponsesCreateParams, metadata?: UsageMetadata): Promise<AsyncIterable<any>>;
|
|
73
|
+
}
|
|
74
|
+
export declare class ImagesInterface {
|
|
75
|
+
private originalImages;
|
|
76
|
+
private config;
|
|
77
|
+
private providerInfo;
|
|
78
|
+
constructor(originalImages: OpenAI.Images, config: Config, providerInfo: ProviderInfo);
|
|
79
|
+
generate(params: OpenAI.ImageGenerateParams): Promise<any>;
|
|
80
|
+
edit(params: OpenAI.ImageEditParams): Promise<any>;
|
|
81
|
+
createVariation(params: OpenAI.ImageCreateVariationParams): Promise<any>;
|
|
82
|
+
}
|
|
83
|
+
export declare class AudioTranscriptionsInterface {
|
|
84
|
+
private originalTranscriptions;
|
|
85
|
+
private config;
|
|
86
|
+
private providerInfo;
|
|
87
|
+
constructor(originalTranscriptions: OpenAI.Audio.Transcriptions, config: Config, providerInfo: ProviderInfo);
|
|
88
|
+
create(params: OpenAI.Audio.TranscriptionCreateParams): Promise<any>;
|
|
89
|
+
}
|
|
90
|
+
export declare class AudioTranslationsInterface {
|
|
91
|
+
private originalTranslations;
|
|
92
|
+
private config;
|
|
93
|
+
private providerInfo;
|
|
94
|
+
constructor(originalTranslations: OpenAI.Audio.Translations, config: Config, providerInfo: ProviderInfo);
|
|
95
|
+
create(params: OpenAI.Audio.TranslationCreateParams): Promise<any>;
|
|
96
|
+
}
|
|
97
|
+
export declare class AudioSpeechInterface {
|
|
98
|
+
private originalSpeech;
|
|
99
|
+
private config;
|
|
100
|
+
private providerInfo;
|
|
101
|
+
constructor(originalSpeech: OpenAI.Audio.Speech, config: Config, providerInfo: ProviderInfo);
|
|
102
|
+
create(params: OpenAI.Audio.SpeechCreateParams): Promise<any>;
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=interfaces.d.ts.map
|