@ai-sdk/openai-compatible 0.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/CHANGELOG.md +7 -0
- package/LICENSE +13 -0
- package/README.md +82 -0
- package/dist/index.d.mts +170 -0
- package/dist/index.d.ts +170 -0
- package/dist/index.js +1075 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +1074 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +63 -0
package/CHANGELOG.md
ADDED
package/LICENSE
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
Copyright 2023 Vercel, Inc.
|
2
|
+
|
3
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
you may not use this file except in compliance with the License.
|
5
|
+
You may obtain a copy of the License at
|
6
|
+
|
7
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
|
9
|
+
Unless required by applicable law or agreed to in writing, software
|
10
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
See the License for the specific language governing permissions and
|
13
|
+
limitations under the License.
|
package/README.md
ADDED
@@ -0,0 +1,82 @@
|
|
1
|
+
# AI SDK - OpenAI Compatible Provider
|
2
|
+
|
3
|
+
This package provides a foundation for implementing providers that expose an OpenAI-compatible API.
|
4
|
+
|
5
|
+
The primary [OpenAI provider](../openai/README.md) is more feature-rich, including OpenAI-specific experimental and legacy features. This package offers a lighter-weight alternative focused on core OpenAI-compatible functionality.
|
6
|
+
|
7
|
+
## Setup
|
8
|
+
|
9
|
+
The provider is available in the `@ai-sdk/openai-compatible` module. You can install it with
|
10
|
+
|
11
|
+
```bash
|
12
|
+
npm i @ai-sdk/openai-compatible
|
13
|
+
```
|
14
|
+
|
15
|
+
## Provider Instance
|
16
|
+
|
17
|
+
You can import the provider creation method `createOpenAICompatible` from `@ai-sdk/openai-compatible`:
|
18
|
+
|
19
|
+
```ts
|
20
|
+
import { createOpenAICompatible } from '@ai-sdk/openai-compatible';
|
21
|
+
```
|
22
|
+
|
23
|
+
## Example
|
24
|
+
|
25
|
+
```ts
|
26
|
+
import { createOpenAICompatible } from '@ai-sdk/openai-compatible';
|
27
|
+
import { generateText } from 'ai';
|
28
|
+
|
29
|
+
const { text } = await generateText({
|
30
|
+
model: createOpenAICompatible({
|
31
|
+
baseURL: 'https://api.example.com/v1',
|
32
|
+
name: 'example',
|
33
|
+
headers: {
|
34
|
+
Authorization: `Bearer ${process.env.MY_API_KEY}`,
|
35
|
+
},
|
36
|
+
}).chatModel('meta-llama/Llama-3-70b-chat-hf'),
|
37
|
+
prompt: 'Write a vegetarian lasagna recipe for 4 people.',
|
38
|
+
});
|
39
|
+
```
|
40
|
+
|
41
|
+
### Including model ids for auto-completion
|
42
|
+
|
43
|
+
```ts
|
44
|
+
import { createOpenAICompatible } from '@ai-sdk/openai-compatible';
|
45
|
+
import { generateText } from 'ai';
|
46
|
+
|
47
|
+
type ExampleChatModelIds =
|
48
|
+
| 'meta-llama/Llama-3-70b-chat-hf'
|
49
|
+
| 'meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo'
|
50
|
+
| (string & {});
|
51
|
+
|
52
|
+
type ExampleCompletionModelIds =
|
53
|
+
| 'codellama/CodeLlama-34b-Instruct-hf'
|
54
|
+
| 'Qwen/Qwen2.5-Coder-32B-Instruct'
|
55
|
+
| (string & {});
|
56
|
+
|
57
|
+
type ExampleEmbeddingModelIds =
|
58
|
+
| 'BAAI/bge-large-en-v1.5'
|
59
|
+
| 'bert-base-uncased'
|
60
|
+
| (string & {});
|
61
|
+
|
62
|
+
const model = createOpenAICompatible<
|
63
|
+
ExampleChatModelIds,
|
64
|
+
ExampleCompletionModelIds,
|
65
|
+
ExampleEmbeddingModelIds
|
66
|
+
>({
|
67
|
+
baseURL: 'https://api.example.com/v1',
|
68
|
+
name: 'example',
|
69
|
+
headers: {
|
70
|
+
Authorization: `Bearer ${process.env.MY_API_KEY}`,
|
71
|
+
},
|
72
|
+
});
|
73
|
+
|
74
|
+
// Subsequent calls to e.g. `model.chatModel` will auto-complete the model id
|
75
|
+
// from the list of `ExampleChatModelIds` while still allowing free-form
|
76
|
+
// strings as well.
|
77
|
+
|
78
|
+
const { text } = await generateText({
|
79
|
+
model: model.chatModel('meta-llama/Llama-3-70b-chat-hf'),
|
80
|
+
prompt: 'Write a vegetarian lasagna recipe for 4 people.',
|
81
|
+
});
|
82
|
+
```
|
package/dist/index.d.mts
ADDED
@@ -0,0 +1,170 @@
|
|
1
|
+
import { ProviderV1, LanguageModelV1, EmbeddingModelV1, LanguageModelV1ObjectGenerationMode } from '@ai-sdk/provider';
|
2
|
+
import { FetchFunction } from '@ai-sdk/provider-utils';
|
3
|
+
|
4
|
+
type OpenAICompatibleChatModelId = string;
|
5
|
+
interface OpenAICompatibleChatSettings {
|
6
|
+
/**
|
7
|
+
A unique identifier representing your end-user, which can help the provider to
|
8
|
+
monitor and detect abuse.
|
9
|
+
*/
|
10
|
+
user?: string;
|
11
|
+
}
|
12
|
+
|
13
|
+
type OpenAICompatibleCompletionModelId = string;
|
14
|
+
interface OpenAICompatibleCompletionSettings {
|
15
|
+
/**
|
16
|
+
Echo back the prompt in addition to the completion.
|
17
|
+
*/
|
18
|
+
echo?: boolean;
|
19
|
+
/**
|
20
|
+
Modify the likelihood of specified tokens appearing in the completion.
|
21
|
+
|
22
|
+
Accepts a JSON object that maps tokens (specified by their token ID in
|
23
|
+
the GPT tokenizer) to an associated bias value from -100 to 100. You
|
24
|
+
can use this tokenizer tool to convert text to token IDs. Mathematically,
|
25
|
+
the bias is added to the logits generated by the model prior to sampling.
|
26
|
+
The exact effect will vary per model, but values between -1 and 1 should
|
27
|
+
decrease or increase likelihood of selection; values like -100 or 100
|
28
|
+
should result in a ban or exclusive selection of the relevant token.
|
29
|
+
|
30
|
+
As an example, you can pass {"50256": -100} to prevent the <|endoftext|>
|
31
|
+
token from being generated.
|
32
|
+
*/
|
33
|
+
logitBias?: Record<number, number>;
|
34
|
+
/**
|
35
|
+
The suffix that comes after a completion of inserted text.
|
36
|
+
*/
|
37
|
+
suffix?: string;
|
38
|
+
/**
|
39
|
+
A unique identifier representing your end-user, which can help OpenAI to
|
40
|
+
monitor and detect abuse. Learn more.
|
41
|
+
*/
|
42
|
+
user?: string;
|
43
|
+
}
|
44
|
+
|
45
|
+
type OpenAICompatibleEmbeddingModelId = string;
|
46
|
+
interface OpenAICompatibleEmbeddingSettings {
|
47
|
+
/**
|
48
|
+
The number of dimensions the resulting output embeddings should have.
|
49
|
+
Only supported in text-embedding-3 and later models.
|
50
|
+
*/
|
51
|
+
dimensions?: number;
|
52
|
+
/**
|
53
|
+
A unique identifier representing your end-user, which can help OpenAI to
|
54
|
+
monitor and detect abuse. Learn more.
|
55
|
+
*/
|
56
|
+
user?: string;
|
57
|
+
}
|
58
|
+
|
59
|
+
interface OpenAICompatibleProvider<CHAT_MODEL_IDS extends string = string, COMPLETION_MODEL_IDS extends string = string, EMBEDDING_MODEL_IDS extends string = string> extends ProviderV1 {
|
60
|
+
(modelId: CHAT_MODEL_IDS, settings?: OpenAICompatibleChatSettings): LanguageModelV1;
|
61
|
+
languageModel(modelId: CHAT_MODEL_IDS, settings?: OpenAICompatibleChatSettings): LanguageModelV1;
|
62
|
+
chatModel(modelId: CHAT_MODEL_IDS, settings?: OpenAICompatibleChatSettings): LanguageModelV1;
|
63
|
+
completionModel(modelId: COMPLETION_MODEL_IDS, settings?: OpenAICompatibleCompletionSettings): LanguageModelV1;
|
64
|
+
textEmbeddingModel(modelId: EMBEDDING_MODEL_IDS, settings?: OpenAICompatibleEmbeddingSettings): EmbeddingModelV1<string>;
|
65
|
+
}
|
66
|
+
interface OpenAICompatibleProviderSettings {
|
67
|
+
/**
|
68
|
+
Base URL for the API calls.
|
69
|
+
*/
|
70
|
+
baseURL?: string;
|
71
|
+
/**
|
72
|
+
Custom headers to include in the requests.
|
73
|
+
*/
|
74
|
+
headers?: Record<string, string>;
|
75
|
+
/**
|
76
|
+
Custom fetch implementation. You can use it as a middleware to intercept requests,
|
77
|
+
or to provide a custom fetch implementation for e.g. testing.
|
78
|
+
*/
|
79
|
+
fetch?: FetchFunction;
|
80
|
+
/**
|
81
|
+
Provider name.
|
82
|
+
*/
|
83
|
+
name?: string;
|
84
|
+
}
|
85
|
+
/**
|
86
|
+
Create an OpenAICompatible provider instance.
|
87
|
+
*/
|
88
|
+
declare function createOpenAICompatible<CHAT_MODEL_IDS extends string, COMPLETION_MODEL_IDS extends string, EMBEDDING_MODEL_IDS extends string>(options: OpenAICompatibleProviderSettings): OpenAICompatibleProvider<CHAT_MODEL_IDS, COMPLETION_MODEL_IDS, EMBEDDING_MODEL_IDS>;
|
89
|
+
|
90
|
+
type OpenAICompatibleChatConfig = {
|
91
|
+
provider: string;
|
92
|
+
headers: () => Record<string, string | undefined>;
|
93
|
+
url: (options: {
|
94
|
+
modelId: string;
|
95
|
+
path: string;
|
96
|
+
}) => string;
|
97
|
+
fetch?: FetchFunction;
|
98
|
+
/**
|
99
|
+
Default object generation mode that should be used with this model when
|
100
|
+
no mode is specified. Should be the mode with the best results for this
|
101
|
+
model. `undefined` can be specified if object generation is not supported.
|
102
|
+
*/
|
103
|
+
defaultObjectGenerationMode?: LanguageModelV1ObjectGenerationMode;
|
104
|
+
};
|
105
|
+
declare class OpenAICompatibleChatLanguageModel implements LanguageModelV1 {
|
106
|
+
readonly specificationVersion = "v1";
|
107
|
+
readonly supportsStructuredOutputs = false;
|
108
|
+
readonly modelId: OpenAICompatibleChatModelId;
|
109
|
+
readonly settings: OpenAICompatibleChatSettings;
|
110
|
+
private readonly config;
|
111
|
+
constructor(modelId: OpenAICompatibleChatModelId, settings: OpenAICompatibleChatSettings, config: OpenAICompatibleChatConfig);
|
112
|
+
get defaultObjectGenerationMode(): 'json' | 'tool' | undefined;
|
113
|
+
get provider(): string;
|
114
|
+
private getArgs;
|
115
|
+
doGenerate(options: Parameters<LanguageModelV1['doGenerate']>[0]): Promise<Awaited<ReturnType<LanguageModelV1['doGenerate']>>>;
|
116
|
+
doStream(options: Parameters<LanguageModelV1['doStream']>[0]): Promise<Awaited<ReturnType<LanguageModelV1['doStream']>>>;
|
117
|
+
}
|
118
|
+
|
119
|
+
type OpenAICompatibleCompletionConfig = {
|
120
|
+
provider: string;
|
121
|
+
headers: () => Record<string, string | undefined>;
|
122
|
+
url: (options: {
|
123
|
+
modelId: string;
|
124
|
+
path: string;
|
125
|
+
}) => string;
|
126
|
+
fetch?: FetchFunction;
|
127
|
+
};
|
128
|
+
declare class OpenAICompatibleCompletionLanguageModel implements LanguageModelV1 {
|
129
|
+
readonly specificationVersion = "v1";
|
130
|
+
readonly defaultObjectGenerationMode: undefined;
|
131
|
+
readonly modelId: OpenAICompatibleCompletionModelId;
|
132
|
+
readonly settings: OpenAICompatibleCompletionSettings;
|
133
|
+
private readonly config;
|
134
|
+
constructor(modelId: OpenAICompatibleCompletionModelId, settings: OpenAICompatibleCompletionSettings, config: OpenAICompatibleCompletionConfig);
|
135
|
+
get provider(): string;
|
136
|
+
private getArgs;
|
137
|
+
doGenerate(options: Parameters<LanguageModelV1['doGenerate']>[0]): Promise<Awaited<ReturnType<LanguageModelV1['doGenerate']>>>;
|
138
|
+
doStream(options: Parameters<LanguageModelV1['doStream']>[0]): Promise<Awaited<ReturnType<LanguageModelV1['doStream']>>>;
|
139
|
+
}
|
140
|
+
|
141
|
+
type OpenAICompatibleEmbeddingConfig = {
|
142
|
+
/**
|
143
|
+
Override the maximum number of embeddings per call.
|
144
|
+
*/
|
145
|
+
maxEmbeddingsPerCall?: number;
|
146
|
+
/**
|
147
|
+
Override the parallelism of embedding calls.
|
148
|
+
*/
|
149
|
+
supportsParallelCalls?: boolean;
|
150
|
+
provider: string;
|
151
|
+
url: (options: {
|
152
|
+
modelId: string;
|
153
|
+
path: string;
|
154
|
+
}) => string;
|
155
|
+
headers: () => Record<string, string | undefined>;
|
156
|
+
fetch?: FetchFunction;
|
157
|
+
};
|
158
|
+
declare class OpenAICompatibleEmbeddingModel implements EmbeddingModelV1<string> {
|
159
|
+
readonly specificationVersion = "v1";
|
160
|
+
readonly modelId: OpenAICompatibleEmbeddingModelId;
|
161
|
+
private readonly config;
|
162
|
+
private readonly settings;
|
163
|
+
get provider(): string;
|
164
|
+
get maxEmbeddingsPerCall(): number;
|
165
|
+
get supportsParallelCalls(): boolean;
|
166
|
+
constructor(modelId: OpenAICompatibleEmbeddingModelId, settings: OpenAICompatibleEmbeddingSettings, config: OpenAICompatibleEmbeddingConfig);
|
167
|
+
doEmbed({ values, headers, abortSignal, }: Parameters<EmbeddingModelV1<string>['doEmbed']>[0]): Promise<Awaited<ReturnType<EmbeddingModelV1<string>['doEmbed']>>>;
|
168
|
+
}
|
169
|
+
|
170
|
+
export { OpenAICompatibleChatLanguageModel, type OpenAICompatibleChatSettings, OpenAICompatibleCompletionLanguageModel, type OpenAICompatibleCompletionSettings, OpenAICompatibleEmbeddingModel, type OpenAICompatibleEmbeddingSettings, type OpenAICompatibleProvider, type OpenAICompatibleProviderSettings, createOpenAICompatible };
|
package/dist/index.d.ts
ADDED
@@ -0,0 +1,170 @@
|
|
1
|
+
import { ProviderV1, LanguageModelV1, EmbeddingModelV1, LanguageModelV1ObjectGenerationMode } from '@ai-sdk/provider';
|
2
|
+
import { FetchFunction } from '@ai-sdk/provider-utils';
|
3
|
+
|
4
|
+
type OpenAICompatibleChatModelId = string;
|
5
|
+
interface OpenAICompatibleChatSettings {
|
6
|
+
/**
|
7
|
+
A unique identifier representing your end-user, which can help the provider to
|
8
|
+
monitor and detect abuse.
|
9
|
+
*/
|
10
|
+
user?: string;
|
11
|
+
}
|
12
|
+
|
13
|
+
type OpenAICompatibleCompletionModelId = string;
|
14
|
+
interface OpenAICompatibleCompletionSettings {
|
15
|
+
/**
|
16
|
+
Echo back the prompt in addition to the completion.
|
17
|
+
*/
|
18
|
+
echo?: boolean;
|
19
|
+
/**
|
20
|
+
Modify the likelihood of specified tokens appearing in the completion.
|
21
|
+
|
22
|
+
Accepts a JSON object that maps tokens (specified by their token ID in
|
23
|
+
the GPT tokenizer) to an associated bias value from -100 to 100. You
|
24
|
+
can use this tokenizer tool to convert text to token IDs. Mathematically,
|
25
|
+
the bias is added to the logits generated by the model prior to sampling.
|
26
|
+
The exact effect will vary per model, but values between -1 and 1 should
|
27
|
+
decrease or increase likelihood of selection; values like -100 or 100
|
28
|
+
should result in a ban or exclusive selection of the relevant token.
|
29
|
+
|
30
|
+
As an example, you can pass {"50256": -100} to prevent the <|endoftext|>
|
31
|
+
token from being generated.
|
32
|
+
*/
|
33
|
+
logitBias?: Record<number, number>;
|
34
|
+
/**
|
35
|
+
The suffix that comes after a completion of inserted text.
|
36
|
+
*/
|
37
|
+
suffix?: string;
|
38
|
+
/**
|
39
|
+
A unique identifier representing your end-user, which can help OpenAI to
|
40
|
+
monitor and detect abuse. Learn more.
|
41
|
+
*/
|
42
|
+
user?: string;
|
43
|
+
}
|
44
|
+
|
45
|
+
type OpenAICompatibleEmbeddingModelId = string;
|
46
|
+
interface OpenAICompatibleEmbeddingSettings {
|
47
|
+
/**
|
48
|
+
The number of dimensions the resulting output embeddings should have.
|
49
|
+
Only supported in text-embedding-3 and later models.
|
50
|
+
*/
|
51
|
+
dimensions?: number;
|
52
|
+
/**
|
53
|
+
A unique identifier representing your end-user, which can help OpenAI to
|
54
|
+
monitor and detect abuse. Learn more.
|
55
|
+
*/
|
56
|
+
user?: string;
|
57
|
+
}
|
58
|
+
|
59
|
+
interface OpenAICompatibleProvider<CHAT_MODEL_IDS extends string = string, COMPLETION_MODEL_IDS extends string = string, EMBEDDING_MODEL_IDS extends string = string> extends ProviderV1 {
|
60
|
+
(modelId: CHAT_MODEL_IDS, settings?: OpenAICompatibleChatSettings): LanguageModelV1;
|
61
|
+
languageModel(modelId: CHAT_MODEL_IDS, settings?: OpenAICompatibleChatSettings): LanguageModelV1;
|
62
|
+
chatModel(modelId: CHAT_MODEL_IDS, settings?: OpenAICompatibleChatSettings): LanguageModelV1;
|
63
|
+
completionModel(modelId: COMPLETION_MODEL_IDS, settings?: OpenAICompatibleCompletionSettings): LanguageModelV1;
|
64
|
+
textEmbeddingModel(modelId: EMBEDDING_MODEL_IDS, settings?: OpenAICompatibleEmbeddingSettings): EmbeddingModelV1<string>;
|
65
|
+
}
|
66
|
+
interface OpenAICompatibleProviderSettings {
|
67
|
+
/**
|
68
|
+
Base URL for the API calls.
|
69
|
+
*/
|
70
|
+
baseURL?: string;
|
71
|
+
/**
|
72
|
+
Custom headers to include in the requests.
|
73
|
+
*/
|
74
|
+
headers?: Record<string, string>;
|
75
|
+
/**
|
76
|
+
Custom fetch implementation. You can use it as a middleware to intercept requests,
|
77
|
+
or to provide a custom fetch implementation for e.g. testing.
|
78
|
+
*/
|
79
|
+
fetch?: FetchFunction;
|
80
|
+
/**
|
81
|
+
Provider name.
|
82
|
+
*/
|
83
|
+
name?: string;
|
84
|
+
}
|
85
|
+
/**
|
86
|
+
Create an OpenAICompatible provider instance.
|
87
|
+
*/
|
88
|
+
declare function createOpenAICompatible<CHAT_MODEL_IDS extends string, COMPLETION_MODEL_IDS extends string, EMBEDDING_MODEL_IDS extends string>(options: OpenAICompatibleProviderSettings): OpenAICompatibleProvider<CHAT_MODEL_IDS, COMPLETION_MODEL_IDS, EMBEDDING_MODEL_IDS>;
|
89
|
+
|
90
|
+
type OpenAICompatibleChatConfig = {
|
91
|
+
provider: string;
|
92
|
+
headers: () => Record<string, string | undefined>;
|
93
|
+
url: (options: {
|
94
|
+
modelId: string;
|
95
|
+
path: string;
|
96
|
+
}) => string;
|
97
|
+
fetch?: FetchFunction;
|
98
|
+
/**
|
99
|
+
Default object generation mode that should be used with this model when
|
100
|
+
no mode is specified. Should be the mode with the best results for this
|
101
|
+
model. `undefined` can be specified if object generation is not supported.
|
102
|
+
*/
|
103
|
+
defaultObjectGenerationMode?: LanguageModelV1ObjectGenerationMode;
|
104
|
+
};
|
105
|
+
declare class OpenAICompatibleChatLanguageModel implements LanguageModelV1 {
|
106
|
+
readonly specificationVersion = "v1";
|
107
|
+
readonly supportsStructuredOutputs = false;
|
108
|
+
readonly modelId: OpenAICompatibleChatModelId;
|
109
|
+
readonly settings: OpenAICompatibleChatSettings;
|
110
|
+
private readonly config;
|
111
|
+
constructor(modelId: OpenAICompatibleChatModelId, settings: OpenAICompatibleChatSettings, config: OpenAICompatibleChatConfig);
|
112
|
+
get defaultObjectGenerationMode(): 'json' | 'tool' | undefined;
|
113
|
+
get provider(): string;
|
114
|
+
private getArgs;
|
115
|
+
doGenerate(options: Parameters<LanguageModelV1['doGenerate']>[0]): Promise<Awaited<ReturnType<LanguageModelV1['doGenerate']>>>;
|
116
|
+
doStream(options: Parameters<LanguageModelV1['doStream']>[0]): Promise<Awaited<ReturnType<LanguageModelV1['doStream']>>>;
|
117
|
+
}
|
118
|
+
|
119
|
+
type OpenAICompatibleCompletionConfig = {
|
120
|
+
provider: string;
|
121
|
+
headers: () => Record<string, string | undefined>;
|
122
|
+
url: (options: {
|
123
|
+
modelId: string;
|
124
|
+
path: string;
|
125
|
+
}) => string;
|
126
|
+
fetch?: FetchFunction;
|
127
|
+
};
|
128
|
+
declare class OpenAICompatibleCompletionLanguageModel implements LanguageModelV1 {
|
129
|
+
readonly specificationVersion = "v1";
|
130
|
+
readonly defaultObjectGenerationMode: undefined;
|
131
|
+
readonly modelId: OpenAICompatibleCompletionModelId;
|
132
|
+
readonly settings: OpenAICompatibleCompletionSettings;
|
133
|
+
private readonly config;
|
134
|
+
constructor(modelId: OpenAICompatibleCompletionModelId, settings: OpenAICompatibleCompletionSettings, config: OpenAICompatibleCompletionConfig);
|
135
|
+
get provider(): string;
|
136
|
+
private getArgs;
|
137
|
+
doGenerate(options: Parameters<LanguageModelV1['doGenerate']>[0]): Promise<Awaited<ReturnType<LanguageModelV1['doGenerate']>>>;
|
138
|
+
doStream(options: Parameters<LanguageModelV1['doStream']>[0]): Promise<Awaited<ReturnType<LanguageModelV1['doStream']>>>;
|
139
|
+
}
|
140
|
+
|
141
|
+
type OpenAICompatibleEmbeddingConfig = {
|
142
|
+
/**
|
143
|
+
Override the maximum number of embeddings per call.
|
144
|
+
*/
|
145
|
+
maxEmbeddingsPerCall?: number;
|
146
|
+
/**
|
147
|
+
Override the parallelism of embedding calls.
|
148
|
+
*/
|
149
|
+
supportsParallelCalls?: boolean;
|
150
|
+
provider: string;
|
151
|
+
url: (options: {
|
152
|
+
modelId: string;
|
153
|
+
path: string;
|
154
|
+
}) => string;
|
155
|
+
headers: () => Record<string, string | undefined>;
|
156
|
+
fetch?: FetchFunction;
|
157
|
+
};
|
158
|
+
declare class OpenAICompatibleEmbeddingModel implements EmbeddingModelV1<string> {
|
159
|
+
readonly specificationVersion = "v1";
|
160
|
+
readonly modelId: OpenAICompatibleEmbeddingModelId;
|
161
|
+
private readonly config;
|
162
|
+
private readonly settings;
|
163
|
+
get provider(): string;
|
164
|
+
get maxEmbeddingsPerCall(): number;
|
165
|
+
get supportsParallelCalls(): boolean;
|
166
|
+
constructor(modelId: OpenAICompatibleEmbeddingModelId, settings: OpenAICompatibleEmbeddingSettings, config: OpenAICompatibleEmbeddingConfig);
|
167
|
+
doEmbed({ values, headers, abortSignal, }: Parameters<EmbeddingModelV1<string>['doEmbed']>[0]): Promise<Awaited<ReturnType<EmbeddingModelV1<string>['doEmbed']>>>;
|
168
|
+
}
|
169
|
+
|
170
|
+
export { OpenAICompatibleChatLanguageModel, type OpenAICompatibleChatSettings, OpenAICompatibleCompletionLanguageModel, type OpenAICompatibleCompletionSettings, OpenAICompatibleEmbeddingModel, type OpenAICompatibleEmbeddingSettings, type OpenAICompatibleProvider, type OpenAICompatibleProviderSettings, createOpenAICompatible };
|