UNPKG

aisapi

Version:

A JavaScript/TypeScript API library for multiple AI providers

111 lines 5.31 kB
"use strict"; /** * 中国AI大模型提供商综合示例 * * 此示例展示如何在同一个应用中使用多个中国AI大模型提供商, * 并对比它们对相同问题的回答。 * * 运行此示例前,请确保设置环境变量: * MOONSHOT_API_KEY=your_moonshot_api_key * SPARK_API_KEY=your_spark_api_key * SPARK_APP_ID=your_spark_app_id * SPARK_API_SECRET=your_spark_secret * ZHIPU_API_KEY=your_zhipu_api_key * ERNIE_API_KEY=your_ernie_api_key * ERNIE_SECRET_KEY=your_ernie_secret_key */ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); const moonshot_1 = require("./providers/moonshot"); const spark_1 = require("./providers/spark"); const zhipu_1 = require("./providers/zhipu"); const ernie_1 = require("./providers/ernie"); // 定义测试问题 const TEST_QUESTIONS = [ '人工智能在未来十年可能对社会产生哪些影响?', '如何评价中国在大语言模型领域的发展和创新?', '请用中文和英文解释量子计算的基本原理' ]; function main() { return __awaiter(this, void 0, void 0, function* () { var _a, _b; // 创建各提供商实例 const providers = { 'Moonshot (Kimi)': new moonshot_1.MoonshotProvider({ apiKey: process.env.MOONSHOT_API_KEY, model: 'moonshot-v1-8k' }), '讯飞星火': new spark_1.SparkProvider({ apiKey: process.env.SPARK_API_KEY, appId: process.env.SPARK_APP_ID, apiSecret: process.env.SPARK_API_SECRET, model: spark_1.SparkModel.PRO }), '智谱AI (GLM)': new zhipu_1.ZhipuProvider({ apiKey: process.env.ZHIPU_API_KEY, model: zhipu_1.ZhipuModel.GLM_3_TURBO }), '百度文心一言': new ernie_1.ErnieProvider({ apiKey: process.env.ERNIE_API_KEY, secretKey: process.env.ERNIE_SECRET_KEY, model: ernie_1.ErnieModel.ERNIE_BOT }) }; try { // 统一生成参数 const params = { maxTokens: 300, temperature: 0.7, systemMessage: '你是一个专业、客观、有见解的AI助手。请提供准确、有深度的回答。' }; // 测试每个问题 for (const question of TEST_QUESTIONS) { console.log(`\n====== 问题: ${question} ======\n`); // 对每个提供商获取回答 for (const [providerName, provider] of Object.entries(providers)) { console.log(`--- ${providerName} 的回答 ---`); try { const startTime = Date.now(); const response = yield provider.generateText(Object.assign(Object.assign({}, params), { prompt: question })); const elapsedTime = Date.now() - startTime; console.log(response.text); console.log(`\n[耗时: ${elapsedTime}ms | Token使用: ${((_a = response.usage) === null || _a === void 0 ? void 0 : _a.totalTokens) || 'unknown'}]\n`); } catch (error) { console.error(`${providerName} 响应错误:`, error); } } } // JSON格式测试 console.log('\n====== JSON格式响应测试 ======\n'); console.log('各提供商回答问题: 列出中国主要的大语言模型公司及其主要产品'); for (const [providerName, provider] of Object.entries(providers)) { console.log(`\n--- ${providerName} 的JSON响应 ---`); try { const response = yield ((_b = provider.generateJSON) === null || _b === void 0 ? void 0 : _b.call(provider, { prompt: '列出中国主要的大语言模型公司及其主要产品,以JSON格式返回,包括公司名称、产品名称、发布时间等信息', temperature: 0.2 })); console.log(JSON.stringify(response, null, 2)); } catch (error) { console.error(`${providerName} JSON响应错误:`, error); } } } catch (error) { console.error('执行过程中发生错误:', error); } }); } // 执行主函数 main().catch(console.error); //# sourceMappingURL=example-chinese-providers.js.map