@ai-sdk/provider 3.0.2 → 3.0.3
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/CHANGELOG.md +6 -0
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/package.json +3 -1
- package/src/embedding-model/index.ts +2 -0
- package/src/embedding-model/v2/embedding-model-v2-embedding.ts +5 -0
- package/src/embedding-model/v2/embedding-model-v2.ts +113 -0
- package/src/embedding-model/v2/index.ts +2 -0
- package/src/embedding-model/v3/embedding-model-v3-call-options.ts +26 -0
- package/src/embedding-model/v3/embedding-model-v3-embedding.ts +5 -0
- package/src/embedding-model/v3/embedding-model-v3-result.ts +48 -0
- package/src/embedding-model/v3/embedding-model-v3.ts +54 -0
- package/src/embedding-model/v3/index.ts +4 -0
- package/src/embedding-model-middleware/index.ts +1 -0
- package/src/embedding-model-middleware/v3/embedding-model-v3-middleware.ts +69 -0
- package/src/embedding-model-middleware/v3/index.ts +1 -0
- package/src/errors/ai-sdk-error.ts +62 -0
- package/src/errors/api-call-error.ts +59 -0
- package/src/errors/empty-response-body-error.ts +17 -0
- package/src/errors/get-error-message.ts +15 -0
- package/src/errors/index.ts +15 -0
- package/src/errors/invalid-argument-error.ts +32 -0
- package/src/errors/invalid-prompt-error.ts +33 -0
- package/src/errors/invalid-response-data-error.ts +31 -0
- package/src/errors/json-parse-error.ts +29 -0
- package/src/errors/load-api-key-error.ts +17 -0
- package/src/errors/load-setting-error.ts +17 -0
- package/src/errors/no-content-generated-error.ts +22 -0
- package/src/errors/no-such-model-error.ts +45 -0
- package/src/errors/too-many-embedding-values-for-call-error.ts +40 -0
- package/src/errors/type-validation-error.ts +51 -0
- package/src/errors/unsupported-functionality-error.ts +26 -0
- package/src/image-model/index.ts +2 -0
- package/src/image-model/v2/image-model-v2-call-options.ts +60 -0
- package/src/image-model/v2/image-model-v2-call-warning.ts +16 -0
- package/src/image-model/v2/image-model-v2.ts +104 -0
- package/src/image-model/v2/index.ts +6 -0
- package/src/image-model/v3/image-model-v3-call-options.ts +74 -0
- package/src/image-model/v3/image-model-v3-file.ts +44 -0
- package/src/image-model/v3/image-model-v3-usage.ts +19 -0
- package/src/image-model/v3/image-model-v3.ts +110 -0
- package/src/image-model/v3/index.ts +7 -0
- package/src/image-model-middleware/index.ts +1 -0
- package/src/image-model-middleware/v3/image-model-v3-middleware.ts +61 -0
- package/src/image-model-middleware/v3/index.ts +1 -0
- package/src/index.ts +15 -0
- package/src/json-value/index.ts +2 -0
- package/src/json-value/is-json.ts +40 -0
- package/src/json-value/json-value.ts +17 -0
- package/src/language-model/index.ts +2 -0
- package/src/language-model/v2/index.ts +18 -0
- package/src/language-model/v2/language-model-v2-call-options.ts +125 -0
- package/src/language-model/v2/language-model-v2-call-warning.ts +23 -0
- package/src/language-model/v2/language-model-v2-content.ts +14 -0
- package/src/language-model/v2/language-model-v2-data-content.ts +4 -0
- package/src/language-model/v2/language-model-v2-file.ts +25 -0
- package/src/language-model/v2/language-model-v2-finish-reason.ts +20 -0
- package/src/language-model/v2/language-model-v2-function-tool.ts +37 -0
- package/src/language-model/v2/language-model-v2-prompt.ts +218 -0
- package/src/language-model/v2/language-model-v2-provider-defined-tool.ts +24 -0
- package/src/language-model/v2/language-model-v2-reasoning.ts +14 -0
- package/src/language-model/v2/language-model-v2-response-metadata.ts +16 -0
- package/src/language-model/v2/language-model-v2-source.ts +67 -0
- package/src/language-model/v2/language-model-v2-stream-part.ts +102 -0
- package/src/language-model/v2/language-model-v2-text.ts +15 -0
- package/src/language-model/v2/language-model-v2-tool-call.ts +35 -0
- package/src/language-model/v2/language-model-v2-tool-choice.ts +5 -0
- package/src/language-model/v2/language-model-v2-tool-result.ts +40 -0
- package/src/language-model/v2/language-model-v2-usage.ts +34 -0
- package/src/language-model/v2/language-model-v2.ts +137 -0
- package/src/language-model/v3/index.ts +21 -0
- package/src/language-model/v3/language-model-v3-call-options.ts +125 -0
- package/src/language-model/v3/language-model-v3-content.ts +16 -0
- package/src/language-model/v3/language-model-v3-data-content.ts +4 -0
- package/src/language-model/v3/language-model-v3-file.ts +32 -0
- package/src/language-model/v3/language-model-v3-finish-reason.ts +33 -0
- package/src/language-model/v3/language-model-v3-function-tool.ts +53 -0
- package/src/language-model/v3/language-model-v3-generate-result.ts +63 -0
- package/src/language-model/v3/language-model-v3-prompt.ts +422 -0
- package/src/language-model/v3/language-model-v3-provider-tool.ts +28 -0
- package/src/language-model/v3/language-model-v3-reasoning.ts +14 -0
- package/src/language-model/v3/language-model-v3-response-metadata.ts +16 -0
- package/src/language-model/v3/language-model-v3-source.ts +67 -0
- package/src/language-model/v3/language-model-v3-stream-part.ts +106 -0
- package/src/language-model/v3/language-model-v3-stream-result.ts +32 -0
- package/src/language-model/v3/language-model-v3-text.ts +15 -0
- package/src/language-model/v3/language-model-v3-tool-approval-request.ts +27 -0
- package/src/language-model/v3/language-model-v3-tool-call.ts +41 -0
- package/src/language-model/v3/language-model-v3-tool-choice.ts +5 -0
- package/src/language-model/v3/language-model-v3-tool-result.ts +51 -0
- package/src/language-model/v3/language-model-v3-usage.ts +59 -0
- package/src/language-model/v3/language-model-v3.ts +61 -0
- package/src/language-model-middleware/index.ts +2 -0
- package/src/language-model-middleware/v2/index.ts +1 -0
- package/src/language-model-middleware/v2/language-model-v2-middleware.ts +82 -0
- package/src/language-model-middleware/v3/index.ts +1 -0
- package/src/language-model-middleware/v3/language-model-v3-middleware.ts +84 -0
- package/src/provider/index.ts +2 -0
- package/src/provider/v2/index.ts +1 -0
- package/src/provider/v2/provider-v2.ts +64 -0
- package/src/provider/v3/index.ts +1 -0
- package/src/provider/v3/provider-v3.ts +93 -0
- package/src/reranking-model/index.ts +1 -0
- package/src/reranking-model/v3/index.ts +2 -0
- package/src/reranking-model/v3/reranking-model-v3-call-options.ts +40 -0
- package/src/reranking-model/v3/reranking-model-v3.ts +90 -0
- package/src/shared/index.ts +2 -0
- package/src/shared/v2/index.ts +3 -0
- package/src/shared/v2/shared-v2-headers.ts +1 -0
- package/src/shared/v2/shared-v2-provider-metadata.ts +27 -0
- package/src/shared/v2/shared-v2-provider-options.ts +24 -0
- package/src/shared/v3/index.ts +4 -0
- package/src/shared/v3/shared-v3-headers.ts +1 -0
- package/src/shared/v3/shared-v3-provider-metadata.ts +24 -0
- package/src/shared/v3/shared-v3-provider-options.ts +24 -0
- package/src/shared/v3/shared-v3-warning.ts +50 -0
- package/src/speech-model/index.ts +2 -0
- package/src/speech-model/v2/index.ts +3 -0
- package/src/speech-model/v2/speech-model-v2-call-options.ts +62 -0
- package/src/speech-model/v2/speech-model-v2-call-warning.ts +16 -0
- package/src/speech-model/v2/speech-model-v2.ts +89 -0
- package/src/speech-model/v3/index.ts +2 -0
- package/src/speech-model/v3/speech-model-v3-call-options.ts +62 -0
- package/src/speech-model/v3/speech-model-v3.ts +89 -0
- package/src/transcription-model/index.ts +2 -0
- package/src/transcription-model/v2/index.ts +3 -0
- package/src/transcription-model/v2/transcription-model-v2-call-options.ts +48 -0
- package/src/transcription-model/v2/transcription-model-v2-call-warning.ts +16 -0
- package/src/transcription-model/v2/transcription-model-v2.ts +117 -0
- package/src/transcription-model/v3/index.ts +2 -0
- package/src/transcription-model/v3/transcription-model-v3-call-options.ts +45 -0
- package/src/transcription-model/v3/transcription-model-v3.ts +117 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { SharedV3ProviderMetadata } from '../../shared/v3/shared-v3-provider-metadata';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Tool approval request emitted by a provider for a provider-executed tool call.
|
|
5
|
+
*
|
|
6
|
+
* This is used for flows where the provider executes the tool (e.g. MCP tools)
|
|
7
|
+
* but requires an explicit user approval before continuing.
|
|
8
|
+
*/
|
|
9
|
+
export type LanguageModelV3ToolApprovalRequest = {
|
|
10
|
+
type: 'tool-approval-request';
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* ID of the approval request. This ID is referenced by the subsequent
|
|
14
|
+
* tool-approval-response (tool message) to approve or deny execution.
|
|
15
|
+
*/
|
|
16
|
+
approvalId: string;
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* The tool call ID that this approval request is for.
|
|
20
|
+
*/
|
|
21
|
+
toolCallId: string;
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Additional provider-specific metadata for the approval request.
|
|
25
|
+
*/
|
|
26
|
+
providerMetadata?: SharedV3ProviderMetadata;
|
|
27
|
+
};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { SharedV3ProviderMetadata } from '../../shared/v3/shared-v3-provider-metadata';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Tool calls that the model has generated.
|
|
5
|
+
*/
|
|
6
|
+
export type LanguageModelV3ToolCall = {
|
|
7
|
+
type: 'tool-call';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* The identifier of the tool call. It must be unique across all tool calls.
|
|
11
|
+
*/
|
|
12
|
+
toolCallId: string;
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* The name of the tool that should be called.
|
|
16
|
+
*/
|
|
17
|
+
toolName: string;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Stringified JSON object with the tool call arguments. Must match the
|
|
21
|
+
* parameters schema of the tool.
|
|
22
|
+
*/
|
|
23
|
+
input: string;
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Whether the tool call will be executed by the provider.
|
|
27
|
+
* If this flag is not set or is false, the tool call will be executed by the client.
|
|
28
|
+
*/
|
|
29
|
+
providerExecuted?: boolean;
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Whether the tool is dynamic, i.e. defined at runtime.
|
|
33
|
+
* For example, MCP (Model Context Protocol) tools that are executed by the provider.
|
|
34
|
+
*/
|
|
35
|
+
dynamic?: boolean;
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Additional provider-specific metadata for the tool call.
|
|
39
|
+
*/
|
|
40
|
+
providerMetadata?: SharedV3ProviderMetadata;
|
|
41
|
+
};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export type LanguageModelV3ToolChoice =
|
|
2
|
+
| { type: 'auto' } // the tool selection is automatic (can be no tool)
|
|
3
|
+
| { type: 'none' } // no tool must be selected
|
|
4
|
+
| { type: 'required' } // one of the available tools must be selected
|
|
5
|
+
| { type: 'tool'; toolName: string }; // a specific tool must be selected:
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { JSONValue } from '../../json-value';
|
|
2
|
+
import { SharedV3ProviderMetadata } from '../../shared/v3/shared-v3-provider-metadata';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
Result of a tool call that has been executed by the provider.
|
|
6
|
+
*/
|
|
7
|
+
export type LanguageModelV3ToolResult = {
|
|
8
|
+
type: 'tool-result';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* The ID of the tool call that this result is associated with.
|
|
12
|
+
*/
|
|
13
|
+
toolCallId: string;
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Name of the tool that generated this result.
|
|
17
|
+
*/
|
|
18
|
+
toolName: string;
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Result of the tool call. This is a JSON-serializable object.
|
|
22
|
+
*/
|
|
23
|
+
result: NonNullable<JSONValue>;
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Optional flag if the result is an error or an error message.
|
|
27
|
+
*/
|
|
28
|
+
isError?: boolean;
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Whether the tool result is preliminary.
|
|
32
|
+
*
|
|
33
|
+
* Preliminary tool results replace each other, e.g. image previews.
|
|
34
|
+
* There always has to be a final, non-preliminary tool result.
|
|
35
|
+
*
|
|
36
|
+
* If this flag is set to true, the tool result is preliminary.
|
|
37
|
+
* If this flag is not set or is false, the tool result is not preliminary.
|
|
38
|
+
*/
|
|
39
|
+
preliminary?: boolean;
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Whether the tool is dynamic, i.e. defined at runtime.
|
|
43
|
+
* For example, MCP (Model Context Protocol) tools that are executed by the provider.
|
|
44
|
+
*/
|
|
45
|
+
dynamic?: boolean;
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Additional provider-specific metadata for the tool result.
|
|
49
|
+
*/
|
|
50
|
+
providerMetadata?: SharedV3ProviderMetadata;
|
|
51
|
+
};
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { JSONObject } from '../../json-value';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Usage information for a language model call.
|
|
5
|
+
*/
|
|
6
|
+
export type LanguageModelV3Usage = {
|
|
7
|
+
/**
|
|
8
|
+
* Information about the input tokens.
|
|
9
|
+
*/
|
|
10
|
+
inputTokens: {
|
|
11
|
+
/**
|
|
12
|
+
*The total number of input (prompt) tokens used.
|
|
13
|
+
*/
|
|
14
|
+
total: number | undefined;
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* The number of non-cached input (prompt) tokens used.
|
|
18
|
+
*/
|
|
19
|
+
noCache: number | undefined;
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* The number of cached input (prompt) tokens read.
|
|
23
|
+
*/
|
|
24
|
+
cacheRead: number | undefined;
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* The number of cached input (prompt) tokens written.
|
|
28
|
+
*/
|
|
29
|
+
cacheWrite: number | undefined;
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Information about the output tokens.
|
|
34
|
+
*/
|
|
35
|
+
outputTokens: {
|
|
36
|
+
/**
|
|
37
|
+
* The total number of output (completion) tokens used.
|
|
38
|
+
*/
|
|
39
|
+
total: number | undefined;
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* The number of text tokens used.
|
|
43
|
+
*/
|
|
44
|
+
text: number | undefined;
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* The number of reasoning tokens used.
|
|
48
|
+
*/
|
|
49
|
+
reasoning: number | undefined;
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Raw usage information from the provider.
|
|
54
|
+
*
|
|
55
|
+
* This is the usage information in the shape that the provider returns.
|
|
56
|
+
* It can include additional information that is not part of the standard usage information.
|
|
57
|
+
*/
|
|
58
|
+
raw?: JSONObject;
|
|
59
|
+
};
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { LanguageModelV3CallOptions } from './language-model-v3-call-options';
|
|
2
|
+
import { LanguageModelV3GenerateResult } from './language-model-v3-generate-result';
|
|
3
|
+
import { LanguageModelV3StreamResult } from './language-model-v3-stream-result';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Specification for a language model that implements the language model interface version 3.
|
|
7
|
+
*/
|
|
8
|
+
export type LanguageModelV3 = {
|
|
9
|
+
/**
|
|
10
|
+
* The language model must specify which language model interface version it implements.
|
|
11
|
+
*/
|
|
12
|
+
readonly specificationVersion: 'v3';
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Provider ID.
|
|
16
|
+
*/
|
|
17
|
+
readonly provider: string;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Provider-specific model ID.
|
|
21
|
+
*/
|
|
22
|
+
readonly modelId: string;
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Supported URL patterns by media type for the provider.
|
|
26
|
+
*
|
|
27
|
+
* The keys are media type patterns or full media types (e.g. `*\/*` for everything, `audio/*`, `video/*`, or `application/pdf`).
|
|
28
|
+
* and the values are arrays of regular expressions that match the URL paths.
|
|
29
|
+
*
|
|
30
|
+
* The matching should be against lower-case URLs.
|
|
31
|
+
*
|
|
32
|
+
* Matched URLs are supported natively by the model and are not downloaded.
|
|
33
|
+
*
|
|
34
|
+
* @returns A map of supported URL patterns by media type (as a promise or a plain object).
|
|
35
|
+
*/
|
|
36
|
+
supportedUrls:
|
|
37
|
+
| PromiseLike<Record<string, RegExp[]>>
|
|
38
|
+
| Record<string, RegExp[]>;
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Generates a language model output (non-streaming).
|
|
42
|
+
|
|
43
|
+
* Naming: "do" prefix to prevent accidental direct usage of the method
|
|
44
|
+
* by the user.
|
|
45
|
+
*/
|
|
46
|
+
doGenerate(
|
|
47
|
+
options: LanguageModelV3CallOptions,
|
|
48
|
+
): PromiseLike<LanguageModelV3GenerateResult>;
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Generates a language model output (streaming).
|
|
52
|
+
*
|
|
53
|
+
* Naming: "do" prefix to prevent accidental direct usage of the method
|
|
54
|
+
* by the user.
|
|
55
|
+
*
|
|
56
|
+
* @return A stream of higher-level language model output parts.
|
|
57
|
+
*/
|
|
58
|
+
doStream(
|
|
59
|
+
options: LanguageModelV3CallOptions,
|
|
60
|
+
): PromiseLike<LanguageModelV3StreamResult>;
|
|
61
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './language-model-v2-middleware';
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { LanguageModelV2 } from '../../language-model/v2/language-model-v2';
|
|
2
|
+
import { LanguageModelV2CallOptions } from '../../language-model/v2/language-model-v2-call-options';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Experimental middleware for LanguageModelV2.
|
|
6
|
+
* This type defines the structure for middleware that can be used to modify
|
|
7
|
+
* the behavior of LanguageModelV2 operations.
|
|
8
|
+
*/
|
|
9
|
+
export type LanguageModelV2Middleware = {
|
|
10
|
+
/**
|
|
11
|
+
* Middleware specification version. Use `v2` for the current version.
|
|
12
|
+
*/
|
|
13
|
+
middlewareVersion?: 'v2' | undefined; // backwards compatibility
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Override the provider name if desired.
|
|
17
|
+
* @param options.model - The language model instance.
|
|
18
|
+
*/
|
|
19
|
+
overrideProvider?: (options: { model: LanguageModelV2 }) => string;
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Override the model ID if desired.
|
|
23
|
+
* @param options.model - The language model instance.
|
|
24
|
+
*/
|
|
25
|
+
overrideModelId?: (options: { model: LanguageModelV2 }) => string;
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Override the supported URLs if desired.
|
|
29
|
+
* @param options.model - The language model instance.
|
|
30
|
+
*/
|
|
31
|
+
overrideSupportedUrls?: (options: {
|
|
32
|
+
model: LanguageModelV2;
|
|
33
|
+
}) => PromiseLike<Record<string, RegExp[]>> | Record<string, RegExp[]>;
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Transforms the parameters before they are passed to the language model.
|
|
37
|
+
* @param options - Object containing the type of operation and the parameters.
|
|
38
|
+
* @param options.type - The type of operation ('generate' or 'stream').
|
|
39
|
+
* @param options.params - The original parameters for the language model call.
|
|
40
|
+
* @returns A promise that resolves to the transformed parameters.
|
|
41
|
+
*/
|
|
42
|
+
transformParams?: (options: {
|
|
43
|
+
type: 'generate' | 'stream';
|
|
44
|
+
params: LanguageModelV2CallOptions;
|
|
45
|
+
model: LanguageModelV2;
|
|
46
|
+
}) => PromiseLike<LanguageModelV2CallOptions>;
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Wraps the generate operation of the language model.
|
|
50
|
+
* @param options - Object containing the generate function, parameters, and model.
|
|
51
|
+
* @param options.doGenerate - The original generate function.
|
|
52
|
+
* @param options.doStream - The original stream function.
|
|
53
|
+
* @param options.params - The parameters for the generate call. If the
|
|
54
|
+
* `transformParams` middleware is used, this will be the transformed parameters.
|
|
55
|
+
* @param options.model - The language model instance.
|
|
56
|
+
* @returns A promise that resolves to the result of the generate operation.
|
|
57
|
+
*/
|
|
58
|
+
wrapGenerate?: (options: {
|
|
59
|
+
doGenerate: () => ReturnType<LanguageModelV2['doGenerate']>;
|
|
60
|
+
doStream: () => ReturnType<LanguageModelV2['doStream']>;
|
|
61
|
+
params: LanguageModelV2CallOptions;
|
|
62
|
+
model: LanguageModelV2;
|
|
63
|
+
}) => Promise<Awaited<ReturnType<LanguageModelV2['doGenerate']>>>;
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Wraps the stream operation of the language model.
|
|
67
|
+
*
|
|
68
|
+
* @param options - Object containing the stream function, parameters, and model.
|
|
69
|
+
* @param options.doGenerate - The original generate function.
|
|
70
|
+
* @param options.doStream - The original stream function.
|
|
71
|
+
* @param options.params - The parameters for the stream call. If the
|
|
72
|
+
* `transformParams` middleware is used, this will be the transformed parameters.
|
|
73
|
+
* @param options.model - The language model instance.
|
|
74
|
+
* @returns A promise that resolves to the result of the stream operation.
|
|
75
|
+
*/
|
|
76
|
+
wrapStream?: (options: {
|
|
77
|
+
doGenerate: () => ReturnType<LanguageModelV2['doGenerate']>;
|
|
78
|
+
doStream: () => ReturnType<LanguageModelV2['doStream']>;
|
|
79
|
+
params: LanguageModelV2CallOptions;
|
|
80
|
+
model: LanguageModelV2;
|
|
81
|
+
}) => PromiseLike<Awaited<ReturnType<LanguageModelV2['doStream']>>>;
|
|
82
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './language-model-v3-middleware';
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { LanguageModelV3 } from '../../language-model/v3/language-model-v3';
|
|
2
|
+
import { LanguageModelV3CallOptions } from '../../language-model/v3/language-model-v3-call-options';
|
|
3
|
+
import { LanguageModelV3GenerateResult } from '../../language-model/v3/language-model-v3-generate-result';
|
|
4
|
+
import { LanguageModelV3StreamResult } from '../../language-model/v3/language-model-v3-stream-result';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Experimental middleware for LanguageModelV3.
|
|
8
|
+
* This type defines the structure for middleware that can be used to modify
|
|
9
|
+
* the behavior of LanguageModelV3 operations.
|
|
10
|
+
*/
|
|
11
|
+
export type LanguageModelV3Middleware = {
|
|
12
|
+
/**
|
|
13
|
+
* Middleware specification version. Use `v3` for the current version.
|
|
14
|
+
*/
|
|
15
|
+
readonly specificationVersion: 'v3';
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Override the provider name if desired.
|
|
19
|
+
* @param options.model - The language model instance.
|
|
20
|
+
*/
|
|
21
|
+
overrideProvider?: (options: { model: LanguageModelV3 }) => string;
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Override the model ID if desired.
|
|
25
|
+
* @param options.model - The language model instance.
|
|
26
|
+
*/
|
|
27
|
+
overrideModelId?: (options: { model: LanguageModelV3 }) => string;
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Override the supported URLs if desired.
|
|
31
|
+
* @param options.model - The language model instance.
|
|
32
|
+
*/
|
|
33
|
+
overrideSupportedUrls?: (options: {
|
|
34
|
+
model: LanguageModelV3;
|
|
35
|
+
}) => PromiseLike<Record<string, RegExp[]>> | Record<string, RegExp[]>;
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Transforms the parameters before they are passed to the language model.
|
|
39
|
+
* @param options - Object containing the type of operation and the parameters.
|
|
40
|
+
* @param options.type - The type of operation ('generate' or 'stream').
|
|
41
|
+
* @param options.params - The original parameters for the language model call.
|
|
42
|
+
* @returns A promise that resolves to the transformed parameters.
|
|
43
|
+
*/
|
|
44
|
+
transformParams?: (options: {
|
|
45
|
+
type: 'generate' | 'stream';
|
|
46
|
+
params: LanguageModelV3CallOptions;
|
|
47
|
+
model: LanguageModelV3;
|
|
48
|
+
}) => PromiseLike<LanguageModelV3CallOptions>;
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Wraps the generate operation of the language model.
|
|
52
|
+
* @param options - Object containing the generate function, parameters, and model.
|
|
53
|
+
* @param options.doGenerate - The original generate function.
|
|
54
|
+
* @param options.doStream - The original stream function.
|
|
55
|
+
* @param options.params - The parameters for the generate call. If the
|
|
56
|
+
* `transformParams` middleware is used, this will be the transformed parameters.
|
|
57
|
+
* @param options.model - The language model instance.
|
|
58
|
+
* @returns A promise that resolves to the result of the generate operation.
|
|
59
|
+
*/
|
|
60
|
+
wrapGenerate?: (options: {
|
|
61
|
+
doGenerate: () => PromiseLike<LanguageModelV3GenerateResult>;
|
|
62
|
+
doStream: () => PromiseLike<LanguageModelV3StreamResult>;
|
|
63
|
+
params: LanguageModelV3CallOptions;
|
|
64
|
+
model: LanguageModelV3;
|
|
65
|
+
}) => PromiseLike<LanguageModelV3GenerateResult>;
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Wraps the stream operation of the language model.
|
|
69
|
+
*
|
|
70
|
+
* @param options - Object containing the stream function, parameters, and model.
|
|
71
|
+
* @param options.doGenerate - The original generate function.
|
|
72
|
+
* @param options.doStream - The original stream function.
|
|
73
|
+
* @param options.params - The parameters for the stream call. If the
|
|
74
|
+
* `transformParams` middleware is used, this will be the transformed parameters.
|
|
75
|
+
* @param options.model - The language model instance.
|
|
76
|
+
* @returns A promise that resolves to the result of the stream operation.
|
|
77
|
+
*/
|
|
78
|
+
wrapStream?: (options: {
|
|
79
|
+
doGenerate: () => PromiseLike<LanguageModelV3GenerateResult>;
|
|
80
|
+
doStream: () => PromiseLike<LanguageModelV3StreamResult>;
|
|
81
|
+
params: LanguageModelV3CallOptions;
|
|
82
|
+
model: LanguageModelV3;
|
|
83
|
+
}) => PromiseLike<LanguageModelV3StreamResult>;
|
|
84
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type { ProviderV2 } from './provider-v2';
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { EmbeddingModelV2 } from '../../embedding-model/v2/embedding-model-v2';
|
|
2
|
+
import { ImageModelV2 } from '../../image-model/v2/image-model-v2';
|
|
3
|
+
import { LanguageModelV2 } from '../../language-model/v2/language-model-v2';
|
|
4
|
+
import { SpeechModelV2 } from '../../speech-model/v2/speech-model-v2';
|
|
5
|
+
import { TranscriptionModelV2 } from '../../transcription-model/v2/transcription-model-v2';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Provider for language, text embedding, and image generation models.
|
|
9
|
+
*/
|
|
10
|
+
export interface ProviderV2 {
|
|
11
|
+
/**
|
|
12
|
+
Returns the language model with the given id.
|
|
13
|
+
The model id is then passed to the provider function to get the model.
|
|
14
|
+
|
|
15
|
+
@param {string} modelId - The id of the model to return.
|
|
16
|
+
|
|
17
|
+
@returns {LanguageModel} The language model associated with the id
|
|
18
|
+
|
|
19
|
+
@throws {NoSuchModelError} If no such model exists.
|
|
20
|
+
*/
|
|
21
|
+
languageModel(modelId: string): LanguageModelV2;
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
Returns the text embedding model with the given id.
|
|
25
|
+
The model id is then passed to the provider function to get the model.
|
|
26
|
+
|
|
27
|
+
@param {string} modelId - The id of the model to return.
|
|
28
|
+
|
|
29
|
+
@returns {LanguageModel} The language model associated with the id
|
|
30
|
+
|
|
31
|
+
@throws {NoSuchModelError} If no such model exists.
|
|
32
|
+
*/
|
|
33
|
+
textEmbeddingModel(modelId: string): EmbeddingModelV2<string>;
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
Returns the image model with the given id.
|
|
37
|
+
The model id is then passed to the provider function to get the model.
|
|
38
|
+
|
|
39
|
+
@param {string} modelId - The id of the model to return.
|
|
40
|
+
|
|
41
|
+
@returns {ImageModel} The image model associated with the id
|
|
42
|
+
*/
|
|
43
|
+
imageModel(modelId: string): ImageModelV2;
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
Returns the transcription model with the given id.
|
|
47
|
+
The model id is then passed to the provider function to get the model.
|
|
48
|
+
|
|
49
|
+
@param {string} modelId - The id of the model to return.
|
|
50
|
+
|
|
51
|
+
@returns {TranscriptionModel} The transcription model associated with the id
|
|
52
|
+
*/
|
|
53
|
+
transcriptionModel?(modelId: string): TranscriptionModelV2;
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
Returns the speech model with the given id.
|
|
57
|
+
The model id is then passed to the provider function to get the model.
|
|
58
|
+
|
|
59
|
+
@param {string} modelId - The id of the model to return.
|
|
60
|
+
|
|
61
|
+
@returns {SpeechModel} The speech model associated with the id
|
|
62
|
+
*/
|
|
63
|
+
speechModel?(modelId: string): SpeechModelV2;
|
|
64
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type { ProviderV3 } from './provider-v3';
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { EmbeddingModelV3 } from '../../embedding-model/v3/embedding-model-v3';
|
|
2
|
+
import { ImageModelV3 } from '../../image-model/v3/image-model-v3';
|
|
3
|
+
import { LanguageModelV3 } from '../../language-model/v3/language-model-v3';
|
|
4
|
+
import { RerankingModelV3 } from '../../reranking-model/v3/reranking-model-v3';
|
|
5
|
+
import { SpeechModelV3 } from '../../speech-model/v3/speech-model-v3';
|
|
6
|
+
import { TranscriptionModelV3 } from '../../transcription-model/v3/transcription-model-v3';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Provider for language, text embedding, and image generation models.
|
|
10
|
+
*/
|
|
11
|
+
export interface ProviderV3 {
|
|
12
|
+
readonly specificationVersion: 'v3';
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
Returns the language model with the given id.
|
|
16
|
+
The model id is then passed to the provider function to get the model.
|
|
17
|
+
|
|
18
|
+
@param {string} modelId - The id of the model to return.
|
|
19
|
+
|
|
20
|
+
@returns {LanguageModel} The language model associated with the id
|
|
21
|
+
|
|
22
|
+
@throws {NoSuchModelError} If no such model exists.
|
|
23
|
+
*/
|
|
24
|
+
languageModel(modelId: string): LanguageModelV3;
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
Returns the text embedding model with the given id.
|
|
28
|
+
The model id is then passed to the provider function to get the model.
|
|
29
|
+
|
|
30
|
+
@param {string} modelId - The id of the model to return.
|
|
31
|
+
|
|
32
|
+
@returns {LanguageModel} The language model associated with the id
|
|
33
|
+
|
|
34
|
+
@throws {NoSuchModelError} If no such model exists.
|
|
35
|
+
*/
|
|
36
|
+
embeddingModel(modelId: string): EmbeddingModelV3;
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
Returns the text embedding model with the given id.
|
|
40
|
+
The model id is then passed to the provider function to get the model.
|
|
41
|
+
|
|
42
|
+
@param {string} modelId - The id of the model to return.
|
|
43
|
+
|
|
44
|
+
@returns {EmbeddingModel} The embedding model associated with the id
|
|
45
|
+
|
|
46
|
+
@throws {NoSuchModelError} If no such model exists.
|
|
47
|
+
|
|
48
|
+
@deprecated Use `embeddingModel` instead.
|
|
49
|
+
*/
|
|
50
|
+
textEmbeddingModel?(modelId: string): EmbeddingModelV3;
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
Returns the image model with the given id.
|
|
54
|
+
The model id is then passed to the provider function to get the model.
|
|
55
|
+
|
|
56
|
+
@param {string} modelId - The id of the model to return.
|
|
57
|
+
|
|
58
|
+
@returns {ImageModel} The image model associated with the id
|
|
59
|
+
*/
|
|
60
|
+
imageModel(modelId: string): ImageModelV3;
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
Returns the transcription model with the given id.
|
|
64
|
+
The model id is then passed to the provider function to get the model.
|
|
65
|
+
|
|
66
|
+
@param {string} modelId - The id of the model to return.
|
|
67
|
+
|
|
68
|
+
@returns {TranscriptionModel} The transcription model associated with the id
|
|
69
|
+
*/
|
|
70
|
+
transcriptionModel?(modelId: string): TranscriptionModelV3;
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
Returns the speech model with the given id.
|
|
74
|
+
The model id is then passed to the provider function to get the model.
|
|
75
|
+
|
|
76
|
+
@param {string} modelId - The id of the model to return.
|
|
77
|
+
|
|
78
|
+
@returns {SpeechModel} The speech model associated with the id
|
|
79
|
+
*/
|
|
80
|
+
speechModel?(modelId: string): SpeechModelV3;
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
Returns the reranking model with the given id.
|
|
84
|
+
The model id is then passed to the provider function to get the model.
|
|
85
|
+
|
|
86
|
+
@param {string} modelId - The id of the model to return.
|
|
87
|
+
|
|
88
|
+
@returns {RerankingModel} The reranking model associated with the id
|
|
89
|
+
|
|
90
|
+
@throws {NoSuchModelError} If no such model exists.
|
|
91
|
+
*/
|
|
92
|
+
rerankingModel?(modelId: string): RerankingModelV3;
|
|
93
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './v3/index';
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { JSONObject } from '../../json-value';
|
|
2
|
+
import { SharedV3Headers, SharedV3ProviderOptions } from '../../shared/v3';
|
|
3
|
+
|
|
4
|
+
export type RerankingModelV3CallOptions = {
|
|
5
|
+
/**
|
|
6
|
+
* Documents to rerank.
|
|
7
|
+
* Either a list of texts or a list of JSON objects.
|
|
8
|
+
*/
|
|
9
|
+
documents:
|
|
10
|
+
| { type: 'text'; values: string[] }
|
|
11
|
+
| { type: 'object'; values: JSONObject[] };
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* The query is a string that represents the query to rerank the documents against.
|
|
15
|
+
*/
|
|
16
|
+
query: string;
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Optional limit returned documents to the top n documents.
|
|
20
|
+
*/
|
|
21
|
+
topN?: number;
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Abort signal for cancelling the operation.
|
|
25
|
+
*/
|
|
26
|
+
abortSignal?: AbortSignal;
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Additional provider-specific options. They are passed through
|
|
30
|
+
* to the provider from the AI SDK and enable provider-specific
|
|
31
|
+
* functionality that can be fully encapsulated in the provider.
|
|
32
|
+
*/
|
|
33
|
+
providerOptions?: SharedV3ProviderOptions;
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Additional HTTP headers to be sent with the request.
|
|
37
|
+
* Only applicable for HTTP-based providers.
|
|
38
|
+
*/
|
|
39
|
+
headers?: SharedV3Headers;
|
|
40
|
+
};
|