UNPKG

zhipu-ai-provider

Version:

Vercel AI Custom Provider for Services from Zhipu

82 lines (77 loc) 3.17 kB
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 };