UNPKG

ernie-ai-provider

Version:

Community-built ERNIE AI Provider for Vercel AI SDK - Integrate Baidu's ERNIE models with Vercel's AI application framework

72 lines (71 loc) 2.42 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ErnieChatLanguageModel = exports.ernie = void 0; exports.createErnie = createErnie; const provider_utils_1 = require("@ai-sdk/provider-utils"); const ernie_chat_language_model_1 = require("./ernie-chat-language-model"); // 千帆API现在直接使用API Key进行认证,无需获取访问令牌 /** * 创建 ERNIE 提供商实例 * * @param options 提供商配置选项 * @returns ERNIE 提供商实例 * * @example * ```typescript * import { createErnie } from 'ernie-ai-provider'; * * const ernie = createErnie({ * apiKey: 'your-api-key', * }); * * const model = ernie('ernie-4.0-8k'); * ``` */ function createErnie(options = {}) { const apiKey = (0, provider_utils_1.loadApiKey)({ apiKey: options.apiKey, environmentVariableName: 'QIANFAN_API_KEY', description: 'ERNIE API Key', }); const getHeaders = () => { return { 'Content-Type': 'application/json', Authorization: `Bearer ${apiKey}`, ...options.headers, }; }; const createModel = (modelId, settings = {}) => new ernie_chat_language_model_1.ErnieChatLanguageModel(modelId, settings, { provider: 'ernie.chat', baseURL: (0, provider_utils_1.withoutTrailingSlash)(options.baseURL) ?? 'https://qianfan.baidubce.com/v2', headers: getHeaders, fetch: options.fetch, generateId: options.generateId ?? provider_utils_1.generateId, }); const provider = function (modelId, settings) { if (new.target) { throw new Error('模型工厂函数不能使用 new 关键字调用。'); } return createModel(modelId, settings); }; provider.chat = createModel; return provider; } /** * 默认的 ERNIE 提供商实例 * 使用环境变量中的 API 密钥 * * @example * ```typescript * import { ernie } from 'ernie-ai-provider'; * import { generateText } from 'ai'; * * const { text } = await generateText({ * model: ernie('ernie-4.0-8k'), * prompt: '你好,请介绍一下你自己', * }); * ``` */ exports.ernie = createErnie(); var ernie_chat_language_model_2 = require("./ernie-chat-language-model"); Object.defineProperty(exports, "ErnieChatLanguageModel", { enumerable: true, get: function () { return ernie_chat_language_model_2.ErnieChatLanguageModel; } });