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

171 lines (170 loc) 5.35 kB
"use strict"; /** * ERNIE AI Provider 基础使用示例 * * 运行前请确保设置环境变量: * QIANFAN_API_KEY=your-api-key */ Object.defineProperty(exports, "__esModule", { value: true }); exports.basicTextGeneration = basicTextGeneration; exports.streamingTextGeneration = streamingTextGeneration; exports.multiTurnConversation = multiTurnConversation; exports.customParametersExample = customParametersExample; exports.modelComparisonExample = modelComparisonExample; const index_1 = require("../src/index"); const ai_1 = require("ai"); /** * 基础文本生成示例 */ async function basicTextGeneration() { console.log('=== 基础文本生成 ==='); try { const { text } = await (0, ai_1.generateText)({ model: (0, index_1.ernie)('ernie-4.0-8k'), prompt: '请用中文写一个关于人工智能发展历程的简短介绍,大约200字。', }); console.log('生成的文本:'); console.log(text); } catch (error) { console.error('生成文本时出错:', error); } } /** * 流式文本生成示例 */ async function streamingTextGeneration() { console.log('\n=== 流式文本生成 ==='); try { const { textStream } = await (0, ai_1.streamText)({ model: (0, index_1.ernie)('ernie-4.0-8k'), prompt: '请详细解释什么是机器学习,包括其主要类型和应用场景。', }); console.log('流式输出:'); for await (const delta of textStream) { process.stdout.write(delta); } console.log('\n'); } catch (error) { console.error('流式生成时出错:', error); } } /** * 多轮对话示例 */ async function multiTurnConversation() { console.log('\n=== 多轮对话 ==='); try { const { text: response1 } = await (0, ai_1.generateText)({ model: (0, index_1.ernie)('ernie-4.0-8k'), messages: [ { role: 'system', content: '你是一个友好的AI助手,擅长回答技术问题。', }, { role: 'user', content: '什么是深度学习?', }, ], }); console.log('第一轮回答:'); console.log(response1); const { text: response2 } = await (0, ai_1.generateText)({ model: (0, index_1.ernie)('ernie-4.0-8k'), messages: [ { role: 'system', content: '你是一个友好的AI助手,擅长回答技术问题。', }, { role: 'user', content: '什么是深度学习?', }, { role: 'assistant', content: response1, }, { role: 'user', content: '能给我举个具体的应用例子吗?', }, ], }); console.log('\n第二轮回答:'); console.log(response2); } catch (error) { console.error('多轮对话时出错:', error); } } /** * 自定义参数示例 */ async function customParametersExample() { console.log('\n=== 自定义参数示例 ==='); try { const { text } = await (0, ai_1.generateText)({ model: (0, index_1.ernie)('ernie-4.0-8k', { temperature: 0.7, maxTokens: 500, topP: 0.9, penaltyScore: 1.1, }), prompt: '请创作一首关于春天的现代诗,要求有创意和想象力。', }); console.log('创作的诗歌:'); console.log(text); } catch (error) { console.error('自定义参数生成时出错:', error); } } /** * 不同模型对比示例 */ async function modelComparisonExample() { console.log('\n=== 不同模型对比 ==='); const prompt = '请用一句话解释什么是区块链技术。'; const models = ['ernie-4.0-8k', 'ernie-3.5-8k', 'ernie-lite-8k']; for (const modelId of models) { try { console.log(`\n使用模型: ${modelId}`); const { text } = await (0, ai_1.generateText)({ model: (0, index_1.ernie)(modelId), prompt, }); console.log(`回答: ${text}`); } catch (error) { console.error(`模型 ${modelId} 生成时出错:`, error); } } } /** * 主函数 - 运行所有示例 */ async function main() { console.log('ERNIE AI Provider 示例程序\n'); // 检查环境变量 if (!process.env.QIANFAN_API_KEY) { console.error('错误: 请设置 QIANFAN_API_KEY 环境变量'); process.exit(1); } try { await basicTextGeneration(); await streamingTextGeneration(); await multiTurnConversation(); await customParametersExample(); await modelComparisonExample(); console.log('\n所有示例运行完成!'); } catch (error) { console.error('运行示例时出错:', error); } } // 如果直接运行此文件,则执行主函数 if (require.main === module) { main(); }