@openrouter/ai-sdk-provider 1.3.0 → 1.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +58 -0
- package/dist/index.d.mts +128 -2
- package/dist/index.d.ts +128 -2
- package/dist/index.js +150 -33
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +150 -33
- package/dist/index.mjs.map +1 -1
- package/dist/internal/index.d.mts +186 -119
- package/dist/internal/index.d.ts +186 -119
- package/dist/internal/index.js +46 -28
- package/dist/internal/index.js.map +1 -1
- package/dist/internal/index.mjs +46 -28
- package/dist/internal/index.mjs.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -55,6 +55,64 @@ This list is not a definitive list of models supported by OpenRouter, as it cons
|
|
|
55
55
|
|
|
56
56
|
You can find the latest list of tool-supported models supported by OpenRouter [here](https://openrouter.ai/models?order=newest&supported_parameters=tools). (Note: This list may contain models that are not compatible with the AI SDK.)
|
|
57
57
|
|
|
58
|
+
## Embeddings
|
|
59
|
+
|
|
60
|
+
OpenRouter supports embedding models for semantic search, RAG pipelines, and vector-native features. The provider exposes embeddings compatible with both AI SDK v5 and v4.
|
|
61
|
+
|
|
62
|
+
### AI SDK v5 (Recommended)
|
|
63
|
+
|
|
64
|
+
```ts
|
|
65
|
+
import { embed } from 'ai';
|
|
66
|
+
import { openrouter } from '@openrouter/ai-sdk-provider';
|
|
67
|
+
|
|
68
|
+
const { embedding } = await embed({
|
|
69
|
+
model: openrouter.textEmbeddingModel('openai/text-embedding-3-small'),
|
|
70
|
+
value: 'sunny day at the beach',
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
console.log(embedding); // Array of numbers representing the embedding
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### Batch Embeddings
|
|
77
|
+
|
|
78
|
+
```ts
|
|
79
|
+
import { embedMany } from 'ai';
|
|
80
|
+
import { openrouter } from '@openrouter/ai-sdk-provider';
|
|
81
|
+
|
|
82
|
+
const { embeddings } = await embedMany({
|
|
83
|
+
model: openrouter.textEmbeddingModel('openai/text-embedding-3-small'),
|
|
84
|
+
values: [
|
|
85
|
+
'sunny day at the beach',
|
|
86
|
+
'rainy day in the city',
|
|
87
|
+
'snowy mountain peak',
|
|
88
|
+
],
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
console.log(embeddings); // Array of embedding arrays
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### AI SDK v4 (Deprecated)
|
|
95
|
+
|
|
96
|
+
For backwards compatibility, the `embedding` method is also available:
|
|
97
|
+
|
|
98
|
+
```ts
|
|
99
|
+
import { embed } from 'ai';
|
|
100
|
+
import { openrouter } from '@openrouter/ai-sdk-provider';
|
|
101
|
+
|
|
102
|
+
const { embedding } = await embed({
|
|
103
|
+
model: openrouter.embedding('openai/text-embedding-3-small'),
|
|
104
|
+
value: 'sunny day at the beach',
|
|
105
|
+
});
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### Supported Embedding Models
|
|
109
|
+
|
|
110
|
+
OpenRouter supports various embedding models including:
|
|
111
|
+
- `openai/text-embedding-3-small`
|
|
112
|
+
- `openai/text-embedding-3-large`
|
|
113
|
+
- `openai/text-embedding-ada-002`
|
|
114
|
+
- And more available on [OpenRouter](https://openrouter.ai/models?output_modalities=embeddings)
|
|
115
|
+
|
|
58
116
|
## Passing Extra Body to OpenRouter
|
|
59
117
|
|
|
60
118
|
There are 3 ways to pass extra body to OpenRouter:
|
package/dist/index.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { LanguageModelV2, LanguageModelV2CallOptions, LanguageModelV2Content, LanguageModelV2FinishReason, LanguageModelV2Usage, LanguageModelV2CallWarning, LanguageModelV2ResponseMetadata, SharedV2Headers, LanguageModelV2StreamPart, ProviderV2 } from '@ai-sdk/provider';
|
|
1
|
+
import { LanguageModelV2, LanguageModelV2CallOptions, LanguageModelV2Content, LanguageModelV2FinishReason, LanguageModelV2Usage, LanguageModelV2CallWarning, LanguageModelV2ResponseMetadata, SharedV2Headers, LanguageModelV2StreamPart, EmbeddingModelV2, SharedV2ProviderMetadata, ProviderV2 } from '@ai-sdk/provider';
|
|
2
2
|
export { LanguageModelV2, LanguageModelV2Prompt } from '@ai-sdk/provider';
|
|
3
3
|
import * as models from '@openrouter/sdk/models';
|
|
4
4
|
import { z } from 'zod/v4';
|
|
@@ -70,6 +70,14 @@ type OpenRouterChatSettings = {
|
|
|
70
70
|
* Custom search prompt to guide the search query
|
|
71
71
|
*/
|
|
72
72
|
search_prompt?: string;
|
|
73
|
+
/**
|
|
74
|
+
* Search engine to use for web search
|
|
75
|
+
* - "native": Use provider's built-in web search
|
|
76
|
+
* - "exa": Use Exa's search API
|
|
77
|
+
* - undefined: Native if supported, otherwise Exa
|
|
78
|
+
* @see https://openrouter.ai/docs/features/web-search
|
|
79
|
+
*/
|
|
80
|
+
engine?: models.Engine;
|
|
73
81
|
};
|
|
74
82
|
/**
|
|
75
83
|
* Debug options for troubleshooting API requests.
|
|
@@ -130,6 +138,63 @@ type OpenRouterChatSettings = {
|
|
|
130
138
|
audio?: number | string;
|
|
131
139
|
request?: number | string;
|
|
132
140
|
};
|
|
141
|
+
/**
|
|
142
|
+
* Whether to restrict routing to only ZDR (Zero Data Retention) endpoints.
|
|
143
|
+
* When true, only endpoints that do not retain prompts will be used.
|
|
144
|
+
*/
|
|
145
|
+
zdr?: boolean;
|
|
146
|
+
};
|
|
147
|
+
} & OpenRouterSharedSettings;
|
|
148
|
+
|
|
149
|
+
type OpenRouterEmbeddingModelId = string;
|
|
150
|
+
type OpenRouterEmbeddingSettings = {
|
|
151
|
+
/**
|
|
152
|
+
* A unique identifier representing your end-user, which can help OpenRouter to
|
|
153
|
+
* monitor and detect abuse.
|
|
154
|
+
*/
|
|
155
|
+
user?: string;
|
|
156
|
+
/**
|
|
157
|
+
* Provider routing preferences to control request routing behavior
|
|
158
|
+
*/
|
|
159
|
+
provider?: {
|
|
160
|
+
/**
|
|
161
|
+
* List of provider slugs to try in order (e.g. ["openai", "voyageai"])
|
|
162
|
+
*/
|
|
163
|
+
order?: string[];
|
|
164
|
+
/**
|
|
165
|
+
* Whether to allow backup providers when primary is unavailable (default: true)
|
|
166
|
+
*/
|
|
167
|
+
allow_fallbacks?: boolean;
|
|
168
|
+
/**
|
|
169
|
+
* Only use providers that support all parameters in your request (default: false)
|
|
170
|
+
*/
|
|
171
|
+
require_parameters?: boolean;
|
|
172
|
+
/**
|
|
173
|
+
* Control whether to use providers that may store data
|
|
174
|
+
*/
|
|
175
|
+
data_collection?: 'allow' | 'deny';
|
|
176
|
+
/**
|
|
177
|
+
* List of provider slugs to allow for this request
|
|
178
|
+
*/
|
|
179
|
+
only?: string[];
|
|
180
|
+
/**
|
|
181
|
+
* List of provider slugs to skip for this request
|
|
182
|
+
*/
|
|
183
|
+
ignore?: string[];
|
|
184
|
+
/**
|
|
185
|
+
* Sort providers by price, throughput, or latency
|
|
186
|
+
*/
|
|
187
|
+
sort?: 'price' | 'throughput' | 'latency';
|
|
188
|
+
/**
|
|
189
|
+
* Maximum pricing you want to pay for this request
|
|
190
|
+
*/
|
|
191
|
+
max_price?: {
|
|
192
|
+
prompt?: number | string;
|
|
193
|
+
completion?: number | string;
|
|
194
|
+
image?: number | string;
|
|
195
|
+
audio?: number | string;
|
|
196
|
+
request?: number | string;
|
|
197
|
+
};
|
|
133
198
|
};
|
|
134
199
|
} & OpenRouterSharedSettings;
|
|
135
200
|
|
|
@@ -277,6 +342,7 @@ declare class OpenRouterChatLanguageModel implements LanguageModelV2 {
|
|
|
277
342
|
readonly provider = "openrouter";
|
|
278
343
|
readonly defaultObjectGenerationMode: "tool";
|
|
279
344
|
readonly modelId: OpenRouterChatModelId;
|
|
345
|
+
readonly supportsImageUrls = true;
|
|
280
346
|
readonly supportedUrls: Record<string, RegExp[]>;
|
|
281
347
|
readonly settings: OpenRouterChatSettings;
|
|
282
348
|
private readonly config;
|
|
@@ -330,6 +396,7 @@ declare class OpenRouterCompletionLanguageModel implements LanguageModelV2 {
|
|
|
330
396
|
readonly specificationVersion: "v2";
|
|
331
397
|
readonly provider = "openrouter";
|
|
332
398
|
readonly modelId: OpenRouterCompletionModelId;
|
|
399
|
+
readonly supportsImageUrls = true;
|
|
333
400
|
readonly supportedUrls: Record<string, RegExp[]>;
|
|
334
401
|
readonly defaultObjectGenerationMode: undefined;
|
|
335
402
|
readonly settings: OpenRouterCompletionSettings;
|
|
@@ -340,6 +407,42 @@ declare class OpenRouterCompletionLanguageModel implements LanguageModelV2 {
|
|
|
340
407
|
doStream(options: LanguageModelV2CallOptions): Promise<Awaited<ReturnType<LanguageModelV2['doStream']>>>;
|
|
341
408
|
}
|
|
342
409
|
|
|
410
|
+
type OpenRouterEmbeddingConfig = {
|
|
411
|
+
provider: string;
|
|
412
|
+
headers: () => Record<string, string | undefined>;
|
|
413
|
+
url: (options: {
|
|
414
|
+
modelId: string;
|
|
415
|
+
path: string;
|
|
416
|
+
}) => string;
|
|
417
|
+
fetch?: typeof fetch;
|
|
418
|
+
extraBody?: Record<string, unknown>;
|
|
419
|
+
};
|
|
420
|
+
declare class OpenRouterEmbeddingModel implements EmbeddingModelV2<string> {
|
|
421
|
+
readonly specificationVersion: "v2";
|
|
422
|
+
readonly provider = "openrouter";
|
|
423
|
+
readonly modelId: OpenRouterEmbeddingModelId;
|
|
424
|
+
readonly settings: OpenRouterEmbeddingSettings;
|
|
425
|
+
readonly maxEmbeddingsPerCall: undefined;
|
|
426
|
+
readonly supportsParallelCalls = true;
|
|
427
|
+
private readonly config;
|
|
428
|
+
constructor(modelId: OpenRouterEmbeddingModelId, settings: OpenRouterEmbeddingSettings, config: OpenRouterEmbeddingConfig);
|
|
429
|
+
doEmbed(options: {
|
|
430
|
+
values: Array<string>;
|
|
431
|
+
abortSignal?: AbortSignal;
|
|
432
|
+
headers?: Record<string, string | undefined>;
|
|
433
|
+
}): Promise<{
|
|
434
|
+
embeddings: Array<Array<number>>;
|
|
435
|
+
usage?: {
|
|
436
|
+
tokens: number;
|
|
437
|
+
};
|
|
438
|
+
providerMetadata?: SharedV2ProviderMetadata;
|
|
439
|
+
response?: {
|
|
440
|
+
headers?: SharedV2Headers;
|
|
441
|
+
body?: unknown;
|
|
442
|
+
};
|
|
443
|
+
}>;
|
|
444
|
+
}
|
|
445
|
+
|
|
343
446
|
interface OpenRouterProvider extends ProviderV2 {
|
|
344
447
|
(modelId: OpenRouterChatModelId, settings?: OpenRouterCompletionSettings): OpenRouterCompletionLanguageModel;
|
|
345
448
|
(modelId: OpenRouterChatModelId, settings?: OpenRouterChatSettings): OpenRouterChatLanguageModel;
|
|
@@ -353,6 +456,15 @@ interface OpenRouterProvider extends ProviderV2 {
|
|
|
353
456
|
Creates an OpenRouter completion model for text generation.
|
|
354
457
|
*/
|
|
355
458
|
completion(modelId: OpenRouterCompletionModelId, settings?: OpenRouterCompletionSettings): OpenRouterCompletionLanguageModel;
|
|
459
|
+
/**
|
|
460
|
+
Creates an OpenRouter text embedding model. (AI SDK v5)
|
|
461
|
+
*/
|
|
462
|
+
textEmbeddingModel(modelId: OpenRouterEmbeddingModelId, settings?: OpenRouterEmbeddingSettings): OpenRouterEmbeddingModel;
|
|
463
|
+
/**
|
|
464
|
+
Creates an OpenRouter text embedding model. (AI SDK v4 - deprecated, use textEmbeddingModel instead)
|
|
465
|
+
@deprecated Use textEmbeddingModel instead
|
|
466
|
+
*/
|
|
467
|
+
embedding(modelId: OpenRouterEmbeddingModelId, settings?: OpenRouterEmbeddingSettings): OpenRouterEmbeddingModel;
|
|
356
468
|
}
|
|
357
469
|
interface OpenRouterProviderSettings {
|
|
358
470
|
/**
|
|
@@ -386,6 +498,11 @@ interface OpenRouterProviderSettings {
|
|
|
386
498
|
A JSON object to send as the request body to access OpenRouter features & upstream provider features.
|
|
387
499
|
*/
|
|
388
500
|
extraBody?: Record<string, unknown>;
|
|
501
|
+
/**
|
|
502
|
+
* Record of provider slugs to API keys for injecting into provider routing.
|
|
503
|
+
* Maps provider slugs (e.g. "anthropic", "openai") to their respective API keys.
|
|
504
|
+
*/
|
|
505
|
+
api_keys?: Record<string, string>;
|
|
389
506
|
}
|
|
390
507
|
/**
|
|
391
508
|
Create an OpenRouter provider instance.
|
|
@@ -414,6 +531,10 @@ declare class OpenRouter {
|
|
|
414
531
|
Custom headers to include in the requests.
|
|
415
532
|
*/
|
|
416
533
|
readonly headers?: Record<string, string>;
|
|
534
|
+
/**
|
|
535
|
+
* Record of provider slugs to API keys for injecting into provider routing.
|
|
536
|
+
*/
|
|
537
|
+
readonly api_keys?: Record<string, string>;
|
|
417
538
|
/**
|
|
418
539
|
* Creates a new OpenRouter provider instance.
|
|
419
540
|
*/
|
|
@@ -421,6 +542,11 @@ declare class OpenRouter {
|
|
|
421
542
|
private get baseConfig();
|
|
422
543
|
chat(modelId: OpenRouterChatModelId, settings?: OpenRouterChatSettings): OpenRouterChatLanguageModel;
|
|
423
544
|
completion(modelId: OpenRouterCompletionModelId, settings?: OpenRouterCompletionSettings): OpenRouterCompletionLanguageModel;
|
|
545
|
+
textEmbeddingModel(modelId: OpenRouterEmbeddingModelId, settings?: OpenRouterEmbeddingSettings): OpenRouterEmbeddingModel;
|
|
546
|
+
/**
|
|
547
|
+
* @deprecated Use textEmbeddingModel instead
|
|
548
|
+
*/
|
|
549
|
+
embedding(modelId: OpenRouterEmbeddingModelId, settings?: OpenRouterEmbeddingSettings): OpenRouterEmbeddingModel;
|
|
424
550
|
}
|
|
425
551
|
|
|
426
|
-
export { OpenRouter, type OpenRouterCompletionSettings, type OpenRouterProvider, type OpenRouterProviderOptions, type OpenRouterProviderSettings, type OpenRouterSharedSettings, type OpenRouterUsageAccounting, createOpenRouter, openrouter };
|
|
552
|
+
export { OpenRouter, type OpenRouterCompletionSettings, type OpenRouterEmbeddingModelId, type OpenRouterEmbeddingSettings, type OpenRouterProvider, type OpenRouterProviderOptions, type OpenRouterProviderSettings, type OpenRouterSharedSettings, type OpenRouterUsageAccounting, createOpenRouter, openrouter };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { LanguageModelV2, LanguageModelV2CallOptions, LanguageModelV2Content, LanguageModelV2FinishReason, LanguageModelV2Usage, LanguageModelV2CallWarning, LanguageModelV2ResponseMetadata, SharedV2Headers, LanguageModelV2StreamPart, ProviderV2 } from '@ai-sdk/provider';
|
|
1
|
+
import { LanguageModelV2, LanguageModelV2CallOptions, LanguageModelV2Content, LanguageModelV2FinishReason, LanguageModelV2Usage, LanguageModelV2CallWarning, LanguageModelV2ResponseMetadata, SharedV2Headers, LanguageModelV2StreamPart, EmbeddingModelV2, SharedV2ProviderMetadata, ProviderV2 } from '@ai-sdk/provider';
|
|
2
2
|
export { LanguageModelV2, LanguageModelV2Prompt } from '@ai-sdk/provider';
|
|
3
3
|
import * as models from '@openrouter/sdk/models';
|
|
4
4
|
import { z } from 'zod/v4';
|
|
@@ -70,6 +70,14 @@ type OpenRouterChatSettings = {
|
|
|
70
70
|
* Custom search prompt to guide the search query
|
|
71
71
|
*/
|
|
72
72
|
search_prompt?: string;
|
|
73
|
+
/**
|
|
74
|
+
* Search engine to use for web search
|
|
75
|
+
* - "native": Use provider's built-in web search
|
|
76
|
+
* - "exa": Use Exa's search API
|
|
77
|
+
* - undefined: Native if supported, otherwise Exa
|
|
78
|
+
* @see https://openrouter.ai/docs/features/web-search
|
|
79
|
+
*/
|
|
80
|
+
engine?: models.Engine;
|
|
73
81
|
};
|
|
74
82
|
/**
|
|
75
83
|
* Debug options for troubleshooting API requests.
|
|
@@ -130,6 +138,63 @@ type OpenRouterChatSettings = {
|
|
|
130
138
|
audio?: number | string;
|
|
131
139
|
request?: number | string;
|
|
132
140
|
};
|
|
141
|
+
/**
|
|
142
|
+
* Whether to restrict routing to only ZDR (Zero Data Retention) endpoints.
|
|
143
|
+
* When true, only endpoints that do not retain prompts will be used.
|
|
144
|
+
*/
|
|
145
|
+
zdr?: boolean;
|
|
146
|
+
};
|
|
147
|
+
} & OpenRouterSharedSettings;
|
|
148
|
+
|
|
149
|
+
type OpenRouterEmbeddingModelId = string;
|
|
150
|
+
type OpenRouterEmbeddingSettings = {
|
|
151
|
+
/**
|
|
152
|
+
* A unique identifier representing your end-user, which can help OpenRouter to
|
|
153
|
+
* monitor and detect abuse.
|
|
154
|
+
*/
|
|
155
|
+
user?: string;
|
|
156
|
+
/**
|
|
157
|
+
* Provider routing preferences to control request routing behavior
|
|
158
|
+
*/
|
|
159
|
+
provider?: {
|
|
160
|
+
/**
|
|
161
|
+
* List of provider slugs to try in order (e.g. ["openai", "voyageai"])
|
|
162
|
+
*/
|
|
163
|
+
order?: string[];
|
|
164
|
+
/**
|
|
165
|
+
* Whether to allow backup providers when primary is unavailable (default: true)
|
|
166
|
+
*/
|
|
167
|
+
allow_fallbacks?: boolean;
|
|
168
|
+
/**
|
|
169
|
+
* Only use providers that support all parameters in your request (default: false)
|
|
170
|
+
*/
|
|
171
|
+
require_parameters?: boolean;
|
|
172
|
+
/**
|
|
173
|
+
* Control whether to use providers that may store data
|
|
174
|
+
*/
|
|
175
|
+
data_collection?: 'allow' | 'deny';
|
|
176
|
+
/**
|
|
177
|
+
* List of provider slugs to allow for this request
|
|
178
|
+
*/
|
|
179
|
+
only?: string[];
|
|
180
|
+
/**
|
|
181
|
+
* List of provider slugs to skip for this request
|
|
182
|
+
*/
|
|
183
|
+
ignore?: string[];
|
|
184
|
+
/**
|
|
185
|
+
* Sort providers by price, throughput, or latency
|
|
186
|
+
*/
|
|
187
|
+
sort?: 'price' | 'throughput' | 'latency';
|
|
188
|
+
/**
|
|
189
|
+
* Maximum pricing you want to pay for this request
|
|
190
|
+
*/
|
|
191
|
+
max_price?: {
|
|
192
|
+
prompt?: number | string;
|
|
193
|
+
completion?: number | string;
|
|
194
|
+
image?: number | string;
|
|
195
|
+
audio?: number | string;
|
|
196
|
+
request?: number | string;
|
|
197
|
+
};
|
|
133
198
|
};
|
|
134
199
|
} & OpenRouterSharedSettings;
|
|
135
200
|
|
|
@@ -277,6 +342,7 @@ declare class OpenRouterChatLanguageModel implements LanguageModelV2 {
|
|
|
277
342
|
readonly provider = "openrouter";
|
|
278
343
|
readonly defaultObjectGenerationMode: "tool";
|
|
279
344
|
readonly modelId: OpenRouterChatModelId;
|
|
345
|
+
readonly supportsImageUrls = true;
|
|
280
346
|
readonly supportedUrls: Record<string, RegExp[]>;
|
|
281
347
|
readonly settings: OpenRouterChatSettings;
|
|
282
348
|
private readonly config;
|
|
@@ -330,6 +396,7 @@ declare class OpenRouterCompletionLanguageModel implements LanguageModelV2 {
|
|
|
330
396
|
readonly specificationVersion: "v2";
|
|
331
397
|
readonly provider = "openrouter";
|
|
332
398
|
readonly modelId: OpenRouterCompletionModelId;
|
|
399
|
+
readonly supportsImageUrls = true;
|
|
333
400
|
readonly supportedUrls: Record<string, RegExp[]>;
|
|
334
401
|
readonly defaultObjectGenerationMode: undefined;
|
|
335
402
|
readonly settings: OpenRouterCompletionSettings;
|
|
@@ -340,6 +407,42 @@ declare class OpenRouterCompletionLanguageModel implements LanguageModelV2 {
|
|
|
340
407
|
doStream(options: LanguageModelV2CallOptions): Promise<Awaited<ReturnType<LanguageModelV2['doStream']>>>;
|
|
341
408
|
}
|
|
342
409
|
|
|
410
|
+
type OpenRouterEmbeddingConfig = {
|
|
411
|
+
provider: string;
|
|
412
|
+
headers: () => Record<string, string | undefined>;
|
|
413
|
+
url: (options: {
|
|
414
|
+
modelId: string;
|
|
415
|
+
path: string;
|
|
416
|
+
}) => string;
|
|
417
|
+
fetch?: typeof fetch;
|
|
418
|
+
extraBody?: Record<string, unknown>;
|
|
419
|
+
};
|
|
420
|
+
declare class OpenRouterEmbeddingModel implements EmbeddingModelV2<string> {
|
|
421
|
+
readonly specificationVersion: "v2";
|
|
422
|
+
readonly provider = "openrouter";
|
|
423
|
+
readonly modelId: OpenRouterEmbeddingModelId;
|
|
424
|
+
readonly settings: OpenRouterEmbeddingSettings;
|
|
425
|
+
readonly maxEmbeddingsPerCall: undefined;
|
|
426
|
+
readonly supportsParallelCalls = true;
|
|
427
|
+
private readonly config;
|
|
428
|
+
constructor(modelId: OpenRouterEmbeddingModelId, settings: OpenRouterEmbeddingSettings, config: OpenRouterEmbeddingConfig);
|
|
429
|
+
doEmbed(options: {
|
|
430
|
+
values: Array<string>;
|
|
431
|
+
abortSignal?: AbortSignal;
|
|
432
|
+
headers?: Record<string, string | undefined>;
|
|
433
|
+
}): Promise<{
|
|
434
|
+
embeddings: Array<Array<number>>;
|
|
435
|
+
usage?: {
|
|
436
|
+
tokens: number;
|
|
437
|
+
};
|
|
438
|
+
providerMetadata?: SharedV2ProviderMetadata;
|
|
439
|
+
response?: {
|
|
440
|
+
headers?: SharedV2Headers;
|
|
441
|
+
body?: unknown;
|
|
442
|
+
};
|
|
443
|
+
}>;
|
|
444
|
+
}
|
|
445
|
+
|
|
343
446
|
interface OpenRouterProvider extends ProviderV2 {
|
|
344
447
|
(modelId: OpenRouterChatModelId, settings?: OpenRouterCompletionSettings): OpenRouterCompletionLanguageModel;
|
|
345
448
|
(modelId: OpenRouterChatModelId, settings?: OpenRouterChatSettings): OpenRouterChatLanguageModel;
|
|
@@ -353,6 +456,15 @@ interface OpenRouterProvider extends ProviderV2 {
|
|
|
353
456
|
Creates an OpenRouter completion model for text generation.
|
|
354
457
|
*/
|
|
355
458
|
completion(modelId: OpenRouterCompletionModelId, settings?: OpenRouterCompletionSettings): OpenRouterCompletionLanguageModel;
|
|
459
|
+
/**
|
|
460
|
+
Creates an OpenRouter text embedding model. (AI SDK v5)
|
|
461
|
+
*/
|
|
462
|
+
textEmbeddingModel(modelId: OpenRouterEmbeddingModelId, settings?: OpenRouterEmbeddingSettings): OpenRouterEmbeddingModel;
|
|
463
|
+
/**
|
|
464
|
+
Creates an OpenRouter text embedding model. (AI SDK v4 - deprecated, use textEmbeddingModel instead)
|
|
465
|
+
@deprecated Use textEmbeddingModel instead
|
|
466
|
+
*/
|
|
467
|
+
embedding(modelId: OpenRouterEmbeddingModelId, settings?: OpenRouterEmbeddingSettings): OpenRouterEmbeddingModel;
|
|
356
468
|
}
|
|
357
469
|
interface OpenRouterProviderSettings {
|
|
358
470
|
/**
|
|
@@ -386,6 +498,11 @@ interface OpenRouterProviderSettings {
|
|
|
386
498
|
A JSON object to send as the request body to access OpenRouter features & upstream provider features.
|
|
387
499
|
*/
|
|
388
500
|
extraBody?: Record<string, unknown>;
|
|
501
|
+
/**
|
|
502
|
+
* Record of provider slugs to API keys for injecting into provider routing.
|
|
503
|
+
* Maps provider slugs (e.g. "anthropic", "openai") to their respective API keys.
|
|
504
|
+
*/
|
|
505
|
+
api_keys?: Record<string, string>;
|
|
389
506
|
}
|
|
390
507
|
/**
|
|
391
508
|
Create an OpenRouter provider instance.
|
|
@@ -414,6 +531,10 @@ declare class OpenRouter {
|
|
|
414
531
|
Custom headers to include in the requests.
|
|
415
532
|
*/
|
|
416
533
|
readonly headers?: Record<string, string>;
|
|
534
|
+
/**
|
|
535
|
+
* Record of provider slugs to API keys for injecting into provider routing.
|
|
536
|
+
*/
|
|
537
|
+
readonly api_keys?: Record<string, string>;
|
|
417
538
|
/**
|
|
418
539
|
* Creates a new OpenRouter provider instance.
|
|
419
540
|
*/
|
|
@@ -421,6 +542,11 @@ declare class OpenRouter {
|
|
|
421
542
|
private get baseConfig();
|
|
422
543
|
chat(modelId: OpenRouterChatModelId, settings?: OpenRouterChatSettings): OpenRouterChatLanguageModel;
|
|
423
544
|
completion(modelId: OpenRouterCompletionModelId, settings?: OpenRouterCompletionSettings): OpenRouterCompletionLanguageModel;
|
|
545
|
+
textEmbeddingModel(modelId: OpenRouterEmbeddingModelId, settings?: OpenRouterEmbeddingSettings): OpenRouterEmbeddingModel;
|
|
546
|
+
/**
|
|
547
|
+
* @deprecated Use textEmbeddingModel instead
|
|
548
|
+
*/
|
|
549
|
+
embedding(modelId: OpenRouterEmbeddingModelId, settings?: OpenRouterEmbeddingSettings): OpenRouterEmbeddingModel;
|
|
424
550
|
}
|
|
425
551
|
|
|
426
|
-
export { OpenRouter, type OpenRouterCompletionSettings, type OpenRouterProvider, type OpenRouterProviderOptions, type OpenRouterProviderSettings, type OpenRouterSharedSettings, type OpenRouterUsageAccounting, createOpenRouter, openrouter };
|
|
552
|
+
export { OpenRouter, type OpenRouterCompletionSettings, type OpenRouterEmbeddingModelId, type OpenRouterEmbeddingSettings, type OpenRouterProvider, type OpenRouterProviderOptions, type OpenRouterProviderSettings, type OpenRouterSharedSettings, type OpenRouterUsageAccounting, createOpenRouter, openrouter };
|