@revenium/openai 1.0.13 → 1.0.14
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 +44 -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 +17 -0
- package/dist/cjs/core/middleware/index.js.map +1 -0
- package/dist/cjs/core/middleware/interfaces.js +361 -0
- package/dist/cjs/core/middleware/interfaces.js.map +1 -0
- package/dist/cjs/core/middleware/revenium-client.js +142 -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 +14 -13
- package/dist/cjs/core/tracking/api-client.js.map +1 -1
- package/dist/cjs/core/tracking/payload-builder.js +15 -25
- package/dist/cjs/core/tracking/payload-builder.js.map +1 -1
- package/dist/cjs/core/tracking/usage-tracker.js +22 -18
- package/dist/cjs/core/tracking/usage-tracker.js.map +1 -1
- package/dist/cjs/index.js +26 -195
- 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/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 +353 -0
- package/dist/esm/core/middleware/interfaces.js.map +1 -0
- package/dist/esm/core/middleware/revenium-client.js +105 -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 +13 -12
- package/dist/esm/core/tracking/api-client.js.map +1 -1
- package/dist/esm/core/tracking/payload-builder.js +16 -26
- package/dist/esm/core/tracking/payload-builder.js.map +1 -1
- package/dist/esm/core/tracking/usage-tracker.js +24 -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/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 +74 -0
- package/dist/types/core/middleware/interfaces.d.ts.map +1 -0
- package/dist/types/core/middleware/revenium-client.d.ts +58 -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/payload-builder.d.ts +3 -3
- package/dist/types/core/tracking/payload-builder.d.ts.map +1 -1
- package/dist/types/core/tracking/usage-tracker.d.ts +2 -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 +2 -23
- package/dist/types/types/function-parameters.d.ts.map +1 -1
- package/dist/types/types/index.d.ts +11 -105
- 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/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 +20 -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
package/dist/types/index.d.ts
CHANGED
|
@@ -2,45 +2,8 @@
|
|
|
2
2
|
* Revenium OpenAI Middleware for TypeScript
|
|
3
3
|
*
|
|
4
4
|
* This middleware tracks OpenAI usage and sends metrics to Revenium.
|
|
5
|
-
* Uses hybrid initialization: auto-initializes on import with graceful fallback to manual init.
|
|
6
|
-
*
|
|
7
|
-
* Environment Variables:
|
|
8
|
-
* REVENIUM_METERING_API_KEY=hak_your_api_key
|
|
9
|
-
* REVENIUM_METERING_BASE_URL=https://api.revenium.ai (optional)
|
|
10
|
-
* OPENAI_API_KEY=sk_your_openai_key
|
|
11
|
-
*
|
|
12
|
-
* Simple Usage (auto-initialization):
|
|
13
|
-
* import { patchOpenAIInstance } from '@revenium/openai';
|
|
14
|
-
* import OpenAI from 'openai';
|
|
15
|
-
*
|
|
16
|
-
* const openai = patchOpenAIInstance(new OpenAI());
|
|
17
|
-
* // Auto-initializes from environment variables
|
|
18
|
-
*
|
|
19
|
-
* Advanced Usage (explicit initialization):
|
|
20
|
-
* import { initializeReveniumFromEnv, patchOpenAIInstance } from '@revenium/openai';
|
|
21
|
-
* import OpenAI from 'openai';
|
|
22
|
-
*
|
|
23
|
-
* const result = initializeReveniumFromEnv();
|
|
24
|
-
* if (!result.success) {
|
|
25
|
-
* throw new Error(result.message);
|
|
26
|
-
* }
|
|
27
|
-
* const openai = patchOpenAIInstance(new OpenAI());
|
|
28
|
-
*
|
|
29
|
-
* const response = await openai.chat.completions.create({
|
|
30
|
-
* model: 'gpt-4',
|
|
31
|
-
* messages: [{ role: 'user', content: 'Hello!' }],
|
|
32
|
-
* usageMetadata: {
|
|
33
|
-
* subscriber: {
|
|
34
|
-
* id: 'user-123',
|
|
35
|
-
* email: 'user@my-org.com'
|
|
36
|
-
* },
|
|
37
|
-
* organizationId: 'my-org',
|
|
38
|
-
* productId: 'my-app'
|
|
39
|
-
* }
|
|
40
|
-
* });
|
|
41
5
|
*/
|
|
42
|
-
import
|
|
43
|
-
import type { ReveniumConfig } from './types/index.js';
|
|
6
|
+
import "./types/openai-augmentation.js";
|
|
44
7
|
/**
|
|
45
8
|
* Core types for TypeScript developers using Revenium middleware
|
|
46
9
|
*
|
|
@@ -55,15 +18,6 @@ export type {
|
|
|
55
18
|
*
|
|
56
19
|
* Defines all required and optional settings for connecting to Revenium's
|
|
57
20
|
* metering API and configuring middleware behavior.
|
|
58
|
-
*
|
|
59
|
-
* @example
|
|
60
|
-
* ```typescript
|
|
61
|
-
* const config: ReveniumConfig = {
|
|
62
|
-
* reveniumApiKey: 'hak_your_api_key',
|
|
63
|
-
* reveniumBaseUrl: 'https://api.revenium.ai',
|
|
64
|
-
* debug: true
|
|
65
|
-
* };
|
|
66
|
-
* ```
|
|
67
21
|
*/
|
|
68
22
|
ReveniumConfig,
|
|
69
23
|
/**
|
|
@@ -72,16 +26,6 @@ ReveniumConfig,
|
|
|
72
26
|
* Comprehensive metadata interface that allows tracking of user context,
|
|
73
27
|
* business information, and custom fields for detailed analytics and billing.
|
|
74
28
|
* All fields are optional to provide maximum flexibility.
|
|
75
|
-
*
|
|
76
|
-
* @example
|
|
77
|
-
* ```typescript
|
|
78
|
-
* const metadata: UsageMetadata = {
|
|
79
|
-
* subscriber: { id: 'user-123', email: 'user@company.com' },
|
|
80
|
-
* organizationId: 'company-456',
|
|
81
|
-
* productId: 'chat-app',
|
|
82
|
-
* taskType: 'customer-support'
|
|
83
|
-
* };
|
|
84
|
-
* ```
|
|
85
29
|
*/
|
|
86
30
|
UsageMetadata,
|
|
87
31
|
/**
|
|
@@ -89,16 +33,7 @@ UsageMetadata,
|
|
|
89
33
|
*
|
|
90
34
|
* Standardized logging interface that allows custom logger integration
|
|
91
35
|
* while maintaining consistent log levels and metadata support.
|
|
92
|
-
|
|
93
|
-
* @example
|
|
94
|
-
* ```typescript
|
|
95
|
-
* const customLogger: Logger = {
|
|
96
|
-
* debug: (msg, meta) => console.debug(msg, meta),
|
|
97
|
-
* info: (msg, meta) => console.info(msg, meta),
|
|
98
|
-
* warn: (msg, meta) => console.warn(msg, meta),
|
|
99
|
-
* error: (msg, meta) => console.error(msg, meta)
|
|
100
|
-
* };
|
|
101
|
-
* ```
|
|
36
|
+
|
|
102
37
|
*/
|
|
103
38
|
Logger,
|
|
104
39
|
/**
|
|
@@ -106,15 +41,6 @@ Logger,
|
|
|
106
41
|
*
|
|
107
42
|
* Specific configuration options for Azure OpenAI integration,
|
|
108
43
|
* including endpoint, API version, and deployment settings.
|
|
109
|
-
*
|
|
110
|
-
* @example
|
|
111
|
-
* ```typescript
|
|
112
|
-
* const azureConfig: AzureConfig = {
|
|
113
|
-
* endpoint: 'https://your-resource.openai.azure.com',
|
|
114
|
-
* apiVersion: '2024-02-01',
|
|
115
|
-
* deployment: 'gpt-4'
|
|
116
|
-
* };
|
|
117
|
-
* ```
|
|
118
44
|
*/
|
|
119
45
|
AzureConfig,
|
|
120
46
|
/**
|
|
@@ -129,72 +55,22 @@ Provider,
|
|
|
129
55
|
*
|
|
130
56
|
* Detailed information about the detected AI provider, including
|
|
131
57
|
* configuration details and Azure-specific settings when applicable.
|
|
132
|
-
*
|
|
133
|
-
* @example
|
|
134
|
-
* ```typescript
|
|
135
|
-
* const providerInfo: ProviderInfo = {
|
|
136
|
-
* provider: Provider.AZURE_OPENAI,
|
|
137
|
-
* isAzure: true,
|
|
138
|
-
* endpoint: 'https://your-resource.openai.azure.com',
|
|
139
|
-
* deployment: 'gpt-4'
|
|
140
|
-
* };
|
|
141
|
-
* ```
|
|
142
|
-
*/
|
|
143
|
-
ProviderInfo, } from './types';
|
|
144
|
-
export { trackUsageAsync, trackEmbeddingsUsageAsync } from './core/tracking/index.js';
|
|
145
|
-
export { detectProvider, hasAzureConfig, validateAzureConfig, getProviderMetadata, } from './core/providers/index.js';
|
|
146
|
-
export { getProviderInfo } from './core/wrapper/index.js';
|
|
147
|
-
export { resolveAzureModelName, clearModelNameCache, getModelNameCacheStats, batchResolveModelNames, wouldTransformDeploymentName, } from './utils/azure-model-resolver.js';
|
|
148
|
-
/**
|
|
149
|
-
* Initialize Revenium middleware with configuration
|
|
150
|
-
*/
|
|
151
|
-
export declare function initializeRevenium(config: ReveniumConfig): {
|
|
152
|
-
success: boolean;
|
|
153
|
-
message: string;
|
|
154
|
-
};
|
|
155
|
-
/**
|
|
156
|
-
* Configure Revenium middleware manually
|
|
157
|
-
* Alias for initializeRevenium() with a more intuitive name
|
|
158
|
-
*
|
|
159
|
-
* @param config - Revenium configuration object
|
|
160
|
-
* @returns Initialization result with success status and message
|
|
161
|
-
*
|
|
162
|
-
* @example
|
|
163
|
-
* ```typescript
|
|
164
|
-
* import { configure } from '@revenium/openai';
|
|
165
|
-
*
|
|
166
|
-
* configure({
|
|
167
|
-
* reveniumApiKey: 'hak_your_api_key',
|
|
168
|
-
* reveniumBaseUrl: 'https://api.revenium.ai',
|
|
169
|
-
* });
|
|
170
|
-
* ```
|
|
171
58
|
*/
|
|
172
|
-
|
|
173
|
-
success: boolean;
|
|
174
|
-
message: string;
|
|
175
|
-
};
|
|
59
|
+
ProviderInfo, } from "./types";
|
|
176
60
|
/**
|
|
177
|
-
*
|
|
61
|
+
* Main API
|
|
178
62
|
*/
|
|
179
|
-
export
|
|
180
|
-
success: boolean;
|
|
181
|
-
message: string;
|
|
182
|
-
};
|
|
63
|
+
export { Initialize, GetClient, IsInitialized, Reset, Configure, } from "./core/client";
|
|
183
64
|
/**
|
|
184
|
-
*
|
|
65
|
+
* Middleware classes
|
|
185
66
|
*/
|
|
186
|
-
export {
|
|
67
|
+
export { ReveniumOpenAI, ChatInterface, CompletionsInterface, EmbeddingsInterface, ResponsesInterface, StreamingWrapper, } from "./core/middleware";
|
|
187
68
|
/**
|
|
188
|
-
*
|
|
69
|
+
* Tracking functions (for advanced use cases)
|
|
189
70
|
*/
|
|
190
|
-
export
|
|
71
|
+
export { trackUsageAsync, trackEmbeddingsUsageAsync } from "./core/tracking";
|
|
191
72
|
/**
|
|
192
|
-
*
|
|
73
|
+
* Provider detection functions
|
|
193
74
|
*/
|
|
194
|
-
export
|
|
195
|
-
initialized: boolean;
|
|
196
|
-
hasConfig: boolean;
|
|
197
|
-
hasApiKey: boolean;
|
|
198
|
-
autoInitAttempted: boolean;
|
|
199
|
-
};
|
|
75
|
+
export { detectProvider, hasAzureConfig, validateAzureConfig, getProviderMetadata, } from "./core/providers";
|
|
200
76
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA
|
|
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,GACjB,MAAM,mBAAmB,CAAC;AAE3B;;GAEG;AACH,OAAO,EAAE,eAAe,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAE7E;;GAEG;AACH,OAAO,EACL,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC"}
|
|
@@ -9,35 +9,14 @@
|
|
|
9
9
|
* @author Revenium
|
|
10
10
|
* @since 1.0.0
|
|
11
11
|
*/
|
|
12
|
-
import { UsageMetadata } from
|
|
13
|
-
import { OpenAIResponsesRequest } from
|
|
12
|
+
import { UsageMetadata } from "./index";
|
|
13
|
+
import { OpenAIResponsesRequest } from "./responses-api";
|
|
14
14
|
/**
|
|
15
15
|
* OpenAI API response structure for chat completions
|
|
16
16
|
*
|
|
17
17
|
* Represents the complete response structure returned by OpenAI's chat completions API.
|
|
18
18
|
* Includes usage statistics, response choices, and metadata. Used internally for
|
|
19
19
|
* processing responses and extracting usage metrics.
|
|
20
|
-
*
|
|
21
|
-
* @public
|
|
22
|
-
* @example
|
|
23
|
-
* ```typescript
|
|
24
|
-
* const response: OpenAIChatResponse = {
|
|
25
|
-
* id: 'chatcmpl-123',
|
|
26
|
-
* model: 'gpt-4o-mini',
|
|
27
|
-
* usage: {
|
|
28
|
-
* prompt_tokens: 10,
|
|
29
|
-
* completion_tokens: 20,
|
|
30
|
-
* total_tokens: 30
|
|
31
|
-
* },
|
|
32
|
-
* choices: [{
|
|
33
|
-
* finish_reason: 'stop',
|
|
34
|
-
* message: {
|
|
35
|
-
* content: 'Hello! How can I help you?',
|
|
36
|
-
* role: 'assistant'
|
|
37
|
-
* }
|
|
38
|
-
* }]
|
|
39
|
-
* };
|
|
40
|
-
* ```
|
|
41
20
|
*/
|
|
42
21
|
export interface OpenAIChatResponse {
|
|
43
22
|
/** Unique identifier for the chat completion */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"function-parameters.d.ts","sourceRoot":"","sources":["../../../src/types/function-parameters.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"function-parameters.d.ts","sourceRoot":"","sources":["../../../src/types/function-parameters.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAEzD;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IACjC,gDAAgD;IAChD,EAAE,EAAE,MAAM,CAAC;IACX,oCAAoC;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,6BAA6B;IAC7B,KAAK,EAAE;QACL,qCAAqC;QACrC,aAAa,EAAE,MAAM,CAAC;QACtB,yCAAyC;QACzC,iBAAiB,EAAE,MAAM,CAAC;QAC1B,8CAA8C;QAC9C,YAAY,EAAE,MAAM,CAAC;QACrB,wDAAwD;QACxD,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,mCAAmC;QACnC,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,kCAAkC;IAClC,OAAO,EAAE,KAAK,CAAC;QACb,yCAAyC;QACzC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;QAC7B,qDAAqD;QACrD,OAAO,CAAC,EAAE;YACR,sBAAsB;YACtB,OAAO,EAAE,MAAM,CAAC;YAChB,6CAA6C;YAC7C,IAAI,EAAE,MAAM,CAAC;SACd,CAAC;QACF,8CAA8C;QAC9C,KAAK,CAAC,EAAE;YACN,0BAA0B;YAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,mBAAmB;YACnB,IAAI,CAAC,EAAE,MAAM,CAAC;SACf,CAAC;KACH,CAAC,CAAC;IACH,wDAAwD;IACxD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6BAA6B;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE;QACL,aAAa,EAAE,MAAM,CAAC;QACtB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,IAAI,EAAE,KAAK,CAAC;QACV,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IACH,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,KAAK,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;IACvB,WAAW,CAAC,EAAE;QACZ,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,IAAI,CAAC,EAAE;QACL,WAAW,CAAC,EAAE;YACZ,MAAM,EAAE,GAAG,CAAC;SACb,CAAC;KACH,CAAC;IACF,UAAU,CAAC,EAAE;QACX,MAAM,EAAE,GAAG,CAAC;KACb,CAAC;IAEF,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,oBAAoB,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,OAAO,EAAE,CAAC;AAEnC;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,CACnC,MAAM,EAAE,iBAAiB,GAAG,sBAAsB,EAClD,OAAO,CAAC,EAAE,oBAAoB,KAC3B,OAAO,CAAC,kBAAkB,GAAG,uBAAuB,CAAC,CAAC;AAE3D;;GAEG;AACH,MAAM,MAAM,+BAA+B,GAAG,CAC5C,MAAM,EAAE,sBAAsB,EAC9B,OAAO,CAAC,EAAE,oBAAoB,KAC3B,OAAO,CAAC,OAAO,CAAC,CAAC;AAEtB;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE;QACN,aAAa,EAAE,MAAM,CAAC;QACtB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,YAAY,EAAE,MAAM,CAAC;QACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,OAAO,CAAC,EAAE,KAAK,CAAC;QACd,KAAK,CAAC,EAAE;YACN,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,IAAI,CAAC,EAAE,MAAM,CAAC;SACf,CAAC;QACF,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC/B,CAAC,CAAC;IACH,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB"}
|
|
@@ -4,22 +4,13 @@
|
|
|
4
4
|
* Central type definitions for the Revenium OpenAI middleware.
|
|
5
5
|
* This module exports all core types used throughout the application.
|
|
6
6
|
*/
|
|
7
|
-
export * from
|
|
8
|
-
export * from
|
|
7
|
+
export * from "./function-parameters.js";
|
|
8
|
+
export * from "./responses-api.js";
|
|
9
9
|
/**
|
|
10
10
|
* Credential information for subscriber authentication
|
|
11
11
|
*
|
|
12
12
|
* Represents authentication credentials that can be attached to subscriber information
|
|
13
13
|
* for enhanced security and tracking capabilities.
|
|
14
|
-
*
|
|
15
|
-
* @public
|
|
16
|
-
* @example
|
|
17
|
-
* ```typescript
|
|
18
|
-
* const credential: Credential = {
|
|
19
|
-
* name: 'api_token',
|
|
20
|
-
* value: 'user_token_abc123'
|
|
21
|
-
* };
|
|
22
|
-
* ```
|
|
23
14
|
*/
|
|
24
15
|
export interface Credential {
|
|
25
16
|
/** The name/type of the credential (e.g., 'api_token', 'session_id') */
|
|
@@ -32,19 +23,6 @@ export interface Credential {
|
|
|
32
23
|
*
|
|
33
24
|
* Represents end-user information for tracking and billing purposes.
|
|
34
25
|
* All fields are optional to provide maximum flexibility in implementation.
|
|
35
|
-
*
|
|
36
|
-
* @public
|
|
37
|
-
* @example
|
|
38
|
-
* ```typescript
|
|
39
|
-
* const subscriber: Subscriber = {
|
|
40
|
-
* id: 'user-12345',
|
|
41
|
-
* email: 'john.doe@company.com',
|
|
42
|
-
* credential: {
|
|
43
|
-
* name: 'session_token',
|
|
44
|
-
* value: 'abc123xyz'
|
|
45
|
-
* }
|
|
46
|
-
* };
|
|
47
|
-
* ```
|
|
48
26
|
*/
|
|
49
27
|
export interface Subscriber {
|
|
50
28
|
/** Unique identifier for the subscriber/user */
|
|
@@ -60,23 +38,6 @@ export interface Subscriber {
|
|
|
60
38
|
* Comprehensive metadata structure that enables detailed tracking of AI API usage
|
|
61
39
|
* for analytics, billing, and business intelligence purposes. All fields are optional
|
|
62
40
|
* to provide maximum flexibility while maintaining consistency across language implementations.
|
|
63
|
-
*
|
|
64
|
-
* @public
|
|
65
|
-
* @example
|
|
66
|
-
* ```typescript
|
|
67
|
-
* const metadata: UsageMetadata = {
|
|
68
|
-
* subscriber: {
|
|
69
|
-
* id: 'user-123',
|
|
70
|
-
* email: 'user@company.com'
|
|
71
|
-
* },
|
|
72
|
-
* organizationId: 'org-456',
|
|
73
|
-
* productId: 'chat-assistant',
|
|
74
|
-
* taskType: 'customer-support',
|
|
75
|
-
* traceId: 'trace-789',
|
|
76
|
-
* responseQualityScore: 0.95, // 0.0-1.0 scale per API spec
|
|
77
|
-
* agent: 'support-bot-v2'
|
|
78
|
-
* };
|
|
79
|
-
* ```
|
|
80
41
|
*/
|
|
81
42
|
export interface UsageMetadata {
|
|
82
43
|
/** User identification information (nested structure for detailed tracking) */
|
|
@@ -102,18 +63,7 @@ export interface UsageMetadata {
|
|
|
102
63
|
* Detailed information about the detected AI provider, including configuration
|
|
103
64
|
* details and Azure-specific settings when applicable. Used internally for
|
|
104
65
|
* provider-specific handling and metrics collection.
|
|
105
|
-
|
|
106
|
-
* @public
|
|
107
|
-
* @example
|
|
108
|
-
* ```typescript
|
|
109
|
-
* const providerInfo: ProviderInfo = {
|
|
110
|
-
* provider: Provider.AZURE_OPENAI,
|
|
111
|
-
* isAzure: true,
|
|
112
|
-
* endpoint: 'https://my-resource.openai.azure.com',
|
|
113
|
-
* apiVersion: '2024-02-01',
|
|
114
|
-
* deployment: 'gpt-4-turbo'
|
|
115
|
-
* };
|
|
116
|
-
* ```
|
|
66
|
+
|
|
117
67
|
*/
|
|
118
68
|
export interface ProviderInfo {
|
|
119
69
|
/** The detected AI provider type */
|
|
@@ -124,8 +74,6 @@ export interface ProviderInfo {
|
|
|
124
74
|
endpoint?: string;
|
|
125
75
|
/** API version (for Azure OpenAI) */
|
|
126
76
|
apiVersion?: string;
|
|
127
|
-
/** Deployment name (for Azure OpenAI) */
|
|
128
|
-
deployment?: string;
|
|
129
77
|
/** Complete Azure configuration when available */
|
|
130
78
|
azureConfig?: AzureConfig;
|
|
131
79
|
}
|
|
@@ -134,14 +82,6 @@ export interface ProviderInfo {
|
|
|
134
82
|
*
|
|
135
83
|
* Enumeration of AI providers supported by the Revenium middleware.
|
|
136
84
|
* Used for automatic detection, routing, and provider-specific handling.
|
|
137
|
-
*
|
|
138
|
-
* @public
|
|
139
|
-
* @example
|
|
140
|
-
* ```typescript
|
|
141
|
-
* if (providerInfo.provider === Provider.AZURE_OPENAI) {
|
|
142
|
-
* console.log('Using Azure OpenAI');
|
|
143
|
-
* }
|
|
144
|
-
* ```
|
|
145
85
|
*/
|
|
146
86
|
export declare enum Provider {
|
|
147
87
|
/** Standard OpenAI API */
|
|
@@ -155,18 +95,6 @@ export declare enum Provider {
|
|
|
155
95
|
* Configuration interface for Azure OpenAI Service integration.
|
|
156
96
|
* Provides all necessary settings for connecting to Azure OpenAI endpoints
|
|
157
97
|
* with proper authentication and resource identification.
|
|
158
|
-
*
|
|
159
|
-
* @public
|
|
160
|
-
* @example
|
|
161
|
-
* ```typescript
|
|
162
|
-
* const azureConfig: AzureConfig = {
|
|
163
|
-
* endpoint: 'https://my-resource.openai.azure.com',
|
|
164
|
-
* apiKey: process.env.AZURE_OPENAI_API_KEY,
|
|
165
|
-
* apiVersion: '2024-02-01',
|
|
166
|
-
* deployment: 'gpt-4-turbo',
|
|
167
|
-
* tenantId: 'your-tenant-id'
|
|
168
|
-
* };
|
|
169
|
-
* ```
|
|
170
98
|
*/
|
|
171
99
|
export interface AzureConfig {
|
|
172
100
|
/** Azure OpenAI endpoint URL */
|
|
@@ -175,12 +103,6 @@ export interface AzureConfig {
|
|
|
175
103
|
apiKey?: string;
|
|
176
104
|
/** Azure OpenAI API version */
|
|
177
105
|
apiVersion?: string;
|
|
178
|
-
/** Azure OpenAI deployment name */
|
|
179
|
-
deployment?: string;
|
|
180
|
-
/** Azure tenant ID for authentication */
|
|
181
|
-
tenantId?: string;
|
|
182
|
-
/** Azure resource group name */
|
|
183
|
-
resourceGroup?: string;
|
|
184
106
|
}
|
|
185
107
|
/**
|
|
186
108
|
* Revenium configuration interface
|
|
@@ -188,17 +110,7 @@ export interface AzureConfig {
|
|
|
188
110
|
* Main configuration interface for initializing the Revenium middleware.
|
|
189
111
|
* Defines all required and optional settings for connecting to Revenium's
|
|
190
112
|
* metering API and configuring middleware behavior.
|
|
191
|
-
|
|
192
|
-
* @public
|
|
193
|
-
* @example
|
|
194
|
-
* ```typescript
|
|
195
|
-
* const config: ReveniumConfig = {
|
|
196
|
-
* reveniumApiKey: 'hak_your_revenium_api_key',
|
|
197
|
-
* reveniumBaseUrl: 'https://api.revenium.ai',
|
|
198
|
-
* debug: true,
|
|
199
|
-
* openaiApiKey: process.env.OPENAI_API_KEY
|
|
200
|
-
* };
|
|
201
|
-
* ```
|
|
113
|
+
|
|
202
114
|
*/
|
|
203
115
|
export interface ReveniumConfig {
|
|
204
116
|
/** Revenium API key for authentication (required) */
|
|
@@ -212,23 +124,17 @@ export interface ReveniumConfig {
|
|
|
212
124
|
/** OpenAI API key (optional, can be set via environment variable) */
|
|
213
125
|
openaiApiKey?: string;
|
|
214
126
|
}
|
|
127
|
+
/**
|
|
128
|
+
* Alias for ReveniumConfig for internal use
|
|
129
|
+
* @public
|
|
130
|
+
*/
|
|
131
|
+
export type Config = ReveniumConfig;
|
|
215
132
|
/**
|
|
216
133
|
* Logger interface for consistent logging
|
|
217
134
|
*
|
|
218
135
|
* Standardized logging interface that allows custom logger integration
|
|
219
136
|
* while maintaining consistent log levels and metadata support throughout
|
|
220
137
|
* the middleware. Supports both structured and string metadata.
|
|
221
|
-
*
|
|
222
|
-
* @public
|
|
223
|
-
* @example
|
|
224
|
-
* ```typescript
|
|
225
|
-
* const customLogger: Logger = {
|
|
226
|
-
* debug: (msg, meta) => console.debug(`[DEBUG] ${msg}`, meta),
|
|
227
|
-
* info: (msg, meta) => console.info(`[INFO] ${msg}`, meta),
|
|
228
|
-
* warn: (msg, meta) => console.warn(`[WARN] ${msg}`, meta),
|
|
229
|
-
* error: (msg, meta) => console.error(`[ERROR] ${msg}`, meta)
|
|
230
|
-
* };
|
|
231
|
-
* ```
|
|
232
138
|
*/
|
|
233
139
|
export interface Logger {
|
|
234
140
|
/** Log debug-level messages with optional metadata */
|
|
@@ -245,8 +151,8 @@ export interface Logger {
|
|
|
245
151
|
*/
|
|
246
152
|
export interface ReveniumPayload {
|
|
247
153
|
transactionId: string;
|
|
248
|
-
operationType:
|
|
249
|
-
costType:
|
|
154
|
+
operationType: "CHAT" | "GENERATE" | "EMBED" | "CLASSIFY" | "SUMMARIZE" | "TRANSLATE" | "OTHER";
|
|
155
|
+
costType: "AI";
|
|
250
156
|
model: string;
|
|
251
157
|
provider: string;
|
|
252
158
|
modelSource?: string;
|
|
@@ -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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,56 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* TypeScript module augmentation for OpenAI SDK
|
|
3
|
-
*
|
|
4
|
-
* This file extends OpenAI's existing types to include the usageMetadata field
|
|
5
|
-
* through TypeScript's declaration merging feature. This provides seamless
|
|
6
|
-
* integration with the OpenAI SDK, allowing developers to use usageMetadata
|
|
7
|
-
* directly in OpenAI API calls without type casting or additional imports.
|
|
8
|
-
*
|
|
9
|
-
* The augmentation covers all major OpenAI API endpoints including:
|
|
10
|
-
* - Chat completions (streaming and non-streaming)
|
|
11
|
-
* - Embeddings
|
|
12
|
-
* - Future API endpoints as they become available
|
|
13
|
-
*
|
|
14
|
-
* @fileoverview OpenAI SDK type augmentation for Revenium middleware
|
|
15
|
-
* @author Revenium
|
|
16
|
-
* @since 1.0.0
|
|
17
|
-
*
|
|
18
|
-
* @example Basic usage with chat completions
|
|
19
|
-
* ```typescript
|
|
20
|
-
* import '@revenium/openai';
|
|
21
|
-
* import OpenAI from 'openai';
|
|
22
|
-
*
|
|
23
|
-
* const openai = new OpenAI();
|
|
24
|
-
*
|
|
25
|
-
* const response = await openai.chat.completions.create({
|
|
26
|
-
* model: 'gpt-4o-mini',
|
|
27
|
-
* messages: [{ role: 'user', content: 'Hello!' }],
|
|
28
|
-
* usageMetadata: { // TypeScript recognizes this natively
|
|
29
|
-
* subscriber: {
|
|
30
|
-
* id: 'user-123',
|
|
31
|
-
* email: 'user@my-company.com'
|
|
32
|
-
* },
|
|
33
|
-
* organizationId: 'my-company',
|
|
34
|
-
* productId: 'chat-app',
|
|
35
|
-
* taskType: 'customer-support'
|
|
36
|
-
* }
|
|
37
|
-
* });
|
|
38
|
-
* ```
|
|
39
|
-
*
|
|
40
|
-
* @example Usage with embeddings
|
|
41
|
-
* ```typescript
|
|
42
|
-
* const embedding = await openai.embeddings.create({
|
|
43
|
-
* model: 'text-embedding-ada-002',
|
|
44
|
-
* input: 'Text to embed',
|
|
45
|
-
* usageMetadata: {
|
|
46
|
-
* subscriber: { id: 'user-456' },
|
|
47
|
-
* productId: 'search-engine',
|
|
48
|
-
* taskType: 'document-indexing'
|
|
49
|
-
* }
|
|
50
|
-
* });
|
|
51
|
-
* ```
|
|
52
3
|
*/
|
|
53
|
-
import { UsageMetadata } from
|
|
4
|
+
import { UsageMetadata } from "./index.js";
|
|
54
5
|
export {};
|
|
55
6
|
/**
|
|
56
7
|
* OpenAI Chat Completions API augmentation
|
|
@@ -58,7 +9,7 @@ export {};
|
|
|
58
9
|
* Extends the OpenAI chat completions interfaces to include usageMetadata
|
|
59
10
|
* for all completion types (base, streaming, and non-streaming).
|
|
60
11
|
*/
|
|
61
|
-
declare module
|
|
12
|
+
declare module "openai/resources/chat/completions/completions" {
|
|
62
13
|
interface ChatCompletionCreateParamsBase {
|
|
63
14
|
/**
|
|
64
15
|
* Optional metadata for enhanced tracking and analytics.
|
|
@@ -68,32 +19,6 @@ declare module 'openai/resources/chat/completions/completions' {
|
|
|
68
19
|
*
|
|
69
20
|
* This metadata is automatically captured by the Revenium middleware and sent to
|
|
70
21
|
* the Revenium API for detailed usage analytics and billing calculations.
|
|
71
|
-
*
|
|
72
|
-
* @since 1.0.0
|
|
73
|
-
* @example Basic user tracking
|
|
74
|
-
* ```typescript
|
|
75
|
-
* usageMetadata: {
|
|
76
|
-
* subscriber: {
|
|
77
|
-
* id: 'user-123',
|
|
78
|
-
* email: 'user@my-company.com'
|
|
79
|
-
* },
|
|
80
|
-
* organizationId: 'my-company',
|
|
81
|
-
* productId: 'support-app'
|
|
82
|
-
* }
|
|
83
|
-
* ```
|
|
84
|
-
*
|
|
85
|
-
* @example Advanced tracking with quality metrics
|
|
86
|
-
* ```typescript
|
|
87
|
-
* usageMetadata: {
|
|
88
|
-
* subscriber: { id: 'user-456' },
|
|
89
|
-
* organizationId: 'enterprise-corp',
|
|
90
|
-
* productId: 'ai-assistant',
|
|
91
|
-
* taskType: 'customer-support',
|
|
92
|
-
* traceId: 'session-abc-123',
|
|
93
|
-
* responseQualityScore: 0.95,
|
|
94
|
-
* agent: 'support-bot-v2'
|
|
95
|
-
* }
|
|
96
|
-
* ```
|
|
97
22
|
*/
|
|
98
23
|
usageMetadata?: UsageMetadata;
|
|
99
24
|
}
|
|
@@ -126,7 +51,7 @@ declare module 'openai/resources/chat/completions/completions' {
|
|
|
126
51
|
* Extends the OpenAI embeddings interface to include usageMetadata
|
|
127
52
|
* for comprehensive tracking of embedding generation requests.
|
|
128
53
|
*/
|
|
129
|
-
declare module
|
|
54
|
+
declare module "openai/resources/embeddings" {
|
|
130
55
|
interface EmbeddingCreateParams {
|
|
131
56
|
/**
|
|
132
57
|
* Optional metadata for enhanced tracking and analytics.
|
|
@@ -137,31 +62,6 @@ declare module 'openai/resources/embeddings' {
|
|
|
137
62
|
*
|
|
138
63
|
* All fields are optional to maintain backward compatibility and provide maximum flexibility.
|
|
139
64
|
*
|
|
140
|
-
* @since 1.0.0
|
|
141
|
-
* @example Document indexing workflow
|
|
142
|
-
* ```typescript
|
|
143
|
-
* usageMetadata: {
|
|
144
|
-
* subscriber: {
|
|
145
|
-
* id: 'user-123',
|
|
146
|
-
* email: 'user@my-company.com'
|
|
147
|
-
* },
|
|
148
|
-
* organizationId: 'my-company',
|
|
149
|
-
* productId: 'vector-search',
|
|
150
|
-
* taskType: 'document-indexing'
|
|
151
|
-
* }
|
|
152
|
-
* ```
|
|
153
|
-
*
|
|
154
|
-
* @example Semantic search application
|
|
155
|
-
* ```typescript
|
|
156
|
-
* usageMetadata: {
|
|
157
|
-
* subscriber: { id: 'user-456' },
|
|
158
|
-
* organizationId: 'enterprise-corp',
|
|
159
|
-
* productId: 'knowledge-base',
|
|
160
|
-
* taskType: 'semantic-search',
|
|
161
|
-
* traceId: 'search-session-789'
|
|
162
|
-
* }
|
|
163
|
-
* ```
|
|
164
|
-
*
|
|
165
65
|
* @see {@link UsageMetadata} for detailed field descriptions
|
|
166
66
|
*/
|
|
167
67
|
usageMetadata?: UsageMetadata;
|
|
@@ -173,7 +73,7 @@ declare module 'openai/resources/embeddings' {
|
|
|
173
73
|
* Extends the new Responses API to support usageMetadata for comprehensive tracking.
|
|
174
74
|
* The Responses API is OpenAI's new unified interface for agent-like applications.
|
|
175
75
|
*/
|
|
176
|
-
declare module
|
|
76
|
+
declare module "openai" {
|
|
177
77
|
namespace Responses {
|
|
178
78
|
interface ResponseCreateParams {
|
|
179
79
|
/**
|
|
@@ -182,40 +82,6 @@ declare module 'openai' {
|
|
|
182
82
|
* Enables comprehensive tracking and analytics for Responses API calls.
|
|
183
83
|
* All fields are optional and can be customized based on your application needs.
|
|
184
84
|
*
|
|
185
|
-
* @example Basic Responses API usage with metadata
|
|
186
|
-
* ```typescript
|
|
187
|
-
* const response = await openai.responses.create({
|
|
188
|
-
* model: 'gpt-4.1',
|
|
189
|
-
* input: 'Analyze this data and provide insights',
|
|
190
|
-
* usageMetadata: {
|
|
191
|
-
* subscriber: {
|
|
192
|
-
* id: 'analyst-123',
|
|
193
|
-
* email: 'analyst@company.com'
|
|
194
|
-
* },
|
|
195
|
-
* organizationId: 'data-corp',
|
|
196
|
-
* productId: 'analytics-platform',
|
|
197
|
-
* taskType: 'data-analysis',
|
|
198
|
-
* agent: 'responses-api-v1'
|
|
199
|
-
* }
|
|
200
|
-
* });
|
|
201
|
-
* ```
|
|
202
|
-
*
|
|
203
|
-
* @example Streaming Responses API with metadata
|
|
204
|
-
* ```typescript
|
|
205
|
-
* const stream = await openai.responses.create({
|
|
206
|
-
* model: 'gpt-4.1',
|
|
207
|
-
* input: [
|
|
208
|
-
* { role: 'user', content: 'Generate a detailed report' }
|
|
209
|
-
* ],
|
|
210
|
-
* stream: true,
|
|
211
|
-
* usageMetadata: {
|
|
212
|
-
* subscriber: { id: 'user-456' },
|
|
213
|
-
* taskType: 'report-generation',
|
|
214
|
-
* traceId: 'session-789'
|
|
215
|
-
* }
|
|
216
|
-
* });
|
|
217
|
-
* ```
|
|
218
|
-
*
|
|
219
85
|
* @see {@link UsageMetadata} for detailed field descriptions
|
|
220
86
|
*/
|
|
221
87
|
usageMetadata?: UsageMetadata;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai-augmentation.d.ts","sourceRoot":"","sources":["../../../src/types/openai-augmentation.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"openai-augmentation.d.ts","sourceRoot":"","sources":["../../../src/types/openai-augmentation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAG3C,OAAO,EAAE,CAAC;AAEV;;;;;GAKG;AACH,OAAO,QAAQ,+CAA+C,CAAC;IAC7D,UAAU,8BAA8B;QACtC;;;;;;;;WAQG;QACH,aAAa,CAAC,EAAE,aAAa,CAAC;KAC/B;IAED,UAAU,sCAAsC;QAC9C;;;;;;;WAOG;QACH,aAAa,CAAC,EAAE,aAAa,CAAC;KAC/B;IAED,UAAU,mCAAmC;QAC3C;;;;;;;WAOG;QACH,aAAa,CAAC,EAAE,aAAa,CAAC;KAC/B;CACF;AAED;;;;;GAKG;AACH,OAAO,QAAQ,6BAA6B,CAAC;IAC3C,UAAU,qBAAqB;QAC7B;;;;;;;;;;WAUG;QACH,aAAa,CAAC,EAAE,aAAa,CAAC;KAC/B;CACF;AAED;;;;;GAKG;AACH,OAAO,QAAQ,QAAQ,CAAC;IACtB,UAAU,SAAS,CAAC;QAClB,UAAU,oBAAoB;YAC5B;;;;;;;eAOG;YACH,aAAa,CAAC,EAAE,aAAa,CAAC;SAC/B;KACF;CACF"}
|