Skip to content

Commit 5a21310

Browse files
authored
fix (ai/core): use ai types on custom provider to prevent ts error (#4763)
1 parent 0345e59 commit 5a21310

File tree

2 files changed

+18
-19
lines changed

2 files changed

+18
-19
lines changed

.changeset/late-birds-laugh.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'ai': patch
3+
---
4+
5+
fix (ai/core): use ai types on custom provider to prevent ts error

packages/ai/core/registry/custom-provider.ts

+13-19
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,21 @@
1-
import {
2-
EmbeddingModelV1,
3-
LanguageModelV1,
4-
ImageModelV1,
5-
ProviderV1,
6-
} from '@ai-sdk/provider';
7-
import { Provider } from '../types';
8-
import { NoSuchModelError } from '@ai-sdk/provider';
1+
import { NoSuchModelError, ProviderV1 } from '@ai-sdk/provider';
2+
import { EmbeddingModel, ImageModel, LanguageModel, Provider } from '../types';
93

104
/**
115
* Creates a custom provider with specified language models, text embedding models, and an optional fallback provider.
126
*
137
* @param {Object} options - The options for creating the custom provider.
14-
* @param {Record<string, LanguageModelV1>} [options.languageModels] - A record of language models, where keys are model IDs and values are LanguageModelV1 instances.
15-
* @param {Record<string, EmbeddingModelV1<string>>} [options.textEmbeddingModels] - A record of text embedding models, where keys are model IDs and values are EmbeddingModelV1<string> instances.
8+
* @param {Record<string, LanguageModel>} [options.languageModels] - A record of language models, where keys are model IDs and values are LanguageModel instances.
9+
* @param {Record<string, EmbeddingModel<string>>} [options.textEmbeddingModels] - A record of text embedding models, where keys are model IDs and values are EmbeddingModel<string> instances.
1610
* @param {Provider} [options.fallbackProvider] - An optional fallback provider to use when a requested model is not found in the custom provider.
1711
* @returns {Provider} A Provider object with languageModel and textEmbeddingModel methods.
1812
*
1913
* @throws {NoSuchModelError} Throws when a requested model is not found and no fallback provider is available.
2014
*/
2115
export function customProvider<
22-
LANGUAGE_MODELS extends Record<string, LanguageModelV1>,
23-
EMBEDDING_MODELS extends Record<string, EmbeddingModelV1<string>>,
24-
IMAGE_MODELS extends Record<string, ImageModelV1>,
16+
LANGUAGE_MODELS extends Record<string, LanguageModel>,
17+
EMBEDDING_MODELS extends Record<string, EmbeddingModel<string>>,
18+
IMAGE_MODELS extends Record<string, ImageModel>,
2519
>({
2620
languageModels,
2721
textEmbeddingModels,
@@ -33,14 +27,14 @@ export function customProvider<
3327
imageModels?: IMAGE_MODELS;
3428
fallbackProvider?: ProviderV1;
3529
}): Provider & {
36-
languageModel(modelId: ExtractModelId<LANGUAGE_MODELS>): LanguageModelV1;
30+
languageModel(modelId: ExtractModelId<LANGUAGE_MODELS>): LanguageModel;
3731
textEmbeddingModel(
3832
modelId: ExtractModelId<EMBEDDING_MODELS>,
39-
): EmbeddingModelV1<string>;
40-
imageModel(modelId: ExtractModelId<IMAGE_MODELS>): ImageModelV1;
33+
): EmbeddingModel<string>;
34+
imageModel(modelId: ExtractModelId<IMAGE_MODELS>): ImageModel;
4135
} {
4236
return {
43-
languageModel(modelId: ExtractModelId<LANGUAGE_MODELS>): LanguageModelV1 {
37+
languageModel(modelId: ExtractModelId<LANGUAGE_MODELS>): LanguageModel {
4438
if (languageModels != null && modelId in languageModels) {
4539
return languageModels[modelId];
4640
}
@@ -54,7 +48,7 @@ export function customProvider<
5448

5549
textEmbeddingModel(
5650
modelId: ExtractModelId<EMBEDDING_MODELS>,
57-
): EmbeddingModelV1<string> {
51+
): EmbeddingModel<string> {
5852
if (textEmbeddingModels != null && modelId in textEmbeddingModels) {
5953
return textEmbeddingModels[modelId];
6054
}
@@ -66,7 +60,7 @@ export function customProvider<
6660
throw new NoSuchModelError({ modelId, modelType: 'textEmbeddingModel' });
6761
},
6862

69-
imageModel(modelId: ExtractModelId<IMAGE_MODELS>): ImageModelV1 {
63+
imageModel(modelId: ExtractModelId<IMAGE_MODELS>): ImageModel {
7064
if (imageModels != null && modelId in imageModels) {
7165
return imageModels[modelId];
7266
}

0 commit comments

Comments
 (0)