92 lines
3.5 KiB
TypeScript
92 lines
3.5 KiB
TypeScript
|
|
/**
|
||
|
|
* 测试豆包 API 连接
|
||
|
|
*/
|
||
|
|
|
||
|
|
import OpenAI from 'openai';
|
||
|
|
|
||
|
|
const DOUBAO_API_KEY = process.env.DOUBAO_API_KEY || '79250955-70db-4f84-a3be-dada39a62b1f';
|
||
|
|
const DOUBAO_BASE_URL = 'https://ark.cn-beijing.volces.com/api/v3';
|
||
|
|
const DOUBAO_MODEL = 'doubao-seed-1-6-lite-251015';
|
||
|
|
|
||
|
|
const openai = new OpenAI({
|
||
|
|
apiKey: DOUBAO_API_KEY,
|
||
|
|
baseURL: DOUBAO_BASE_URL,
|
||
|
|
});
|
||
|
|
|
||
|
|
async function testDoubaoAPI() {
|
||
|
|
console.log('═══════════════════════════════════════════════════════════');
|
||
|
|
console.log(' 🧪 测试豆包 API 连接');
|
||
|
|
console.log('═══════════════════════════════════════════════════════════');
|
||
|
|
console.log('');
|
||
|
|
console.log(`API Key: ${DOUBAO_API_KEY.substring(0, 20)}...`);
|
||
|
|
console.log(`Base URL: ${DOUBAO_BASE_URL}`);
|
||
|
|
console.log(`Model: ${DOUBAO_MODEL}`);
|
||
|
|
console.log('');
|
||
|
|
|
||
|
|
try {
|
||
|
|
console.log('📤 发送测试请求...');
|
||
|
|
const startTime = Date.now();
|
||
|
|
|
||
|
|
const response = await openai.chat.completions.create({
|
||
|
|
model: DOUBAO_MODEL,
|
||
|
|
messages: [
|
||
|
|
{
|
||
|
|
role: 'system',
|
||
|
|
content: '你是一个专业的AI助手。',
|
||
|
|
},
|
||
|
|
{
|
||
|
|
role: 'user',
|
||
|
|
content: '请用一句话介绍你自己。',
|
||
|
|
},
|
||
|
|
],
|
||
|
|
max_tokens: 100,
|
||
|
|
temperature: 0.7,
|
||
|
|
});
|
||
|
|
|
||
|
|
const duration = Date.now() - startTime;
|
||
|
|
const content = response.choices[0]?.message?.content;
|
||
|
|
|
||
|
|
console.log('✅ API 调用成功!');
|
||
|
|
console.log('');
|
||
|
|
console.log('📊 响应信息:');
|
||
|
|
console.log(` 响应时间: ${duration}ms`);
|
||
|
|
console.log(` 使用 Token: ${response.usage?.total_tokens || 'N/A'}`);
|
||
|
|
console.log(` 模型: ${response.model || DOUBAO_MODEL}`);
|
||
|
|
console.log('');
|
||
|
|
console.log('💬 AI 回复:');
|
||
|
|
console.log(` ${content}`);
|
||
|
|
console.log('');
|
||
|
|
console.log('═══════════════════════════════════════════════════════════');
|
||
|
|
console.log(' ✅ 豆包 API 测试通过!');
|
||
|
|
console.log('═══════════════════════════════════════════════════════════');
|
||
|
|
|
||
|
|
return true;
|
||
|
|
} catch (error: any) {
|
||
|
|
console.error('❌ API 调用失败!');
|
||
|
|
console.error('');
|
||
|
|
console.error('错误信息:');
|
||
|
|
console.error(` 类型: ${error.constructor.name}`);
|
||
|
|
console.error(` 消息: ${error.message}`);
|
||
|
|
if (error.response) {
|
||
|
|
console.error(` 状态码: ${error.response.status}`);
|
||
|
|
console.error(` 响应: ${JSON.stringify(error.response.data, null, 2)}`);
|
||
|
|
}
|
||
|
|
console.error('');
|
||
|
|
console.error('═══════════════════════════════════════════════════════════');
|
||
|
|
console.error(' ❌ 豆包 API 测试失败!');
|
||
|
|
console.error('═══════════════════════════════════════════════════════════');
|
||
|
|
|
||
|
|
return false;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
// 执行测试
|
||
|
|
testDoubaoAPI()
|
||
|
|
.then((success) => {
|
||
|
|
process.exit(success ? 0 : 1);
|
||
|
|
})
|
||
|
|
.catch((error) => {
|
||
|
|
console.error('未预期的错误:', error);
|
||
|
|
process.exit(1);
|
||
|
|
});
|