@openrouter/ai-sdk-provider 1.5.4 → 2.0.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 +8 -24
- package/dist/index.d.mts +27 -25
- package/dist/index.d.ts +27 -25
- package/dist/index.js +1516 -195
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1516 -193
- package/dist/index.mjs.map +1 -1
- package/dist/internal/index.d.mts +20 -20
- package/dist/internal/index.d.ts +20 -20
- package/dist/internal/index.js +1510 -180
- package/dist/internal/index.js.map +1 -1
- package/dist/internal/index.mjs +1510 -178
- package/dist/internal/index.mjs.map +1 -1
- package/package.json +9 -8
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
The [OpenRouter](https://openrouter.ai/) provider for the [Vercel AI SDK](https://sdk.vercel.ai/docs) gives access to over 300 large language models on the OpenRouter chat and completion APIs.
|
|
4
4
|
|
|
5
|
-
## Setup for AI SDK
|
|
5
|
+
## Setup for AI SDK v6
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
8
|
# For pnpm
|
|
@@ -15,18 +15,17 @@ npm install @openrouter/ai-sdk-provider
|
|
|
15
15
|
yarn add @openrouter/ai-sdk-provider
|
|
16
16
|
```
|
|
17
17
|
|
|
18
|
-
## (LEGACY) Setup for AI SDK
|
|
18
|
+
## (LEGACY) Setup for AI SDK v5
|
|
19
19
|
|
|
20
20
|
```bash
|
|
21
21
|
# For pnpm
|
|
22
|
-
pnpm add @openrouter/ai-sdk-provider@ai-sdk-
|
|
22
|
+
pnpm add @openrouter/ai-sdk-provider@ai-sdk-v5
|
|
23
23
|
|
|
24
24
|
# For npm
|
|
25
|
-
npm install @openrouter/ai-sdk-provider@ai-sdk-
|
|
25
|
+
npm install @openrouter/ai-sdk-provider@ai-sdk-v5
|
|
26
26
|
|
|
27
27
|
# For yarn
|
|
28
|
-
yarn add @openrouter/ai-sdk-provider@ai-sdk-
|
|
29
|
-
|
|
28
|
+
yarn add @openrouter/ai-sdk-provider@ai-sdk-v5
|
|
30
29
|
```
|
|
31
30
|
|
|
32
31
|
## Provider Instance
|
|
@@ -57,9 +56,9 @@ You can find the latest list of tool-supported models supported by OpenRouter [h
|
|
|
57
56
|
|
|
58
57
|
## Embeddings
|
|
59
58
|
|
|
60
|
-
OpenRouter supports embedding models for semantic search, RAG pipelines, and vector-native features.
|
|
59
|
+
OpenRouter supports embedding models for semantic search, RAG pipelines, and vector-native features.
|
|
61
60
|
|
|
62
|
-
###
|
|
61
|
+
### Basic Usage
|
|
63
62
|
|
|
64
63
|
```ts
|
|
65
64
|
import { embed } from 'ai';
|
|
@@ -91,20 +90,6 @@ const { embeddings } = await embedMany({
|
|
|
91
90
|
console.log(embeddings); // Array of embedding arrays
|
|
92
91
|
```
|
|
93
92
|
|
|
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
93
|
### Supported Embedding Models
|
|
109
94
|
|
|
110
95
|
OpenRouter supports various embedding models including:
|
|
@@ -225,6 +210,7 @@ await streamText({
|
|
|
225
210
|
],
|
|
226
211
|
});
|
|
227
212
|
```
|
|
213
|
+
|
|
228
214
|
## Anthropic Beta Features
|
|
229
215
|
|
|
230
216
|
You can enable Anthropic beta features by passing custom headers through the OpenRouter SDK.
|
|
@@ -319,8 +305,6 @@ for await (const partialComponent of result.partialObjectStream) {
|
|
|
319
305
|
}
|
|
320
306
|
```
|
|
321
307
|
|
|
322
|
-
|
|
323
|
-
|
|
324
308
|
## Use Cases
|
|
325
309
|
|
|
326
310
|
### Debugging API Requests
|
package/dist/index.d.mts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
1
|
+
import * as _ai_sdk_provider from '@ai-sdk/provider';
|
|
2
|
+
import { LanguageModelV3, LanguageModelV3CallOptions, LanguageModelV3Content, LanguageModelV3FinishReason, LanguageModelV3Usage, SharedV3Warning, LanguageModelV3ResponseMetadata, SharedV3Headers, LanguageModelV3StreamPart, EmbeddingModelV3, SharedV3ProviderMetadata, ProviderV3 } from '@ai-sdk/provider';
|
|
3
|
+
export { LanguageModelV3, LanguageModelV3Prompt } from '@ai-sdk/provider';
|
|
3
4
|
import * as models from '@openrouter/sdk/models';
|
|
4
5
|
import { z } from 'zod/v4';
|
|
5
6
|
|
|
@@ -337,8 +338,8 @@ type OpenRouterChatConfig = {
|
|
|
337
338
|
fetch?: typeof fetch;
|
|
338
339
|
extraBody?: Record<string, unknown>;
|
|
339
340
|
};
|
|
340
|
-
declare class OpenRouterChatLanguageModel implements
|
|
341
|
-
readonly specificationVersion: "
|
|
341
|
+
declare class OpenRouterChatLanguageModel implements LanguageModelV3 {
|
|
342
|
+
readonly specificationVersion: "v3";
|
|
342
343
|
readonly provider = "openrouter";
|
|
343
344
|
readonly defaultObjectGenerationMode: "tool";
|
|
344
345
|
readonly modelId: OpenRouterChatModelId;
|
|
@@ -348,11 +349,11 @@ declare class OpenRouterChatLanguageModel implements LanguageModelV2 {
|
|
|
348
349
|
private readonly config;
|
|
349
350
|
constructor(modelId: OpenRouterChatModelId, settings: OpenRouterChatSettings, config: OpenRouterChatConfig);
|
|
350
351
|
private getArgs;
|
|
351
|
-
doGenerate(options:
|
|
352
|
-
content: Array<
|
|
353
|
-
finishReason:
|
|
354
|
-
usage:
|
|
355
|
-
warnings: Array<
|
|
352
|
+
doGenerate(options: LanguageModelV3CallOptions): Promise<{
|
|
353
|
+
content: Array<LanguageModelV3Content>;
|
|
354
|
+
finishReason: LanguageModelV3FinishReason;
|
|
355
|
+
usage: LanguageModelV3Usage;
|
|
356
|
+
warnings: Array<SharedV3Warning>;
|
|
356
357
|
providerMetadata?: {
|
|
357
358
|
openrouter: {
|
|
358
359
|
provider: string;
|
|
@@ -363,19 +364,19 @@ declare class OpenRouterChatLanguageModel implements LanguageModelV2 {
|
|
|
363
364
|
request?: {
|
|
364
365
|
body?: unknown;
|
|
365
366
|
};
|
|
366
|
-
response?:
|
|
367
|
-
headers?:
|
|
367
|
+
response?: LanguageModelV3ResponseMetadata & {
|
|
368
|
+
headers?: SharedV3Headers;
|
|
368
369
|
body?: unknown;
|
|
369
370
|
};
|
|
370
371
|
}>;
|
|
371
|
-
doStream(options:
|
|
372
|
-
stream: ReadableStream<
|
|
373
|
-
warnings: Array<
|
|
372
|
+
doStream(options: LanguageModelV3CallOptions): Promise<{
|
|
373
|
+
stream: ReadableStream<LanguageModelV3StreamPart>;
|
|
374
|
+
warnings: Array<SharedV3Warning>;
|
|
374
375
|
request?: {
|
|
375
376
|
body?: unknown;
|
|
376
377
|
};
|
|
377
|
-
response?:
|
|
378
|
-
headers?:
|
|
378
|
+
response?: LanguageModelV3ResponseMetadata & {
|
|
379
|
+
headers?: SharedV3Headers;
|
|
379
380
|
body?: unknown;
|
|
380
381
|
};
|
|
381
382
|
}>;
|
|
@@ -392,8 +393,8 @@ type OpenRouterCompletionConfig = {
|
|
|
392
393
|
fetch?: typeof fetch;
|
|
393
394
|
extraBody?: Record<string, unknown>;
|
|
394
395
|
};
|
|
395
|
-
declare class OpenRouterCompletionLanguageModel implements
|
|
396
|
-
readonly specificationVersion: "
|
|
396
|
+
declare class OpenRouterCompletionLanguageModel implements LanguageModelV3 {
|
|
397
|
+
readonly specificationVersion: "v3";
|
|
397
398
|
readonly provider = "openrouter";
|
|
398
399
|
readonly modelId: OpenRouterCompletionModelId;
|
|
399
400
|
readonly supportsImageUrls = true;
|
|
@@ -403,8 +404,8 @@ declare class OpenRouterCompletionLanguageModel implements LanguageModelV2 {
|
|
|
403
404
|
private readonly config;
|
|
404
405
|
constructor(modelId: OpenRouterCompletionModelId, settings: OpenRouterCompletionSettings, config: OpenRouterCompletionConfig);
|
|
405
406
|
private getArgs;
|
|
406
|
-
doGenerate(options:
|
|
407
|
-
doStream(options:
|
|
407
|
+
doGenerate(options: LanguageModelV3CallOptions): Promise<Awaited<ReturnType<LanguageModelV3['doGenerate']>>>;
|
|
408
|
+
doStream(options: LanguageModelV3CallOptions): Promise<Awaited<ReturnType<LanguageModelV3['doStream']>>>;
|
|
408
409
|
}
|
|
409
410
|
|
|
410
411
|
type OpenRouterEmbeddingConfig = {
|
|
@@ -417,8 +418,8 @@ type OpenRouterEmbeddingConfig = {
|
|
|
417
418
|
fetch?: typeof fetch;
|
|
418
419
|
extraBody?: Record<string, unknown>;
|
|
419
420
|
};
|
|
420
|
-
declare class OpenRouterEmbeddingModel implements
|
|
421
|
-
readonly specificationVersion: "
|
|
421
|
+
declare class OpenRouterEmbeddingModel implements EmbeddingModelV3 {
|
|
422
|
+
readonly specificationVersion: "v3";
|
|
422
423
|
readonly provider = "openrouter";
|
|
423
424
|
readonly modelId: OpenRouterEmbeddingModelId;
|
|
424
425
|
readonly settings: OpenRouterEmbeddingSettings;
|
|
@@ -435,15 +436,16 @@ declare class OpenRouterEmbeddingModel implements EmbeddingModelV2<string> {
|
|
|
435
436
|
usage?: {
|
|
436
437
|
tokens: number;
|
|
437
438
|
};
|
|
438
|
-
providerMetadata?:
|
|
439
|
+
providerMetadata?: SharedV3ProviderMetadata;
|
|
439
440
|
response?: {
|
|
440
|
-
headers?:
|
|
441
|
+
headers?: SharedV3Headers;
|
|
441
442
|
body?: unknown;
|
|
442
443
|
};
|
|
444
|
+
warnings: Array<_ai_sdk_provider.SharedV3Warning>;
|
|
443
445
|
}>;
|
|
444
446
|
}
|
|
445
447
|
|
|
446
|
-
interface OpenRouterProvider extends
|
|
448
|
+
interface OpenRouterProvider extends ProviderV3 {
|
|
447
449
|
(modelId: OpenRouterChatModelId, settings?: OpenRouterCompletionSettings): OpenRouterCompletionLanguageModel;
|
|
448
450
|
(modelId: OpenRouterChatModelId, settings?: OpenRouterChatSettings): OpenRouterChatLanguageModel;
|
|
449
451
|
languageModel(modelId: OpenRouterChatModelId, settings?: OpenRouterCompletionSettings): OpenRouterCompletionLanguageModel;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
1
|
+
import * as _ai_sdk_provider from '@ai-sdk/provider';
|
|
2
|
+
import { LanguageModelV3, LanguageModelV3CallOptions, LanguageModelV3Content, LanguageModelV3FinishReason, LanguageModelV3Usage, SharedV3Warning, LanguageModelV3ResponseMetadata, SharedV3Headers, LanguageModelV3StreamPart, EmbeddingModelV3, SharedV3ProviderMetadata, ProviderV3 } from '@ai-sdk/provider';
|
|
3
|
+
export { LanguageModelV3, LanguageModelV3Prompt } from '@ai-sdk/provider';
|
|
3
4
|
import * as models from '@openrouter/sdk/models';
|
|
4
5
|
import { z } from 'zod/v4';
|
|
5
6
|
|
|
@@ -337,8 +338,8 @@ type OpenRouterChatConfig = {
|
|
|
337
338
|
fetch?: typeof fetch;
|
|
338
339
|
extraBody?: Record<string, unknown>;
|
|
339
340
|
};
|
|
340
|
-
declare class OpenRouterChatLanguageModel implements
|
|
341
|
-
readonly specificationVersion: "
|
|
341
|
+
declare class OpenRouterChatLanguageModel implements LanguageModelV3 {
|
|
342
|
+
readonly specificationVersion: "v3";
|
|
342
343
|
readonly provider = "openrouter";
|
|
343
344
|
readonly defaultObjectGenerationMode: "tool";
|
|
344
345
|
readonly modelId: OpenRouterChatModelId;
|
|
@@ -348,11 +349,11 @@ declare class OpenRouterChatLanguageModel implements LanguageModelV2 {
|
|
|
348
349
|
private readonly config;
|
|
349
350
|
constructor(modelId: OpenRouterChatModelId, settings: OpenRouterChatSettings, config: OpenRouterChatConfig);
|
|
350
351
|
private getArgs;
|
|
351
|
-
doGenerate(options:
|
|
352
|
-
content: Array<
|
|
353
|
-
finishReason:
|
|
354
|
-
usage:
|
|
355
|
-
warnings: Array<
|
|
352
|
+
doGenerate(options: LanguageModelV3CallOptions): Promise<{
|
|
353
|
+
content: Array<LanguageModelV3Content>;
|
|
354
|
+
finishReason: LanguageModelV3FinishReason;
|
|
355
|
+
usage: LanguageModelV3Usage;
|
|
356
|
+
warnings: Array<SharedV3Warning>;
|
|
356
357
|
providerMetadata?: {
|
|
357
358
|
openrouter: {
|
|
358
359
|
provider: string;
|
|
@@ -363,19 +364,19 @@ declare class OpenRouterChatLanguageModel implements LanguageModelV2 {
|
|
|
363
364
|
request?: {
|
|
364
365
|
body?: unknown;
|
|
365
366
|
};
|
|
366
|
-
response?:
|
|
367
|
-
headers?:
|
|
367
|
+
response?: LanguageModelV3ResponseMetadata & {
|
|
368
|
+
headers?: SharedV3Headers;
|
|
368
369
|
body?: unknown;
|
|
369
370
|
};
|
|
370
371
|
}>;
|
|
371
|
-
doStream(options:
|
|
372
|
-
stream: ReadableStream<
|
|
373
|
-
warnings: Array<
|
|
372
|
+
doStream(options: LanguageModelV3CallOptions): Promise<{
|
|
373
|
+
stream: ReadableStream<LanguageModelV3StreamPart>;
|
|
374
|
+
warnings: Array<SharedV3Warning>;
|
|
374
375
|
request?: {
|
|
375
376
|
body?: unknown;
|
|
376
377
|
};
|
|
377
|
-
response?:
|
|
378
|
-
headers?:
|
|
378
|
+
response?: LanguageModelV3ResponseMetadata & {
|
|
379
|
+
headers?: SharedV3Headers;
|
|
379
380
|
body?: unknown;
|
|
380
381
|
};
|
|
381
382
|
}>;
|
|
@@ -392,8 +393,8 @@ type OpenRouterCompletionConfig = {
|
|
|
392
393
|
fetch?: typeof fetch;
|
|
393
394
|
extraBody?: Record<string, unknown>;
|
|
394
395
|
};
|
|
395
|
-
declare class OpenRouterCompletionLanguageModel implements
|
|
396
|
-
readonly specificationVersion: "
|
|
396
|
+
declare class OpenRouterCompletionLanguageModel implements LanguageModelV3 {
|
|
397
|
+
readonly specificationVersion: "v3";
|
|
397
398
|
readonly provider = "openrouter";
|
|
398
399
|
readonly modelId: OpenRouterCompletionModelId;
|
|
399
400
|
readonly supportsImageUrls = true;
|
|
@@ -403,8 +404,8 @@ declare class OpenRouterCompletionLanguageModel implements LanguageModelV2 {
|
|
|
403
404
|
private readonly config;
|
|
404
405
|
constructor(modelId: OpenRouterCompletionModelId, settings: OpenRouterCompletionSettings, config: OpenRouterCompletionConfig);
|
|
405
406
|
private getArgs;
|
|
406
|
-
doGenerate(options:
|
|
407
|
-
doStream(options:
|
|
407
|
+
doGenerate(options: LanguageModelV3CallOptions): Promise<Awaited<ReturnType<LanguageModelV3['doGenerate']>>>;
|
|
408
|
+
doStream(options: LanguageModelV3CallOptions): Promise<Awaited<ReturnType<LanguageModelV3['doStream']>>>;
|
|
408
409
|
}
|
|
409
410
|
|
|
410
411
|
type OpenRouterEmbeddingConfig = {
|
|
@@ -417,8 +418,8 @@ type OpenRouterEmbeddingConfig = {
|
|
|
417
418
|
fetch?: typeof fetch;
|
|
418
419
|
extraBody?: Record<string, unknown>;
|
|
419
420
|
};
|
|
420
|
-
declare class OpenRouterEmbeddingModel implements
|
|
421
|
-
readonly specificationVersion: "
|
|
421
|
+
declare class OpenRouterEmbeddingModel implements EmbeddingModelV3 {
|
|
422
|
+
readonly specificationVersion: "v3";
|
|
422
423
|
readonly provider = "openrouter";
|
|
423
424
|
readonly modelId: OpenRouterEmbeddingModelId;
|
|
424
425
|
readonly settings: OpenRouterEmbeddingSettings;
|
|
@@ -435,15 +436,16 @@ declare class OpenRouterEmbeddingModel implements EmbeddingModelV2<string> {
|
|
|
435
436
|
usage?: {
|
|
436
437
|
tokens: number;
|
|
437
438
|
};
|
|
438
|
-
providerMetadata?:
|
|
439
|
+
providerMetadata?: SharedV3ProviderMetadata;
|
|
439
440
|
response?: {
|
|
440
|
-
headers?:
|
|
441
|
+
headers?: SharedV3Headers;
|
|
441
442
|
body?: unknown;
|
|
442
443
|
};
|
|
444
|
+
warnings: Array<_ai_sdk_provider.SharedV3Warning>;
|
|
443
445
|
}>;
|
|
444
446
|
}
|
|
445
447
|
|
|
446
|
-
interface OpenRouterProvider extends
|
|
448
|
+
interface OpenRouterProvider extends ProviderV3 {
|
|
447
449
|
(modelId: OpenRouterChatModelId, settings?: OpenRouterCompletionSettings): OpenRouterCompletionLanguageModel;
|
|
448
450
|
(modelId: OpenRouterChatModelId, settings?: OpenRouterChatSettings): OpenRouterChatLanguageModel;
|
|
449
451
|
languageModel(modelId: OpenRouterChatModelId, settings?: OpenRouterCompletionSettings): OpenRouterCompletionLanguageModel;
|