Files
bigwo/test2/server/tests/quick_test_viking.js
User 9567eb7358 feat(server): KB prompt优化、字幕修复、S2S重连、助手配置API
- assistantProfileConfig: KB answer prompt改为分层策略(严格产品信息+灵活常识补充)
- nativeVoiceGateway: S2S upstream自动重连(最多50次)、event 351字幕debounce(800ms取最长文本)
- toolExecutor: 确定性query改写增强、KB查询传递session上下文
- contextKeywordTracker: 支持KB话题记忆优先enrichment
- contentSafeGuard: 新增品牌安全内容过滤服务
- assistantProfileService: 新增助手配置CRUD服务
- routes/assistantProfile: 新增助手配置API路由
- knowledgeKeywords: 扩展KB关键词词典
- fastAsrCorrector: ASR纠错规则更新
- tests/: KB prompt测试、保护窗口测试、Viking性能测试
- docs/: 助手配置API文档、系统提示词目录
2026-03-24 17:19:36 +08:00

60 lines
1.9 KiB
JavaScript

const path = require('path');
const VikingRetrievalPerformanceTester = require('./viking_retrieval_performance');
require('dotenv').config({ path: path.join(__dirname, '../.env') });
async function main() {
const args = process.argv.slice(2);
const testType = args[0] || 'full';
const tester = new VikingRetrievalPerformanceTester();
const testQueries = [
{ name: 'Product Query - Xiaohong', query: '小红产品有什么功效' },
{ name: 'Product Query - Dabai', query: '大白产品怎么吃' },
{ name: 'Company Info', query: '德国PM公司介绍' },
{ name: 'NTC Technology', query: 'NTC营养保送系统原理' },
{ name: 'Hot Answer', query: '基础三合一怎么吃' },
{ name: 'No Hit Query', query: '今天天气怎么样' }
];
switch (testType) {
case 'latency':
console.log('Running latency test only...');
await tester.warmup(testQueries.map(q => q.query));
await tester.testLatency(testQueries, 5);
tester.printSummary();
tester.saveReport('latency_test.json');
break;
case 'cache':
console.log('Running cache efficiency test only...');
await tester.warmup(testQueries.map(q => q.query));
await tester.testCacheEfficiency(testQueries.slice(0, 3), 5);
tester.printSummary();
tester.saveReport('cache_test.json');
break;
case 'concurrency':
console.log('Running concurrency test only...');
await tester.warmup(testQueries.map(q => q.query));
await tester.testConcurrency(testQueries.slice(0, 3), [1, 2, 3, 5]);
tester.printSummary();
tester.saveReport('concurrency_test.json');
break;
case 'full':
default:
console.log('Running full performance test suite...');
await tester.runFullSuite();
break;
}
console.log('\nTest completed!');
}
main().catch(err => {
console.error('Test failed:', err);
process.exit(1);
});