@aeye/ai 0.1.0
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/README.md +1324 -0
- package/dist/ai.d.ts +204 -0
- package/dist/ai.d.ts.map +1 -0
- package/dist/ai.js +837 -0
- package/dist/ai.js.map +1 -0
- package/dist/apis/base.d.ts +181 -0
- package/dist/apis/base.d.ts.map +1 -0
- package/dist/apis/base.js +359 -0
- package/dist/apis/base.js.map +1 -0
- package/dist/apis/chat.d.ts +82 -0
- package/dist/apis/chat.d.ts.map +1 -0
- package/dist/apis/chat.js +214 -0
- package/dist/apis/chat.js.map +1 -0
- package/dist/apis/embed.d.ts +27 -0
- package/dist/apis/embed.d.ts.map +1 -0
- package/dist/apis/embed.js +70 -0
- package/dist/apis/embed.js.map +1 -0
- package/dist/apis/image.d.ts +77 -0
- package/dist/apis/image.d.ts.map +1 -0
- package/dist/apis/image.js +313 -0
- package/dist/apis/image.js.map +1 -0
- package/dist/apis/models.d.ts +108 -0
- package/dist/apis/models.d.ts.map +1 -0
- package/dist/apis/models.js +118 -0
- package/dist/apis/models.js.map +1 -0
- package/dist/apis/speech.d.ts +27 -0
- package/dist/apis/speech.d.ts.map +1 -0
- package/dist/apis/speech.js +79 -0
- package/dist/apis/speech.js.map +1 -0
- package/dist/apis/transcribe.d.ts +26 -0
- package/dist/apis/transcribe.d.ts.map +1 -0
- package/dist/apis/transcribe.js +103 -0
- package/dist/apis/transcribe.js.map +1 -0
- package/dist/common.d.ts +10 -0
- package/dist/common.d.ts.map +1 -0
- package/dist/common.js +17 -0
- package/dist/common.js.map +1 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +17 -0
- package/dist/index.js.map +1 -0
- package/dist/modelDetection.d.ts +31 -0
- package/dist/modelDetection.d.ts.map +1 -0
- package/dist/modelDetection.js +78 -0
- package/dist/modelDetection.js.map +1 -0
- package/dist/registry.d.ts +150 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +639 -0
- package/dist/registry.js.map +1 -0
- package/dist/types.d.ts +767 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +8 -0
- package/dist/types.js.map +1 -0
- package/package.json +53 -0
package/dist/ai.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai.js","sourceRoot":"","sources":["../src/ai.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base API
|
|
3
|
+
*
|
|
4
|
+
* Abstract base class for all AI API implementations.
|
|
5
|
+
* Implements the template method pattern to eliminate code duplication.
|
|
6
|
+
*/
|
|
7
|
+
import { BaseChunk, BaseRequest, BaseResponse } from '@aeye/core';
|
|
8
|
+
import type { AI } from '../ai';
|
|
9
|
+
import type { AIBaseTypes, AIContext, AIContextRequired, ModelCapability, ModelHandlerFor, ModelParameter, OptionalParams, SelectedModelFor, Usage } from '../types';
|
|
10
|
+
/**
|
|
11
|
+
* Abstract base class for all API implementations
|
|
12
|
+
*
|
|
13
|
+
* Provides the complete lifecycle for AI operations with variation points
|
|
14
|
+
* for subclass-specific behavior.
|
|
15
|
+
*
|
|
16
|
+
* @template T - AIBaseTypes container with all type information
|
|
17
|
+
* @template TRequest - Request type for this API
|
|
18
|
+
* @template TResponse - Response type for this API
|
|
19
|
+
* @template TChunk - Chunk type for streaming (use never if no streaming)
|
|
20
|
+
*/
|
|
21
|
+
export declare abstract class BaseAPI<T extends AIBaseTypes, TRequest extends BaseRequest = BaseRequest, TResponse extends BaseResponse = BaseResponse, TChunk extends BaseChunk = BaseChunk> {
|
|
22
|
+
protected ai: AI<T>;
|
|
23
|
+
constructor(ai: AI<T>);
|
|
24
|
+
/**
|
|
25
|
+
* Gets the selected model for a given request and context.
|
|
26
|
+
*
|
|
27
|
+
* @param request - The request to get the model for
|
|
28
|
+
* @param ctx - The AI context
|
|
29
|
+
* @returns
|
|
30
|
+
*/
|
|
31
|
+
getModelFor<TRuntimeContext extends AIContext<T>>(request: TRequest, ctx: TRuntimeContext, forStreaming: boolean): Promise<SelectedModelFor<T> | null>;
|
|
32
|
+
/**
|
|
33
|
+
* Execute a non-streaming request
|
|
34
|
+
*
|
|
35
|
+
* Single optional context parameter pattern
|
|
36
|
+
*/
|
|
37
|
+
get<TRuntimeContext extends AIContextRequired<T>>(request: TRequest, ...[ctx]: OptionalParams<[TRuntimeContext]>): Promise<TResponse>;
|
|
38
|
+
/**
|
|
39
|
+
* Execute a streaming request
|
|
40
|
+
*
|
|
41
|
+
* Single optional context parameter pattern
|
|
42
|
+
*/
|
|
43
|
+
stream<TRuntimeContext extends AIContextRequired<T>>(request: TRequest, ...[ctx]: OptionalParams<[TRuntimeContext]>): AsyncIterable<TChunk>;
|
|
44
|
+
/**
|
|
45
|
+
* Get required capabilities for model selection
|
|
46
|
+
* @param provided - Additional capabilities provided by caller
|
|
47
|
+
* @param request - Optional request to analyze for additional capability needs
|
|
48
|
+
*/
|
|
49
|
+
protected abstract getRequiredCapabilities(provided: ModelCapability[], request: TRequest, forStreaming: boolean): ModelCapability[];
|
|
50
|
+
/**
|
|
51
|
+
* Get required parameters for model selection based on the request
|
|
52
|
+
* @param request - The request to analyze
|
|
53
|
+
* @returns Set of parameters required by this request
|
|
54
|
+
*/
|
|
55
|
+
protected abstract getRequiredParameters(provided: ModelParameter[], request: TRequest, forStreaming: boolean): ModelParameter[];
|
|
56
|
+
/**
|
|
57
|
+
* Get error message when no compatible model is found
|
|
58
|
+
*/
|
|
59
|
+
protected abstract getNoModelFoundError(): string;
|
|
60
|
+
/**
|
|
61
|
+
* Get error type string for error handling
|
|
62
|
+
* @param operation - Whether this is a request or stream operation
|
|
63
|
+
*/
|
|
64
|
+
protected abstract getErrorType(operation: 'request' | 'stream'): string;
|
|
65
|
+
/**
|
|
66
|
+
* Get error message for error handling
|
|
67
|
+
* @param operation - Whether this is a request or stream operation
|
|
68
|
+
*/
|
|
69
|
+
protected abstract getErrorMessage(operation: 'request' | 'stream'): string;
|
|
70
|
+
/**
|
|
71
|
+
* Execute the request with the selected provider
|
|
72
|
+
* Called by executeRequestWithFallback when handler doesn't provide get method
|
|
73
|
+
* @param request - The request to execute
|
|
74
|
+
* @param selected - The selected model and provider
|
|
75
|
+
* @param ctx - The execution context
|
|
76
|
+
*/
|
|
77
|
+
protected abstract executeRequest<TRuntimeContext extends AIContext<T>>(request: TRequest, selected: SelectedModelFor<T>, ctx: TRuntimeContext): Promise<TResponse>;
|
|
78
|
+
/**
|
|
79
|
+
* Stream the request with the selected provider
|
|
80
|
+
* Called by streamRequestWithFallback when handler doesn't provide stream method
|
|
81
|
+
* @param request - The request to stream
|
|
82
|
+
* @param selected - The selected model and provider
|
|
83
|
+
* @param ctx - The execution context
|
|
84
|
+
*/
|
|
85
|
+
protected abstract executeStreamRequest<TRuntimeContext extends AIContext<T>>(request: TRequest, selected: SelectedModelFor<T>, ctx: TRuntimeContext): AsyncIterable<TChunk>;
|
|
86
|
+
/**
|
|
87
|
+
* Convert a response to a single chunk (for executor-to-streamer fallback)
|
|
88
|
+
* @param response - The response to convert
|
|
89
|
+
*/
|
|
90
|
+
protected abstract responseToChunks(response: TResponse): TChunk[];
|
|
91
|
+
/**
|
|
92
|
+
* Convert accumulated chunks to a response (for streamer-to-executor fallback)
|
|
93
|
+
* @param chunks - Array of chunks to convert
|
|
94
|
+
*/
|
|
95
|
+
protected abstract chunksToResponse(chunks: TChunk[], model: string): TResponse;
|
|
96
|
+
/**
|
|
97
|
+
* Check if the provider supports non-streaming execution for this operation
|
|
98
|
+
* @param selected - The selected model and provider
|
|
99
|
+
*/
|
|
100
|
+
protected abstract hasProviderExecutor(selected: SelectedModelFor<T>): boolean;
|
|
101
|
+
/**
|
|
102
|
+
* Check if the provider supports streaming execution for this operation
|
|
103
|
+
* @param selected - The selected model and provider
|
|
104
|
+
*/
|
|
105
|
+
protected abstract hasProviderStreamer(selected: SelectedModelFor<T>): boolean;
|
|
106
|
+
/**
|
|
107
|
+
* Get the appropriate handler get method for this API
|
|
108
|
+
* Subclasses can override to specify which handler method to use
|
|
109
|
+
*/
|
|
110
|
+
protected abstract getHandlerGetMethod<TRuntimeContext extends AIContext<T>>(handler?: ModelHandlerFor<T>): ((request: TRequest, ctx: TRuntimeContext) => Promise<TResponse>) | undefined;
|
|
111
|
+
/**
|
|
112
|
+
* Get the appropriate handler stream method for this API
|
|
113
|
+
* Subclasses can override to specify which handler method to use
|
|
114
|
+
*/
|
|
115
|
+
protected abstract getHandlerStreamMethod<TRuntimeContext extends AIContext<T>>(handler?: ModelHandlerFor<T>): ((request: TRequest, ctx: TRuntimeContext) => AsyncIterable<TChunk>) | undefined;
|
|
116
|
+
/**
|
|
117
|
+
* Get required capabilities for streaming (default: adds 'streaming')
|
|
118
|
+
* @param provided - Additional capabilities provided by caller
|
|
119
|
+
* @param request - Optional request to analyze for additional capability needs
|
|
120
|
+
*/
|
|
121
|
+
protected getRequiredCapabilitiesForStreaming(provided: ModelCapability[], request: TRequest): ModelCapability[];
|
|
122
|
+
/**
|
|
123
|
+
* Get error message for streaming when no compatible model is found
|
|
124
|
+
* (default: modifies base error to mention streaming)
|
|
125
|
+
*/
|
|
126
|
+
protected getNoModelFoundErrorForStreaming(): string;
|
|
127
|
+
/**
|
|
128
|
+
* Estimate usage for the request
|
|
129
|
+
* (default: returns empty usage, subclasses should override)
|
|
130
|
+
* @param request - The request to estimate
|
|
131
|
+
* @param selected - The selected model and provider
|
|
132
|
+
*/
|
|
133
|
+
protected estimateRequestUsage(request: TRequest, selected: SelectedModelFor<T>): Usage;
|
|
134
|
+
/**
|
|
135
|
+
* Estimate cost for a request before execution
|
|
136
|
+
*
|
|
137
|
+
* @param estimatedUsage - Estimated usage statistics
|
|
138
|
+
* @param selected - The selected model and provider
|
|
139
|
+
* @returns Estimated cost
|
|
140
|
+
*/
|
|
141
|
+
protected estimateRequestCost(estimatedUsage: Usage, selected: SelectedModelFor<T>): number;
|
|
142
|
+
/**
|
|
143
|
+
* Calculate cost for a completed response
|
|
144
|
+
* (default: extracts from response.cost or calculates from usage)
|
|
145
|
+
* @param response - The response
|
|
146
|
+
* @param selected - The selected model and provider
|
|
147
|
+
* @param estimatedUsage - Estimated usage statistics
|
|
148
|
+
*/
|
|
149
|
+
protected calculateResponseCost(response: TResponse, selected: SelectedModelFor<T>, estimatedUsage: Usage): number;
|
|
150
|
+
/**
|
|
151
|
+
* Calculate cost for a completed stream
|
|
152
|
+
* (default: calculates from accumulated usage)
|
|
153
|
+
* @param usage - Accumulated token usage
|
|
154
|
+
* @param selected - The selected model and provider
|
|
155
|
+
*/
|
|
156
|
+
protected calculateStreamCost(usage: Usage, selected: SelectedModelFor<T>): number;
|
|
157
|
+
/**
|
|
158
|
+
* Extract usage from response
|
|
159
|
+
* (default: extracts from response.usage or uses estimate)
|
|
160
|
+
* @param response - The response
|
|
161
|
+
* @param estimatedUsage - Estimated usage statistics
|
|
162
|
+
*/
|
|
163
|
+
protected extractUsage(response: TResponse, estimatedUsage: Usage): Usage;
|
|
164
|
+
/**
|
|
165
|
+
* Execute request with fallback logic:
|
|
166
|
+
* 1. Try handler.get() if available
|
|
167
|
+
* 2. Try handler-specific method (e.g., handler.chat.get)
|
|
168
|
+
* 3. Try executeRequest() (provider method)
|
|
169
|
+
* 4. Try streamer-to-executor conversion if provider has streamer
|
|
170
|
+
*/
|
|
171
|
+
protected executeRequestWithFallback<TRuntimeContext extends AIContext<T>>(request: TRequest, selected: SelectedModelFor<T>, ctx: TRuntimeContext, handler?: ModelHandlerFor<T>): Promise<TResponse>;
|
|
172
|
+
/**
|
|
173
|
+
* Stream request with fallback logic:
|
|
174
|
+
* 1. Try handler.stream() if available
|
|
175
|
+
* 2. Try handler-specific method (e.g., handler.chat.stream)
|
|
176
|
+
* 3. Try executeStreamRequest() (provider streaming method)
|
|
177
|
+
* 4. Try executor-to-streamer conversion if provider has executor
|
|
178
|
+
*/
|
|
179
|
+
protected streamRequestWithFallback<TRuntimeContext extends AIContext<T>>(request: TRequest, selected: SelectedModelFor<T>, ctx: TRuntimeContext, handler?: ModelHandlerFor<T>): AsyncIterable<TChunk>;
|
|
180
|
+
}
|
|
181
|
+
//# sourceMappingURL=base.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/apis/base.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,359 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base API
|
|
3
|
+
*
|
|
4
|
+
* Abstract base class for all AI API implementations.
|
|
5
|
+
* Implements the template method pattern to eliminate code duplication.
|
|
6
|
+
*/
|
|
7
|
+
import { accumulateUsage, getModel } from '@aeye/core';
|
|
8
|
+
import { isModelInfo } from '../common';
|
|
9
|
+
/**
|
|
10
|
+
* Abstract base class for all API implementations
|
|
11
|
+
*
|
|
12
|
+
* Provides the complete lifecycle for AI operations with variation points
|
|
13
|
+
* for subclass-specific behavior.
|
|
14
|
+
*
|
|
15
|
+
* @template T - AIBaseTypes container with all type information
|
|
16
|
+
* @template TRequest - Request type for this API
|
|
17
|
+
* @template TResponse - Response type for this API
|
|
18
|
+
* @template TChunk - Chunk type for streaming (use never if no streaming)
|
|
19
|
+
*/
|
|
20
|
+
export class BaseAPI {
|
|
21
|
+
ai;
|
|
22
|
+
constructor(ai) {
|
|
23
|
+
this.ai = ai;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Gets the selected model for a given request and context.
|
|
27
|
+
*
|
|
28
|
+
* @param request - The request to get the model for
|
|
29
|
+
* @param ctx - The AI context
|
|
30
|
+
* @returns
|
|
31
|
+
*/
|
|
32
|
+
async getModelFor(request, ctx, forStreaming) {
|
|
33
|
+
const { hooks, registry } = this.ai;
|
|
34
|
+
// Check if model is already specified
|
|
35
|
+
const model = getModel(request.model || ctx.metadata?.model);
|
|
36
|
+
if (model) {
|
|
37
|
+
const modelInfo = isModelInfo(model)
|
|
38
|
+
? model
|
|
39
|
+
: registry.getModel(model.id);
|
|
40
|
+
if (modelInfo) {
|
|
41
|
+
const provider = registry.getProvider(modelInfo.provider)
|
|
42
|
+
?? registry.getProviderFor(model.id)[1];
|
|
43
|
+
if (!provider) {
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
return {
|
|
47
|
+
model: modelInfo,
|
|
48
|
+
provider: provider,
|
|
49
|
+
score: 1.0,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
const { contextWindow = 0, maxOutputTokens = 0 } = model;
|
|
54
|
+
const [providerKey, provider] = this.ai.registry.getProviderFor(model.id);
|
|
55
|
+
if (!provider || !providerKey) {
|
|
56
|
+
return null;
|
|
57
|
+
}
|
|
58
|
+
return {
|
|
59
|
+
model: {
|
|
60
|
+
id: model.id,
|
|
61
|
+
provider: providerKey,
|
|
62
|
+
name: model.id,
|
|
63
|
+
capabilities: new Set(),
|
|
64
|
+
tier: 'flagship',
|
|
65
|
+
pricing: {},
|
|
66
|
+
contextWindow,
|
|
67
|
+
maxOutputTokens,
|
|
68
|
+
},
|
|
69
|
+
provider,
|
|
70
|
+
score: 1.0,
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
// No model specified - use selection system
|
|
76
|
+
// Build metadata with required capabilities and parameters
|
|
77
|
+
const metadataRequired = {
|
|
78
|
+
...ctx.metadata,
|
|
79
|
+
required: this.getRequiredCapabilities(ctx.metadata?.required || [], request, forStreaming),
|
|
80
|
+
requiredParameters: this.getRequiredParameters(ctx.metadata?.requiredParameters || [], request, forStreaming),
|
|
81
|
+
};
|
|
82
|
+
// Build metadata from what used passed in context
|
|
83
|
+
const metadata = await this.ai.buildMetadata(metadataRequired);
|
|
84
|
+
// Run beforeModelSelection hook to affect which model might be selected (like restricting providers, zdr, etc)
|
|
85
|
+
const enrichedMetadata = hooks.beforeModelSelection
|
|
86
|
+
? await hooks.beforeModelSelection(ctx, request, metadata)
|
|
87
|
+
: metadata;
|
|
88
|
+
// Select model
|
|
89
|
+
const dynamicSelection = registry.selectModel(enrichedMetadata);
|
|
90
|
+
if (!dynamicSelection) {
|
|
91
|
+
return null;
|
|
92
|
+
}
|
|
93
|
+
return dynamicSelection;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Execute a non-streaming request
|
|
98
|
+
*
|
|
99
|
+
* Single optional context parameter pattern
|
|
100
|
+
*/
|
|
101
|
+
async get(request, ...[ctx]) {
|
|
102
|
+
const { hooks, registry } = this.ai;
|
|
103
|
+
let latestCtx = ctx;
|
|
104
|
+
try {
|
|
105
|
+
// Build full context
|
|
106
|
+
const fullCtx = await this.ai.buildContext(ctx || {});
|
|
107
|
+
latestCtx = fullCtx;
|
|
108
|
+
// Get model for request
|
|
109
|
+
const selected = await this.getModelFor(request, fullCtx, false);
|
|
110
|
+
if (!selected) {
|
|
111
|
+
throw new Error(this.getNoModelFoundError());
|
|
112
|
+
}
|
|
113
|
+
// Inject selected model into context for provider access
|
|
114
|
+
fullCtx.metadata = {
|
|
115
|
+
...fullCtx.metadata,
|
|
116
|
+
model: selected.model,
|
|
117
|
+
};
|
|
118
|
+
// Run onModelSelected hook
|
|
119
|
+
const finalSelected = (await hooks.onModelSelected?.(fullCtx, request, selected)) || selected;
|
|
120
|
+
// Estimate usage
|
|
121
|
+
const estimatedUsage = this.estimateRequestUsage(request, finalSelected);
|
|
122
|
+
const estimatedCost = this.estimateRequestCost(estimatedUsage, finalSelected);
|
|
123
|
+
// Run beforeRequest hook (hook can override provider config)
|
|
124
|
+
await hooks.beforeRequest?.(fullCtx, request, finalSelected, estimatedUsage, estimatedCost);
|
|
125
|
+
// Get handler if available
|
|
126
|
+
const handler = registry.getHandler(finalSelected.model.provider, finalSelected.model.id);
|
|
127
|
+
// Execute request with fallback logic
|
|
128
|
+
const response = await this.executeRequestWithFallback(request, finalSelected, fullCtx, handler);
|
|
129
|
+
// Calculate cost and extract usage
|
|
130
|
+
const usage = this.extractUsage(response, estimatedUsage);
|
|
131
|
+
const cost = this.calculateResponseCost(response, finalSelected, estimatedUsage);
|
|
132
|
+
// Run afterRequest hook
|
|
133
|
+
await hooks.afterRequest?.(fullCtx, request, response, true, finalSelected, usage, cost);
|
|
134
|
+
return response;
|
|
135
|
+
}
|
|
136
|
+
catch (error) {
|
|
137
|
+
hooks.onError?.(this.getErrorType('request'), this.getErrorMessage('request'), error instanceof Error ? error : undefined, latestCtx, request);
|
|
138
|
+
throw error;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Execute a streaming request
|
|
143
|
+
*
|
|
144
|
+
* Single optional context parameter pattern
|
|
145
|
+
*/
|
|
146
|
+
async *stream(request, ...[ctx]) {
|
|
147
|
+
const { hooks, registry } = this.ai;
|
|
148
|
+
let latestCtx = ctx;
|
|
149
|
+
try {
|
|
150
|
+
// Build full context
|
|
151
|
+
const fullCtx = await this.ai.buildContext(ctx || {});
|
|
152
|
+
latestCtx = fullCtx;
|
|
153
|
+
// Get model for request
|
|
154
|
+
const selected = await this.getModelFor(request, fullCtx, true);
|
|
155
|
+
if (!selected) {
|
|
156
|
+
throw new Error(this.getNoModelFoundErrorForStreaming());
|
|
157
|
+
}
|
|
158
|
+
// Inject selected model into context for provider access
|
|
159
|
+
fullCtx.metadata = {
|
|
160
|
+
...fullCtx.metadata,
|
|
161
|
+
model: selected.model.id,
|
|
162
|
+
};
|
|
163
|
+
// Run onModelSelected hook
|
|
164
|
+
const finalSelected = hooks.onModelSelected
|
|
165
|
+
? (await hooks.onModelSelected(fullCtx, request, selected)) || selected
|
|
166
|
+
: selected;
|
|
167
|
+
// Estimate usage
|
|
168
|
+
const estimatedUsage = this.estimateRequestUsage(request, finalSelected);
|
|
169
|
+
const estimatedCost = this.estimateRequestCost(estimatedUsage, finalSelected);
|
|
170
|
+
// Run beforeRequest hook
|
|
171
|
+
await hooks.beforeRequest?.(fullCtx, request, finalSelected, estimatedUsage, estimatedCost);
|
|
172
|
+
// Get handler if available
|
|
173
|
+
const handler = registry.getHandler(finalSelected.model.provider, finalSelected.model.id);
|
|
174
|
+
// Stream request and accumulate usage
|
|
175
|
+
const accumulatedUsage = {};
|
|
176
|
+
const chunks = [];
|
|
177
|
+
let finished = false;
|
|
178
|
+
try {
|
|
179
|
+
for await (const chunk of this.streamRequestWithFallback(request, finalSelected, fullCtx, handler)) {
|
|
180
|
+
const usage = chunk.usage;
|
|
181
|
+
if (usage) {
|
|
182
|
+
accumulateUsage(accumulatedUsage, usage);
|
|
183
|
+
}
|
|
184
|
+
chunks.push(chunk);
|
|
185
|
+
yield chunk;
|
|
186
|
+
}
|
|
187
|
+
finished = true;
|
|
188
|
+
}
|
|
189
|
+
finally {
|
|
190
|
+
// Calculate cost
|
|
191
|
+
const cost = this.calculateStreamCost(accumulatedUsage, finalSelected);
|
|
192
|
+
// Build response from chunks
|
|
193
|
+
const response = this.chunksToResponse(chunks, finalSelected.model.id);
|
|
194
|
+
// Run afterRequest hook
|
|
195
|
+
await hooks.afterRequest?.(fullCtx, request, response, finished, finalSelected, accumulatedUsage, cost);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
catch (error) {
|
|
199
|
+
hooks.onError?.(this.getErrorType('stream'), this.getErrorMessage('stream'), error instanceof Error ? error : undefined, latestCtx, request);
|
|
200
|
+
throw error;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
// ============================================================================
|
|
204
|
+
// OPTIONAL OVERRIDES (default implementations provided)
|
|
205
|
+
// ============================================================================
|
|
206
|
+
/**
|
|
207
|
+
* Get required capabilities for streaming (default: adds 'streaming')
|
|
208
|
+
* @param provided - Additional capabilities provided by caller
|
|
209
|
+
* @param request - Optional request to analyze for additional capability needs
|
|
210
|
+
*/
|
|
211
|
+
getRequiredCapabilitiesForStreaming(provided, request) {
|
|
212
|
+
return [...this.getRequiredCapabilities(provided, request, true), 'streaming'];
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Get error message for streaming when no compatible model is found
|
|
216
|
+
* (default: modifies base error to mention streaming)
|
|
217
|
+
*/
|
|
218
|
+
getNoModelFoundErrorForStreaming() {
|
|
219
|
+
return this.getNoModelFoundError().replace('criteria', 'streaming criteria');
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Estimate usage for the request
|
|
223
|
+
* (default: returns empty usage, subclasses should override)
|
|
224
|
+
* @param request - The request to estimate
|
|
225
|
+
* @param selected - The selected model and provider
|
|
226
|
+
*/
|
|
227
|
+
estimateRequestUsage(request, selected) {
|
|
228
|
+
return {};
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Estimate cost for a request before execution
|
|
232
|
+
*
|
|
233
|
+
* @param estimatedUsage - Estimated usage statistics
|
|
234
|
+
* @param selected - The selected model and provider
|
|
235
|
+
* @returns Estimated cost
|
|
236
|
+
*/
|
|
237
|
+
estimateRequestCost(estimatedUsage, selected) {
|
|
238
|
+
// If no cost provided, calculate it
|
|
239
|
+
return this.ai.calculateCost(selected.model, estimatedUsage);
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Calculate cost for a completed response
|
|
243
|
+
* (default: extracts from response.cost or calculates from usage)
|
|
244
|
+
* @param response - The response
|
|
245
|
+
* @param selected - The selected model and provider
|
|
246
|
+
* @param estimatedUsage - Estimated usage statistics
|
|
247
|
+
*/
|
|
248
|
+
calculateResponseCost(response, selected, estimatedUsage) {
|
|
249
|
+
// Otherwise extract usage and check if cost is included
|
|
250
|
+
const usage = this.extractUsage(response, estimatedUsage);
|
|
251
|
+
if (usage.cost !== undefined) {
|
|
252
|
+
return usage.cost;
|
|
253
|
+
}
|
|
254
|
+
// If no cost provided, calculate it
|
|
255
|
+
return this.ai.calculateCost(selected.model, usage);
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* Calculate cost for a completed stream
|
|
259
|
+
* (default: calculates from accumulated usage)
|
|
260
|
+
* @param usage - Accumulated token usage
|
|
261
|
+
* @param selected - The selected model and provider
|
|
262
|
+
*/
|
|
263
|
+
calculateStreamCost(usage, selected) {
|
|
264
|
+
// If cost is already included in usage, return it
|
|
265
|
+
if (usage.cost !== undefined) {
|
|
266
|
+
return usage.cost;
|
|
267
|
+
}
|
|
268
|
+
return this.ai.calculateCost(selected.model, usage);
|
|
269
|
+
}
|
|
270
|
+
/**
|
|
271
|
+
* Extract usage from response
|
|
272
|
+
* (default: extracts from response.usage or uses estimate)
|
|
273
|
+
* @param response - The response
|
|
274
|
+
* @param estimatedUsage - Estimated usage statistics
|
|
275
|
+
*/
|
|
276
|
+
extractUsage(response, estimatedUsage) {
|
|
277
|
+
// Try to extract from response
|
|
278
|
+
const usage = response.usage;
|
|
279
|
+
if (usage)
|
|
280
|
+
return usage;
|
|
281
|
+
// Otherwise use estimate
|
|
282
|
+
return estimatedUsage;
|
|
283
|
+
}
|
|
284
|
+
/**
|
|
285
|
+
* Execute request with fallback logic:
|
|
286
|
+
* 1. Try handler.get() if available
|
|
287
|
+
* 2. Try handler-specific method (e.g., handler.chat.get)
|
|
288
|
+
* 3. Try executeRequest() (provider method)
|
|
289
|
+
* 4. Try streamer-to-executor conversion if provider has streamer
|
|
290
|
+
*/
|
|
291
|
+
async executeRequestWithFallback(request, selected, ctx, handler) {
|
|
292
|
+
// Try handler first
|
|
293
|
+
const handlerMethod = this.getHandlerGetMethod(handler);
|
|
294
|
+
if (handlerMethod) {
|
|
295
|
+
return await handlerMethod(request, ctx);
|
|
296
|
+
}
|
|
297
|
+
// Try provider executor
|
|
298
|
+
if (this.hasProviderExecutor(selected)) {
|
|
299
|
+
return await this.executeRequest(request, selected, ctx);
|
|
300
|
+
}
|
|
301
|
+
// Fallback: try converting streamer to executor
|
|
302
|
+
const streamerMethod = this.getHandlerStreamMethod(handler);
|
|
303
|
+
if (streamerMethod) {
|
|
304
|
+
const chunks = [];
|
|
305
|
+
for await (const chunk of streamerMethod(request, ctx)) {
|
|
306
|
+
chunks.push(chunk);
|
|
307
|
+
}
|
|
308
|
+
return this.chunksToResponse(chunks, selected.model.id);
|
|
309
|
+
}
|
|
310
|
+
// Try provider streamer as fallback
|
|
311
|
+
if (this.hasProviderStreamer(selected)) {
|
|
312
|
+
const chunks = [];
|
|
313
|
+
for await (const chunk of this.executeStreamRequest(request, selected, ctx)) {
|
|
314
|
+
chunks.push(chunk);
|
|
315
|
+
}
|
|
316
|
+
return this.chunksToResponse(chunks, selected.model.id);
|
|
317
|
+
}
|
|
318
|
+
throw new Error(`Provider "${selected.model.provider}" does not support non-streaming requests for this operation and no fallback is available`);
|
|
319
|
+
}
|
|
320
|
+
/**
|
|
321
|
+
* Stream request with fallback logic:
|
|
322
|
+
* 1. Try handler.stream() if available
|
|
323
|
+
* 2. Try handler-specific method (e.g., handler.chat.stream)
|
|
324
|
+
* 3. Try executeStreamRequest() (provider streaming method)
|
|
325
|
+
* 4. Try executor-to-streamer conversion if provider has executor
|
|
326
|
+
*/
|
|
327
|
+
async *streamRequestWithFallback(request, selected, ctx, handler) {
|
|
328
|
+
// Try handler first
|
|
329
|
+
const handlerMethod = this.getHandlerStreamMethod(handler);
|
|
330
|
+
if (handlerMethod) {
|
|
331
|
+
yield* handlerMethod(request, ctx);
|
|
332
|
+
return;
|
|
333
|
+
}
|
|
334
|
+
// Try provider streamer
|
|
335
|
+
if (this.hasProviderStreamer(selected)) {
|
|
336
|
+
yield* this.executeStreamRequest(request, selected, ctx);
|
|
337
|
+
return;
|
|
338
|
+
}
|
|
339
|
+
// Fallback: try converting executor to streamer
|
|
340
|
+
const getMethod = this.getHandlerGetMethod(handler);
|
|
341
|
+
if (getMethod) {
|
|
342
|
+
const response = await getMethod(request, ctx);
|
|
343
|
+
for (const chunk of this.responseToChunks(response)) {
|
|
344
|
+
yield chunk;
|
|
345
|
+
}
|
|
346
|
+
return;
|
|
347
|
+
}
|
|
348
|
+
// Try provider executor as fallback
|
|
349
|
+
if (this.hasProviderExecutor(selected)) {
|
|
350
|
+
const response = await this.executeRequest(request, selected, ctx);
|
|
351
|
+
for (const chunk of this.responseToChunks(response)) {
|
|
352
|
+
yield chunk;
|
|
353
|
+
}
|
|
354
|
+
return;
|
|
355
|
+
}
|
|
356
|
+
throw new Error(`Provider "${selected.model.provider}" does not support streaming requests for this operation and no fallback is available`);
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
//# sourceMappingURL=base.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/apis/base.ts"],"names":[],"mappings":"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"}
|