@aeye/ai 0.3.9 → 0.7.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.
Files changed (52) hide show
  1. package/README.md +898 -798
  2. package/aeye-ai.md +237 -219
  3. package/dist/ai.d.ts +7 -1
  4. package/dist/ai.d.ts.map +1 -1
  5. package/dist/ai.js +50 -77
  6. package/dist/ai.js.map +1 -1
  7. package/dist/apis/batch.d.ts +74 -0
  8. package/dist/apis/batch.d.ts.map +1 -0
  9. package/dist/apis/batch.js +127 -0
  10. package/dist/apis/batch.js.map +1 -0
  11. package/dist/apis/chat.d.ts.map +1 -1
  12. package/dist/apis/chat.js +55 -35
  13. package/dist/apis/chat.js.map +1 -1
  14. package/dist/apis/decide.d.ts +33 -0
  15. package/dist/apis/decide.d.ts.map +1 -0
  16. package/dist/apis/decide.js +52 -0
  17. package/dist/apis/decide.js.map +1 -0
  18. package/dist/apis/embed.d.ts +4 -11
  19. package/dist/apis/embed.d.ts.map +1 -1
  20. package/dist/apis/embed.js +5 -32
  21. package/dist/apis/embed.js.map +1 -1
  22. package/dist/apis/get.d.ts +18 -0
  23. package/dist/apis/get.d.ts.map +1 -0
  24. package/dist/apis/get.js +30 -0
  25. package/dist/apis/get.js.map +1 -0
  26. package/dist/apis/image.d.ts +2 -2
  27. package/dist/apis/image.d.ts.map +1 -1
  28. package/dist/apis/image.js +45 -40
  29. package/dist/apis/image.js.map +1 -1
  30. package/dist/apis/rerank.d.ts +24 -0
  31. package/dist/apis/rerank.d.ts.map +1 -0
  32. package/dist/apis/rerank.js +40 -0
  33. package/dist/apis/rerank.js.map +1 -0
  34. package/dist/apis/schema-fallback.d.ts +9 -14
  35. package/dist/apis/schema-fallback.d.ts.map +1 -1
  36. package/dist/apis/schema-fallback.js +15 -64
  37. package/dist/apis/schema-fallback.js.map +1 -1
  38. package/dist/common.d.ts +20 -2
  39. package/dist/common.d.ts.map +1 -1
  40. package/dist/common.js +36 -0
  41. package/dist/common.js.map +1 -1
  42. package/dist/index.d.ts +4 -0
  43. package/dist/index.d.ts.map +1 -1
  44. package/dist/index.js +4 -0
  45. package/dist/index.js.map +1 -1
  46. package/dist/registry.d.ts +30 -1
  47. package/dist/registry.d.ts.map +1 -1
  48. package/dist/registry.js +61 -1
  49. package/dist/registry.js.map +1 -1
  50. package/dist/types.d.ts +198 -55
  51. package/dist/types.d.ts.map +1 -1
  52. package/package.json +2 -2
package/dist/apis/chat.js CHANGED
@@ -34,9 +34,41 @@
34
34
  * );
