zhipu-ai-provider
Version:
Vercel AI Custom Provider for Services from Zhipu
82 lines (77 loc) • 3.17 kB
text/typescript
import { ProviderV1, LanguageModelV1, EmbeddingModelV1 } from '@ai-sdk/provider';
import { FetchFunction } from '@ai-sdk/provider-utils';
type ZhipuChatModelId = "glm-4-plus" | "glm-4-air-0111" | "glm-4-air" | "glm-4-airx" | "glm-4-long" | "glm-4-flash" | "glm-4-flashx" | "glm-4v-plus-0111" | "glm-4v-plus" | "glm-4v" | "glm-4v-flash" | "glm-zero-preview" | (string & {});
interface ZhipuChatSettings {
/**
* The unique ID of the end user, helps the platform intervene in illegal activities, generate illegal or improper information, or other abuse by the end user.
* ID length requirement: at least 6 characters, up to 128 characters.
*/
userId?: string;
/**
* The unique ID of the request, passed by the user side, must be unique;
* The platform will generate one by default if not provided by the user side.
*/
requestId?: string;
/**
* When do_sample is true, sampling strategy is enabled, when do_sample is false, the sampling strategy temperature, top_p will not take effect
*/
doSample?: boolean;
}
type ZhipuEmbeddingModelId = "embedding-2" | "embedding-3" | (string & {});
interface ZhipuEmbeddingSettings {
/**
* Override the embedding dimension, defaults to 2048.
* 256, 512, 1024 or 2048 are recommended for embedding-3.
*/
dimensions?: number;
}
interface ZhipuProvider extends ProviderV1 {
(modelId: ZhipuChatModelId, settings?: ZhipuChatSettings): LanguageModelV1;
/**
Creates a model for text generation.
*/
languageModel(modelId: ZhipuChatModelId, settings?: ZhipuChatSettings): LanguageModelV1;
/**
Creates a model for text generation.
*/
chat(modelId: ZhipuChatModelId, settings?: ZhipuChatSettings): LanguageModelV1;
/**
@deprecated Use `textEmbeddingModel()` instead.
*/
embedding(modelId: ZhipuEmbeddingModelId, settings?: ZhipuEmbeddingSettings): EmbeddingModelV1<string>;
/**
@deprecated Use `textEmbeddingModel()` instead.
*/
textEmbedding(modelId: ZhipuEmbeddingModelId, settings?: ZhipuEmbeddingSettings): EmbeddingModelV1<string>;
textEmbeddingModel: (modelId: ZhipuEmbeddingModelId, settings?: ZhipuEmbeddingSettings) => EmbeddingModelV1<string>;
}
interface ZhipuProviderSettings {
/**
Use a different URL prefix for API calls, e.g. to use proxy servers.
The default prefix is `https://open.bigmodel.cn/api/paas/v4`.
*/
baseURL?: string;
/**
API key that is being send using the `Authorization` header.
It defaults to the `ZHIPU_API_KEY` environment variable.
*/
apiKey?: string;
/**
Custom headers to include in the requests.
*/
headers?: Record<string, string>;
/**
Custom fetch implementation. You can use it as a middleware to intercept requests,
or to provide a custom fetch implementation for e.g. testing.
*/
fetch?: FetchFunction;
}
/**
Create a Zhipu AI provider instance.
*/
declare function createZhipu(options?: ZhipuProviderSettings): ZhipuProvider;
/**
Default Zhipu provider instance.
*/
declare const zhipu: ZhipuProvider;
export { type ZhipuProvider, type ZhipuProviderSettings, createZhipu, zhipu };