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
JavaScript
;
/**
* 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();
}