35
35
  * ```
36
36
  */
37
- import { getChunksFromResponse, getResponseFromChunks } from '@aeye/core';
37
+ import { getChunksFromResponse, getResponseFromChunks, structuredOutput } from '@aeye/core';
38
+ import { INPUT_CAPABILITIES, OUTPUT_CAPABILITIES } from '../common';
38
39
  import { BaseAPI } from './base';
39
40
  import { applySchemaDeliveryFallback } from './schema-fallback';
41
+ /**
42
+ * Content whose capability is only preferred: most registries don't record
43
+ * document support.
44
+ */
45
+ const PREFERRED_CONTENT = ['file'];
46
+ /**
47
+ * Adds the capability mapped to each key present in the request.
48
+ */
49
+ function addMapped(target, map, keys) {
50
+ for (const key of keys) {
51
+ const capability = map[key];
52
+ if (capability) {
53
+ target.add(capability);
54
+ }
55
+ }
56
+ }
57
+ /**
58
+ * Every content part type used across the request messages.
59
+ */
60
+ function contentTypes(request) {
61
+ return request.messages.flatMap(message => Array.isArray(message.content) ? message.content.map(part => part.type) : []);
62
+ }
63
+ /**
64
+ * How the request's output reaches the model: as structured output, JSON
65
+ * mode, or neither (text, or a schema delivered as prompt text).
66
+ */
67
+ function outputMode(format) {
68
+ return structuredOutput(format) ? 'structured'
69
+ : format === 'json' || (typeof format === 'object' && format.schemaDelivery === 'json') ? 'json'
70
+ : undefined;
71
+ }
40
72
  /**
41
73
  * Returns true when a `strict` field expresses a numeric (best-effort)
42
74
  * preference rather than a hard `true` / `false`. Default-omitted (undefined)
@@ -65,38 +97,17 @@ export class ChatAPI extends BaseAPI {
65
97
  // ============================================================================
66
98
  getRequiredCapabilities(provided, request, forStreaming) {
67
99
  const capabilities = new Set(['chat', ...provided]);
68
- // Check if request contains images - requires vision capability
69
100
  if (request) {
70
- const hasImages = request.messages.some(message => {
71
- if (Array.isArray(message.content)) {
72
- return message.content.some(part => part.type === 'image');
73
- }
74
- return false;
75
- });
76
- if (hasImages) {
77
- capabilities.add('vision');
78
- }
79
- const hasAudio = request.messages.some(message => {
80
- if (Array.isArray(message.content)) {
81
- return message.content.some(part => part.type === 'audio');
82
- }
83
- return false;
84
- });
85
- if (hasAudio) {
86
- capabilities.add('hearing');
87
- }
101
+ addMapped(capabilities, INPUT_CAPABILITIES, contentTypes(request).filter(type => !PREFERRED_CONTENT.includes(type)));
102
+ addMapped(capabilities, OUTPUT_CAPABILITIES, request.modalities ?? []);
88
103
  // Check if request uses reasoning
89
104
  if (request.reason !== undefined) {
90
105
  capabilities.add('reasoning');
91
106
  }
92
107
  // Check if request expects JSON output
93
- if (request.responseFormat) {
94
- if (request.responseFormat === 'json') {
95
- capabilities.add('json');
96
- }
97
- else if (typeof request.responseFormat === 'object') {
98
- capabilities.add('structured');
99
- }
108
+ const output = outputMode(request.responseFormat);
109
+ if (output) {
110
+ capabilities.add(output);
100
111
  }
101
112
  // Check if request uses tools
102
113
  if (request.tools && request.tools.length > 0) {
@@ -140,11 +151,12 @@ export class ChatAPI extends BaseAPI {
140
151
  if (request.logitBias !== undefined) {
141
152
  params.add('logitBias');
142
153
  }
143
- if (request.responseFormat !== undefined) {
154
+ const output = outputMode(request.responseFormat);
155
+ if (request.responseFormat === 'text' || output) {
144
156
  params.add('responseFormat');
145
- if (typeof request.responseFormat === 'object') {
146
- params.add('structuredOutput');
147
- }
157
+ }
158
+ if (output === 'structured') {
159
+ params.add('structuredOutput');
148
160
  }
149
161
  if (request.reason !== undefined) {
150
162
  params.add('reason');
@@ -168,6 +180,7 @@ export class ChatAPI extends BaseAPI {
168
180
  */
169
181
  getOptionalCapabilities(provided, request, forStreaming) {
170
182
  const optional = new Set(provided);
183
+ addMapped(optional, INPUT_CAPABILITIES, contentTypes(request).filter(type => PREFERRED_CONTENT.includes(type)));
171
184
  if ((request.tools?.length ?? 0) > 0) {
172
185
  const wantsStrictPreference = request.tools.some(t => isNumericStrictPreference(t.strict));
173
186
  if (wantsStrictPreference) {
@@ -185,6 +198,15 @@ export class ChatAPI extends BaseAPI {
185
198
  if (request.tools?.some(t => isNumericStrictPreference(t.strict))) {
186
199
  params.add('toolsStrict');
187
200
  }
201
+ if (request.seed !== undefined) {
202
+ params.add('seed');
203
+ }
204
+ if (request.verbosity !== undefined) {
205
+ params.add('verbosity');
206
+ }
207
+ if (request.serviceTier !== undefined) {
208
+ params.add('serviceTier');
209
+ }
188
210
  return Array.from(params);
189
211
  }
190
212
  getNoModelFoundError() {
@@ -206,18 +228,16 @@ export class ChatAPI extends BaseAPI {
206
228
  // Provider-agnostic schema-delivery fallback: if the selected model's
207
229
  // dialect can't express the structured schema (or delivery is forced to
208
230
  // prompt), drop `response_format` and deliver the schema as prompt text.
209
- applySchemaDeliveryFallback(request, selected.model);
210
231
  const executor = selected.provider.createExecutor(selected.providerConfig);
211
- return await executor(request, ctx, ctx.metadata);
232
+ return await executor(applySchemaDeliveryFallback(request, selected.model), ctx, ctx.metadata);
212
233
  }
213
234
  async *executeStreamRequest(request, selected, ctx) {
214
235
  if (!selected.provider.createStreamer) {
215
236
  throw new Error(`Provider ${selected.provider.name} does not support chat streaming`);
216
237
  }
217
238
  // Provider-agnostic schema-delivery fallback (see executeRequest).
218
- applySchemaDeliveryFallback(request, selected.model);
219
239
  const streamer = selected.provider.createStreamer(selected.providerConfig);
220
- return yield* streamer(request, ctx, ctx.metadata);
240
+ return yield* streamer(applySchemaDeliveryFallback(request, selected.model), ctx, ctx.metadata);
221
241
  }
222
242
  responseToChunks(response, model) {
223
243
  return getChunksFromResponse(response);
@@ -1 +1 @@
1
- {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/apis/chat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/apis/chat.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Decide API
3
+ *
4
+ * Typed answers about an input from a decision model: the probability a
5
+ * condition holds, one choice from a set, or a score on ordered levels.
6
+ * Far faster and cheaper than asking a chat model for structured output.
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * const { answers } = await ai.decide.get({
11
+ * input: 'I was charged twice for my order.',
12
+ * questions: {
13
+ * billing: { type: 'predicate', instructions: 'Is this a billing problem?' },
14
+ * team: { type: 'choice', instructions: 'Which team handles it?', choices: { payments: 'Charges and refunds', web: 'Website bugs' } },
15
+ * urgency: { type: 'score', instructions: 'How urgent is it?', levels: ['Can wait', 'This week', 'Now'] },
16
+ * },
17
+ * });
18
+ * ```
19
+ */
20
+ import type { Usage } from '@aeye/core';
21
+ import type { AIBaseTypes, AIContext, DecisionRequest, DecisionResponse, ModelCapability, ModelHandlerFor, SelectedModelFor } from '../types';
22
+ import { GetAPI } from './get';
23
+ export declare class DecideAPI<T extends AIBaseTypes> extends GetAPI<T, DecisionRequest, DecisionResponse> {
24
+ protected getRequiredCapabilities(provided: ModelCapability[]): ModelCapability[];
25
+ protected getNoModelFoundError(): string;
26
+ protected getErrorType(): string;
27
+ protected getErrorMessage(): string;
28
+ protected executeRequest(request: DecisionRequest, selected: SelectedModelFor<T>, ctx: AIContext<T>): Promise<DecisionResponse>;
29
+ protected estimateRequestUsage(request: DecisionRequest): Usage;
30
+ protected getHandlerGetMethod(handler?: ModelHandlerFor<T>): ((request: DecisionRequest, ctx: AIContext<T>) => Promise<DecisionResponse>) | undefined;
31
+ protected hasProviderExecutor(selected: SelectedModelFor<T>): boolean;
32
+ }
33
+ //# sourceMappingURL=decide.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decide.d.ts","sourceRoot":"","sources":["../../src/apis/decide.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAW,KAAK,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,KAAK,EACV,WAAW,EACX,SAAS,EACT,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,gBAAgB,EACjB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAE/B,qBAAa,SAAS,CAAC,CAAC,SAAS,WAAW,CAAE,SAAQ,MAAM,CAAC,CAAC,EAAE,eAAe,EAAE,gBAAgB,CAAC;IAChG,SAAS,CAAC,uBAAuB,CAAC,QAAQ,EAAE,eAAe,EAAE,GAAG,eAAe,EAAE;IAIjF,SAAS,CAAC,oBAAoB,IAAI,MAAM;IAIxC,SAAS,CAAC,YAAY,IAAI,MAAM;IAIhC,SAAS,CAAC,eAAe,IAAI,MAAM;IAInC,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAO/H,SAAS,CAAC,oBAAoB,CAAC,OAAO,EAAE,eAAe,GAAG,KAAK;IAM/D,SAAS,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC,GAAG,SAAS;IAIrJ,SAAS,CAAC,mBAAmB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,OAAO;CAGtE"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Decide API
3
+ *
4
+ * Typed answers about an input from a decision model: the probability a
5
+ * condition holds, one choice from a set, or a score on ordered levels.
6
+ * Far faster and cheaper than asking a chat model for structured output.
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * const { answers } = await ai.decide.get({
11
+ * input: 'I was charged twice for my order.',
12
+ * questions: {
13
+ * billing: { type: 'predicate', instructions: 'Is this a billing problem?' },
14
+ * team: { type: 'choice', instructions: 'Which team handles it?', choices: { payments: 'Charges and refunds', web: 'Website bugs' } },
15
+ * urgency: { type: 'score', instructions: 'How urgent is it?', levels: ['Can wait', 'This week', 'Now'] },
16
+ * },
17
+ * });
18
+ * ```
19
+ */
20
+ import { GetAPI } from './get';
21
+ export class DecideAPI extends GetAPI {
22
+ getRequiredCapabilities(provided) {
23
+ return ['decision', ...provided];
24
+ }
25
+ getNoModelFoundError() {
26
+ return 'No compatible model found for decisions';
27
+ }
28
+ getErrorType() {
29
+ return 'decision-failed';
30
+ }
31
+ getErrorMessage() {
32
+ return 'Decision failed';
33
+ }
34
+ executeRequest(request, selected, ctx) {
35
+ if (!selected.provider.decide) {
36
+ throw new Error(`Provider ${selected.provider.name} does not support decisions`);
37
+ }
38
+ return selected.provider.decide(request, ctx, selected.providerConfig);
39
+ }
40
+ estimateRequestUsage(request) {
41
+ const questions = { role: 'user', content: JSON.stringify(request.questions) };
42
+ const input = typeof request.input === 'string' ? [{ role: 'user', content: request.input }] : request.input;
43
+ return this.ai.estimateRequestUsage({ messages: [...input, questions] });
44
+ }
45
+ getHandlerGetMethod(handler) {
46
+ return handler?.decide?.get;
47
+ }
48
+ hasProviderExecutor(selected) {
49
+ return !!selected.provider.decide;
50
+ }
51
+ }
52
+ //# sourceMappingURL=decide.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decide.js","sourceRoot":"","sources":["../../src/apis/decide.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAYH,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAE/B,MAAM,OAAO,SAAiC,SAAQ,MAA4C;IACtF,uBAAuB,CAAC,QAA2B;QAC3D,OAAO,CAAC,UAAU,EAAE,GAAG,QAAQ,CAAC,CAAC;IACnC,CAAC;IAES,oBAAoB;QAC5B,OAAO,yCAAyC,CAAC;IACnD,CAAC;IAES,YAAY;QACpB,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAES,eAAe;QACvB,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAES,cAAc,CAAC,OAAwB,EAAE,QAA6B,EAAE,GAAiB;QACjG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,YAAY,QAAQ,CAAC,QAAQ,CAAC,IAAI,6BAA6B,CAAC,CAAC;QACnF,CAAC;QACD,OAAO,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAC;IACzE,CAAC;IAES,oBAAoB,CAAC,OAAwB;QACrD,MAAM,SAAS,GAAY,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACxF,MAAM,KAAK,GAAc,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;QACxH,OAAO,IAAI,CAAC,EAAE,CAAC,oBAAoB,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;IAC3E,CAAC;IAES,mBAAmB,CAAC,OAA4B;QACxD,OAAO,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC;IAC9B,CAAC;IAES,mBAAmB,CAAC,QAA6B;QACzD,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;IACpC,CAAC;CACF"}
@@ -4,24 +4,17 @@
4
4
  * Provides text embedding functionality.
5
5
  */
6
6
  import type { Usage } from '@aeye/core';
7
- import type { AI } from '../ai';
8
7
  import type { AIBaseTypes, AIContext, EmbeddingRequest, EmbeddingResponse, ModelCapability, ModelParameter, ModelHandlerFor, SelectedModelFor } from '../types';
9
- import { BaseAPI } from './base';
10
- export declare class EmbedAPI<T extends AIBaseTypes> extends BaseAPI<T, EmbeddingRequest, EmbeddingResponse, never> {
11
- constructor(ai: AI<T>);
12
- protected getRequiredCapabilities(provided: ModelCapability[], request: EmbeddingRequest, forStreaming: boolean): ModelCapability[];
13
- protected getRequiredParameters(provided: ModelParameter[], request: EmbeddingRequest, forStreaming: boolean): ModelParameter[];
8
+ import { GetAPI } from './get';
9
+ export declare class EmbedAPI<T extends AIBaseTypes> extends GetAPI<T, EmbeddingRequest, EmbeddingResponse> {
10
+ protected getRequiredCapabilities(provided: ModelCapability[]): ModelCapability[];
11
+ protected getRequiredParameters(provided: ModelParameter[], request: EmbeddingRequest): ModelParameter[];
14
12
  protected getNoModelFoundError(): string;
15
13
  protected getErrorType(): string;
16
14
  protected getErrorMessage(): string;
17
15
  protected executeRequest(request: EmbeddingRequest, selected: SelectedModelFor<T>, ctx: AIContext<T>): Promise<EmbeddingResponse>;
18
- protected executeStreamRequest(request: EmbeddingRequest, selected: SelectedModelFor<T>, ctx: AIContext<T>): AsyncIterable<never>;
19
16
  protected estimateRequestUsage(request: EmbeddingRequest): Usage;
20
- protected responseToChunks(response: EmbeddingResponse): never;
21
- protected chunksToResponse(chunks: never[]): EmbeddingResponse;
22
17
  protected getHandlerGetMethod(handler?: ModelHandlerFor<T>): ((request: EmbeddingRequest, ctx: AIContext<T>) => Promise<EmbeddingResponse>) | undefined;
23
- protected getHandlerStreamMethod(handler?: ModelHandlerFor<T>): ((request: EmbeddingRequest, ctx: AIContext<T>) => AsyncIterable<never>) | undefined;
24
18
  protected hasProviderExecutor(selected: SelectedModelFor<T>): boolean;
25
- protected hasProviderStreamer(selected: SelectedModelFor<T>): boolean;
26
19
  }
27
20
  //# sourceMappingURL=embed.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"embed.d.ts","sourceRoot":"","sources":["../../src/apis/embed.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,KAAK,EACV,WAAW,EACX,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,eAAe,EACf,gBAAgB,EACjB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEjC,qBAAa,QAAQ,CAAC,CAAC,SAAS,WAAW,CAAE,SAAQ,OAAO,CAC1D,CAAC,EACD,gBAAgB,EAChB,iBAAiB,EACjB,KAAK,CACN;gBACa,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAQrB,SAAS,CAAC,uBAAuB,CAAC,QAAQ,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,OAAO,GAAG,eAAe,EAAE;IAInI,SAAS,CAAC,qBAAqB,CAAC,QAAQ,EAAE,cAAc,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,OAAO,GAAG,cAAc,EAAE;IAQ/H,SAAS,CAAC,oBAAoB,IAAI,MAAM;IAIxC,SAAS,CAAC,YAAY,IAAI,MAAM;IAIhC,SAAS,CAAC,eAAe,IAAI,MAAM;cAInB,cAAc,CAC5B,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAC7B,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,GAChB,OAAO,CAAC,iBAAiB,CAAC;cAQZ,oBAAoB,CACnC,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAC7B,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,GAChB,aAAa,CAAC,KAAK,CAAC;IAQvB,SAAS,CAAC,oBAAoB,CAAC,OAAO,EAAE,gBAAgB,GAAG,KAAK;IAWhE,SAAS,CAAC,gBAAgB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,KAAK;IAI9D,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,iBAAiB;IAI9D,SAAS,CAAC,mBAAmB,CAC3B,OAAO,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,GAC3B,CAAC,CAAC,OAAO,EAAE,gBAAgB,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC,GAAG,SAAS;IAI7F,SAAS,CAAC,sBAAsB,CAC9B,OAAO,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,GAC3B,CAAC,CAAC,OAAO,EAAE,gBAAgB,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,aAAa,CAAC,KAAK,CAAC,CAAC,GAAG,SAAS;IAIvF,SAAS,CAAC,mBAAmB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,OAAO;IAIrE,SAAS,CAAC,mBAAmB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,OAAO;CAGtE"}
1
+ {"version":3,"file":"embed.d.ts","sourceRoot":"","sources":["../../src/apis/embed.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EACV,WAAW,EACX,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,eAAe,EACf,gBAAgB,EACjB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAE/B,qBAAa,QAAQ,CAAC,CAAC,SAAS,WAAW,CAAE,SAAQ,MAAM,CAAC,CAAC,EAAE,gBAAgB,EAAE,iBAAiB,CAAC;IACjG,SAAS,CAAC,uBAAuB,CAAC,QAAQ,EAAE,eAAe,EAAE,GAAG,eAAe,EAAE;IAIjF,SAAS,CAAC,qBAAqB,CAAC,QAAQ,EAAE,cAAc,EAAE,EAAE,OAAO,EAAE,gBAAgB,GAAG,cAAc,EAAE;IAIxG,SAAS,CAAC,oBAAoB,IAAI,MAAM;IAIxC,SAAS,CAAC,YAAY,IAAI,MAAM;IAIhC,SAAS,CAAC,eAAe,IAAI,MAAM;cAInB,cAAc,CAC5B,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAC7B,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,GAChB,OAAO,CAAC,iBAAiB,CAAC;IAQ7B,SAAS,CAAC,oBAAoB,CAAC,OAAO,EAAE,gBAAgB,GAAG,KAAK;IAWhE,SAAS,CAAC,mBAAmB,CAC3B,OAAO,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,GAC3B,CAAC,CAAC,OAAO,EAAE,gBAAgB,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC,GAAG,SAAS;IAI7F,SAAS,CAAC,mBAAmB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,OAAO;CAGtE"}
@@ -3,22 +3,13 @@
3
3
  *
4
4
  * Provides text embedding functionality.
5
5
  */
6
- import { BaseAPI } from './base';
7
- export class EmbedAPI extends BaseAPI {
8
- constructor(ai) {
9
- super(ai);
10
- }
11
- // ============================================================================
12
- // REQUIRED ABSTRACT METHOD IMPLEMENTATIONS
13
- // ============================================================================
14
- getRequiredCapabilities(provided, request, forStreaming) {
6
+ import { GetAPI } from './get';
7
+ export class EmbedAPI extends GetAPI {
8
+ getRequiredCapabilities(provided) {
15
9
  return ['embedding', ...provided];
16
10
  }
17
- getRequiredParameters(provided, request, forStreaming) {
18
- const params = new Set([...provided]);
19
- if (request.dimensions !== undefined)
20
- params.add('embeddingDimensions');
21
- return Array.from(params);
11
+ getRequiredParameters(provided, request) {
12
+ return request.dimensions !== undefined ? [...new Set([...provided, 'embeddingDimensions'])] : provided;
22
13
  }
23
14
  getNoModelFoundError() {
24
15
  return 'No compatible model found for embeddings';
@@ -32,12 +23,6 @@ export class EmbedAPI extends BaseAPI {
32
23
  async executeRequest(request, selected, ctx) {
33
24
  return await selected.provider.embed(request, ctx, selected.providerConfig);
34
25
  }
35
- async *executeStreamRequest(request, selected, ctx) {
36
- throw new Error('Streaming not supported for embeddings');
37
- }
38
- // ============================================================================
39
- // OPTIONAL OVERRIDES
40
- // ============================================================================
41
26
  estimateRequestUsage(request) {
42
27
  const totalTextLength = request.texts.reduce((sum, text) => sum + text.length, 0);
43
28
  const tokens = Math.ceil(totalTextLength / 4);
@@ -48,23 +33,11 @@ export class EmbedAPI extends BaseAPI {
48
33
  }
49
34
  };
50
35
  }
51
- responseToChunks(response) {
52
- throw new Error('Embeddings do not support chunking');
53
- }
54
- chunksToResponse(chunks) {
55
- throw new Error('Embeddings do not support chunking');
56
- }
57
36
  getHandlerGetMethod(handler) {
58
37
  return handler?.embed?.get;
59
38
  }
60
- getHandlerStreamMethod(handler) {
61
- return undefined;
62
- }
63
39
  hasProviderExecutor(selected) {
64
40
  return !!selected.provider.embed;
65
41
  }
66
- hasProviderStreamer(selected) {
67
- return false; // Embed API doesn't support streaming
68
- }
69
42
  }
70
43
  //# sourceMappingURL=embed.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"embed.js","sourceRoot":"","sources":["../../src/apis/embed.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAcH,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEjC,MAAM,OAAO,QAAgC,SAAQ,OAKpD;IACC,YAAY,EAAS;QACnB,KAAK,CAAC,EAAE,CAAC,CAAC;IACZ,CAAC;IAED,+EAA+E;IAC/E,2CAA2C;IAC3C,+EAA+E;IAErE,uBAAuB,CAAC,QAA2B,EAAE,OAAyB,EAAE,YAAqB;QAC7G,OAAO,CAAC,WAAW,EAAE,GAAG,QAAQ,CAAC,CAAC;IACpC,CAAC;IAES,qBAAqB,CAAC,QAA0B,EAAE,OAAyB,EAAE,YAAqB;QAC1G,MAAM,MAAM,GAAG,IAAI,GAAG,CAAiB,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;QAEtD,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS;YAAE,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QAExE,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAES,oBAAoB;QAC5B,OAAO,0CAA0C,CAAC;IACpD,CAAC;IAES,YAAY;QACpB,OAAO,6BAA6B,CAAC;IACvC,CAAC;IAES,eAAe;QACvB,OAAO,6BAA6B,CAAC;IACvC,CAAC;IAES,KAAK,CAAC,cAAc,CAC5B,OAAyB,EACzB,QAA6B,EAC7B,GAAiB;QAEjB,OAAO,MAAM,QAAQ,CAAC,QAAQ,CAAC,KAAM,CACnC,OAAO,EACP,GAAG,EACH,QAAQ,CAAC,cAAc,CACxB,CAAC;IACJ,CAAC;IAES,KAAK,CAAC,CAAC,oBAAoB,CACnC,OAAyB,EACzB,QAA6B,EAC7B,GAAiB;QAEjB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5D,CAAC;IAED,+EAA+E;IAC/E,qBAAqB;IACrB,+EAA+E;IAErE,oBAAoB,CAAC,OAAyB;QACtD,MAAM,eAAe,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAClF,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC;QAC9C,OAAO;YACL,UAAU,EAAE;gBACV,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM;gBAC3B,MAAM;aACP;SACF,CAAC;IACJ,CAAC;IAES,gBAAgB,CAAC,QAA2B;QACpD,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;IAES,gBAAgB,CAAC,MAAe;QACxC,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;IAES,mBAAmB,CAC3B,OAA4B;QAE5B,OAAO,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC;IAC7B,CAAC;IAES,sBAAsB,CAC9B,OAA4B;QAE5B,OAAO,SAAS,CAAC;IACnB,CAAC;IAES,mBAAmB,CAAC,QAA6B;QACzD,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;IACnC,CAAC;IAES,mBAAmB,CAAC,QAA6B;QACzD,OAAO,KAAK,CAAC,CAAC,sCAAsC;IACtD,CAAC;CACF"}
1
+ {"version":3,"file":"embed.js","sourceRoot":"","sources":["../../src/apis/embed.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAaH,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAE/B,MAAM,OAAO,QAAgC,SAAQ,MAA8C;IACvF,uBAAuB,CAAC,QAA2B;QAC3D,OAAO,CAAC,WAAW,EAAE,GAAG,QAAQ,CAAC,CAAC;IACpC,CAAC;IAES,qBAAqB,CAAC,QAA0B,EAAE,OAAyB;QACnF,OAAO,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAiB,CAAC,GAAG,QAAQ,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC1H,CAAC;IAES,oBAAoB;QAC5B,OAAO,0CAA0C,CAAC;IACpD,CAAC;IAES,YAAY;QACpB,OAAO,6BAA6B,CAAC;IACvC,CAAC;IAES,eAAe;QACvB,OAAO,6BAA6B,CAAC;IACvC,CAAC;IAES,KAAK,CAAC,cAAc,CAC5B,OAAyB,EACzB,QAA6B,EAC7B,GAAiB;QAEjB,OAAO,MAAM,QAAQ,CAAC,QAAQ,CAAC,KAAM,CACnC,OAAO,EACP,GAAG,EACH,QAAQ,CAAC,cAAc,CACxB,CAAC;IACJ,CAAC;IAES,oBAAoB,CAAC,OAAyB;QACtD,MAAM,eAAe,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAClF,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC;QAC9C,OAAO;YACL,UAAU,EAAE;gBACV,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM;gBAC3B,MAAM;aACP;SACF,CAAC;IACJ,CAAC;IAES,mBAAmB,CAC3B,OAA4B;QAE5B,OAAO,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC;IAC7B,CAAC;IAES,mBAAmB,CAAC,QAA6B;QACzD,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;IACnC,CAAC;CACF"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Get API
3
+ *
4
+ * Base for APIs that answer with one response and never stream.
5
+ */
6
+ import type { BaseRequest, BaseResponse } from '@aeye/core';
7
+ import type { AIBaseTypes, ModelParameter } from '../types';
8
+ import { BaseAPI } from './base';
9
+ export declare abstract class GetAPI<T extends AIBaseTypes, TRequest extends BaseRequest, TResponse extends BaseResponse> extends BaseAPI<T, TRequest, TResponse, never> {
10
+ protected getRequiredParameters(provided: ModelParameter[], request: TRequest): ModelParameter[];
11
+ protected executeStreamRequest(): AsyncIterable<never>;
12
+ protected responseToChunks(): never;
13
+ protected chunksToResponse(): never;
14
+ protected getHandlerStreamMethod(): undefined;
15
+ protected hasProviderStreamer(): boolean;
16
+ private noStreaming;
17
+ }
18
+ //# sourceMappingURL=get.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../src/apis/get.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEjC,8BAAsB,MAAM,CAC1B,CAAC,SAAS,WAAW,EACrB,QAAQ,SAAS,WAAW,EAC5B,SAAS,SAAS,YAAY,CAC9B,SAAQ,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC;IAC9C,SAAS,CAAC,qBAAqB,CAAC,QAAQ,EAAE,cAAc,EAAE,EAAE,OAAO,EAAE,QAAQ,GAAG,cAAc,EAAE;cAI/E,oBAAoB,IAAI,aAAa,CAAC,KAAK,CAAC;IAI7D,SAAS,CAAC,gBAAgB,IAAI,KAAK;IAInC,SAAS,CAAC,gBAAgB,IAAI,KAAK;IAInC,SAAS,CAAC,sBAAsB,IAAI,SAAS;IAI7C,SAAS,CAAC,mBAAmB,IAAI,OAAO;IAIxC,OAAO,CAAC,WAAW;CAGpB"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Get API
3
+ *
4
+ * Base for APIs that answer with one response and never stream.
5
+ */
6
+ import { BaseAPI } from './base';
7
+ export class GetAPI extends BaseAPI {
8
+ getRequiredParameters(provided, request) {
9
+ return provided;
10
+ }
11
+ async *executeStreamRequest() {
12
+ this.noStreaming();
13
+ }
14
+ responseToChunks() {
15
+ return this.noStreaming();
16
+ }
17
+ chunksToResponse() {
18
+ return this.noStreaming();
19
+ }
20
+ getHandlerStreamMethod() {
21
+ return undefined;
22
+ }
23
+ hasProviderStreamer() {
24
+ return false;
25
+ }
26
+ noStreaming() {
27
+ throw new Error(`${this.getErrorMessage('request')}: streaming is not supported`);
28
+ }
29
+ }
30
+ //# sourceMappingURL=get.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get.js","sourceRoot":"","sources":["../../src/apis/get.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEjC,MAAM,OAAgB,MAIpB,SAAQ,OAAsC;IACpC,qBAAqB,CAAC,QAA0B,EAAE,OAAiB;QAC3E,OAAO,QAAQ,CAAC;IAClB,CAAC;IAES,KAAK,CAAC,CAAC,oBAAoB;QACnC,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAES,gBAAgB;QACxB,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;IAC5B,CAAC;IAES,gBAAgB;QACxB,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;IAC5B,CAAC;IAES,sBAAsB;QAC9B,OAAO,SAAS,CAAC;IACnB,CAAC;IAES,mBAAmB;QAC3B,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,WAAW;QACjB,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,8BAA8B,CAAC,CAAC;IACpF,CAAC;CACF"}
@@ -14,7 +14,7 @@ declare class ImageGenerateAPI<T extends AIBaseTypes> extends BaseAPI<T, ImageGe
14
14
  protected getNoModelFoundError(): string;
15
15
  protected getErrorType(operation: 'request' | 'stream'): string;
16
16
  protected getErrorMessage(operation: 'request' | 'stream'): string;
17
- protected estimateRequestUsage(request: ImageGenerationRequest): Usage;
17
+ protected estimateRequestUsage(request: ImageGenerationRequest, selected: SelectedModelFor<T>): Usage;
18
18
  protected executeRequest(request: ImageGenerationRequest, selected: SelectedModelFor<T>, ctx: AIContext<T>): Promise<ImageGenerationResponse>;
19
19
  protected executeStreamRequest(request: ImageGenerationRequest, selected: SelectedModelFor<T>, ctx: AIContext<T>): AsyncIterable<ImageGenerationChunk>;
20
20
  protected responseToChunks(response: ImageGenerationResponse): ImageGenerationChunk[];
@@ -32,7 +32,7 @@ declare class ImageEditAPI<T extends AIBaseTypes> extends BaseAPI<T, ImageEditRe
32
32
  protected getNoModelFoundError(): string;
33
33
  protected getErrorType(operation: 'request' | 'stream'): string;
34
34
  protected getErrorMessage(operation: 'request' | 'stream'): string;
35
- protected estimateRequestUsage(request: ImageEditRequest): Usage;
35
+ protected estimateRequestUsage(request: ImageEditRequest, selected: SelectedModelFor<T>): Usage;
36
36
  protected executeRequest(request: ImageEditRequest, selected: SelectedModelFor<T>, ctx: AIContext<T>): Promise<ImageGenerationResponse>;
37
37
  protected executeStreamRequest(request: ImageEditRequest, selected: SelectedModelFor<T>, ctx: AIContext<T>): AsyncIterable<ImageGenerationChunk>;
38
38
  protected responseToChunks(response: ImageGenerationResponse): ImageGenerationChunk[];
@@ -1 +1 @@
1
- {"version":3,"file":"image.d.ts","sourceRoot":"","sources":["../../src/apis/image.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"image.d.ts","sourceRoot":"","sources":["../../src/apis/image.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAgD,UAAU,EAAE,MAAM,YAAY,CAAC;AACtF,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,KAAK,EACV,WAAW,EACX,SAAS,EACT,KAAK,EACL,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,sBAAsB,EACtB,uBAAuB,EAGvB,eAAe,EAEf,eAAe,EACf,cAAc,EAEd,QAAQ,EACR,gBAAgB,EAChB,KAAK,EACN,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAiDjC,cAAM,gBAAgB,CAAC,CAAC,SAAS,WAAW,CAAE,SAAQ,OAAO,CAC3D,CAAC,EACD,sBAAsB,EACtB,uBAAuB,EACvB,oBAAoB,CACrB;gBACa,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAIrB,SAAS,CAAC,uBAAuB,CAAC,QAAQ,EAAE,eAAe,EAAE,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,eAAe,EAAE;IAInH,SAAS,CAAC,qBAAqB,CAAC,QAAQ,EAAE,cAAc,EAAE,EAAE,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,OAAO,GAAG,cAAc,EAAE;IAsBrI,SAAS,CAAC,oBAAoB,IAAI,MAAM;IAIxC,SAAS,CAAC,YAAY,CAAC,SAAS,EAAE,SAAS,GAAG,QAAQ,GAAG,MAAM;IAM/D,SAAS,CAAC,eAAe,CAAC,SAAS,EAAE,SAAS,GAAG,QAAQ,GAAG,MAAM;IAMlE,SAAS,CAAC,oBAAoB,CAAC,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,KAAK;cAIrF,cAAc,CAC5B,OAAO,EAAE,sBAAsB,EAC/B,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAC7B,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,GAChB,OAAO,CAAC,uBAAuB,CAAC;cAQlB,oBAAoB,CACnC,OAAO,EAAE,sBAAsB,EAC/B,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAC7B,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,GAChB,aAAa,CAAC,oBAAoB,CAAC;IAQtC,SAAS,CAAC,gBAAgB,CAAC,QAAQ,EAAE,uBAAuB,GAAG,oBAAoB,EAAE;IAUrF,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,oBAAoB,EAAE,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,uBAAuB;IAY/G,SAAS,CAAC,mBAAmB,CAC3B,OAAO,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,GAC3B,CAAC,CAAC,OAAO,EAAE,sBAAsB,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,uBAAuB,CAAC,CAAC,GAAG,SAAS;IAIzG,SAAS,CAAC,sBAAsB,CAC9B,OAAO,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,GAC3B,CAAC,CAAC,OAAO,EAAE,sBAAsB,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,aAAa,CAAC,oBAAoB,CAAC,CAAC,GAAG,SAAS;IAI5G,SAAS,CAAC,mBAAmB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,OAAO;IAIrE,SAAS,CAAC,mBAAmB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,OAAO;CAGtE;AAMD,cAAM,YAAY,CAAC,CAAC,SAAS,WAAW,CAAE,SAAQ,OAAO,CACvD,CAAC,EACD,gBAAgB,EAChB,uBAAuB,EACvB,oBAAoB,CACrB;gBACa,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAIrB,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,GAAG,UAAU,GAAG,SAAS;IAIrE,SAAS,CAAC,uBAAuB,CAAC,QAAQ,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,OAAO,GAAG,eAAe,EAAE;IAInI,SAAS,CAAC,qBAAqB,CAAC,QAAQ,EAAE,cAAc,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,OAAO,GAAG,cAAc,EAAE;IAgB/H,SAAS,CAAC,oBAAoB,IAAI,MAAM;IAIxC,SAAS,CAAC,YAAY,CAAC,SAAS,EAAE,SAAS,GAAG,QAAQ,GAAG,MAAM;IAM/D,SAAS,CAAC,eAAe,CAAC,SAAS,EAAE,SAAS,GAAG,QAAQ,GAAG,MAAM;IAMlE,SAAS,CAAC,oBAAoB,CAAC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,KAAK;cAI/E,cAAc,CAC5B,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAC7B,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,GAChB,OAAO,CAAC,uBAAuB,CAAC;cAQlB,oBAAoB,CACnC,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAC7B,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,GAChB,aAAa,CAAC,oBAAoB,CAAC;IAQtC,SAAS,CAAC,gBAAgB,CAAC,QAAQ,EAAE,uBAAuB,GAAG,oBAAoB,EAAE;IAUrF,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,oBAAoB,EAAE,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,uBAAuB;IAY/G,SAAS,CAAC,mBAAmB,CAC3B,OAAO,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,GAC3B,CAAC,CAAC,OAAO,EAAE,gBAAgB,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,uBAAuB,CAAC,CAAC,GAAG,SAAS;IAInG,SAAS,CAAC,sBAAsB,CAC9B,OAAO,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,GAC3B,CAAC,CAAC,OAAO,EAAE,gBAAgB,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,aAAa,CAAC,oBAAoB,CAAC,CAAC,GAAG,SAAS;IAItG,SAAS,CAAC,mBAAmB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,OAAO;IAIrE,SAAS,CAAC,mBAAmB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,OAAO;CAGtE;AAMD,cAAM,eAAe,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,CAAE,SAAQ,OAAO,CACxE,CAAC,EACD,mBAAmB,EACnB,QAAQ,EACR,KAAK,CACN;gBACa,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAIrB,SAAS,CAAC,uBAAuB,CAAC,QAAQ,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,OAAO,GAAG,eAAe,EAAE;IAItI,SAAS,CAAC,qBAAqB,CAAC,QAAQ,EAAE,cAAc,EAAE,EAAE,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,OAAO,GAAG,cAAc,EAAE;IAalI,SAAS,CAAC,oBAAoB,IAAI,MAAM;IAIxC,SAAS,CAAC,YAAY,CAAC,SAAS,EAAE,SAAS,GAAG,QAAQ,GAAG,MAAM;IAM/D,SAAS,CAAC,eAAe,CAAC,SAAS,EAAE,SAAS,GAAG,QAAQ,GAAG,MAAM;IAMlE,SAAS,CAAC,gCAAgC,IAAI,MAAM;IAIpD;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAmB5B,SAAS,CAAC,oBAAoB,CAAC,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,KAAK;cAKlF,cAAc,CAC5B,OAAO,EAAE,mBAAmB,EAC5B,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAC7B,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,GAChB,OAAO,CAAC,QAAQ,CAAC;cAMH,oBAAoB,CACnC,OAAO,EAAE,mBAAmB,EAC5B,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAC7B,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,GAChB,aAAa,CAAC,KAAK,CAAC;IAMvB,SAAS,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,GAAG,KAAK,EAAE;IAIvD,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,QAAQ;IAIjF,SAAS,CAAC,mBAAmB,CAC3B,OAAO,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,GAC3B,CAAC,CAAC,OAAO,EAAE,mBAAmB,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,SAAS;IAIvF,SAAS,CAAC,sBAAsB,CAC9B,OAAO,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,GAC3B,CAAC,CAAC,OAAO,EAAE,mBAAmB,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,aAAa,CAAC,KAAK,CAAC,CAAC,GAAG,SAAS;IAI1F,SAAS,CAAC,mBAAmB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,OAAO;IAIrE,SAAS,CAAC,mBAAmB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,OAAO;CAGtE;AAMD;;GAEG;AACH,qBAAa,QAAQ,CAAC,CAAC,SAAS,WAAW;IACzC,SAAgB,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAC9C,SAAgB,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;IACtC,SAAgB,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;gBAEhC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;CAKtB"}
@@ -5,6 +5,47 @@
5
5
  */
6
6
  import { getChunksFromResponse, getResponseFromChunks } from '@aeye/core';
7
7
  import { BaseAPI } from './base';
8
+ /**
9
+ * Output tokens for one 1024×1024 image by quality, from OpenAI's published
10
+ * GPT Image table; newer models vary, so estimates scale these by area.
11
+ */
12
+ const IMAGE_TOKENS = {
13
+ auto: 1056,
14
+ low: 272,
15
+ medium: 1056,
16
+ high: 4160,
17
+ xhigh: 4160,
18
+ max: 4160,
19
+ };
20
+ /**
21
+ * Estimates the usage of producing images: prompt tokens, a rough count per
22
+ * input image, and one priced output per image — as output tokens for models
23
+ * priced per token, and by quality and size otherwise. Without a requested
24
+ * quality the model's first priced quality stands in, so the estimate hits a
25
+ * real price entry.
26
+ *
27
+ * @param request - The generation or edit request.
28
+ * @param model - The model producing the images.
29
+ * @param inputImages - How many images the request sends.
30
+ */
31
+ function estimateImageUsage(request, model, inputImages) {
32
+ const [width, height] = (request.size || '1024x1024').split('x').map(Number);
33
+ const count = request.n || 1;
34
+ return {
35
+ text: { input: Math.ceil(request.prompt.length / 4) },
36
+ image: {
37
+ input: inputImages ? inputImages * 1000 : undefined,
38
+ tokens: model.pricing.image?.tokens
39
+ ? Math.round(IMAGE_TOKENS[request.quality ?? 'auto'] * (width * height) / (1024 * 1024) * count)
40
+ : undefined,
41
+ output: [{
42
+ quality: request.quality ?? model.pricing.image?.output?.[0]?.quality ?? 'medium',
43
+ size: { width, height },
44
+ count,
45
+ }],
46
+ },
47
+ };
48
+ }
8
49
  // ============================================================================
9
50
  // Image Generate API
10
51
  // ============================================================================
@@ -47,25 +88,8 @@ class ImageGenerateAPI extends BaseAPI {
47
88
  ? 'Image generation failed'
48
89
  : 'Image generation streaming failed';
49
90
  }
50
- estimateRequestUsage(request) {
51
- // Parse size from request (e.g., "1024x1024", "1536x1024")
52
- const [width, height] = (request.size || '1024x1024').split('x').map(Number);
53
- const quality = request.quality || 'standard';
54
- const count = request.n || 1;
55
- // Prompt tokens (text input)
56
- const promptTokens = Math.ceil(request.prompt.length / 4);
57
- return {
58
- text: {
59
- input: promptTokens
60
- },
61
- image: {
62
- output: [{
63
- quality,
64
- size: { width, height },
65
- count
66
- }]
67
- }
68
- };
91
+ estimateRequestUsage(request, selected) {
92
+ return estimateImageUsage(request, selected.model, 0);
69
93
  }
70
94
  async executeRequest(request, selected, ctx) {
71
95
  return await selected.provider.generateImage(request, ctx, selected.providerConfig);
@@ -144,27 +168,8 @@ class ImageEditAPI extends BaseAPI {
144
168
  ? 'Image editing failed'
145
169
  : 'Image editing streaming failed';
146
170
  }
147
- estimateRequestUsage(request) {
148
- // Parse size from request
149
- const [width, height] = (request.size || '1024x1024').split('x').map(Number);
150
- const count = request.n || 1;
151
- // Prompt tokens (text input)
152
- const promptTokens = Math.ceil(request.prompt.length / 4);
153
- // Estimate input image tokens (assuming standard quality)
154
- const imageInputTokens = 1000; // Rough estimate for input image processing
155
- return {
156
- text: {
157
- input: promptTokens
158
- },
159
- image: {
160
- input: imageInputTokens,
161
- output: [{
162
- quality: 'standard',
163
- size: { width, height },
164
- count
165
- }]
166
- }
167
- };
171
+ estimateRequestUsage(request, selected) {
172
+ return estimateImageUsage(request, selected.model, 1 + (request.references?.length ?? 0));
168
173
  }
169
174
  async executeRequest(request, selected, ctx) {
170
175
  return await selected.provider.editImage(request, ctx, selected.providerConfig);