codebridge-ai
Version:
Complete fullstack AI coding platform with AST-based code integration and local LLM support. Now with comprehensive web technology support (HTML/CSS/JS) plus JavaScript, Python, Rust, and C++.
120 lines (100 loc) • 3.51 kB
JavaScript
/**
* 빠른 모델 테스트 실행기 - JavaScript만 테스트
*/
const fs = require('fs').promises;
const path = require('path');
const OllamaCodeBridge = require('../integrations/ollama-integration');
async function runQuickTest() {
console.log('🚀 빠른 JavaScript 테스트 시작\n');
const models = ['deepseek-coder:6.7b', 'starcoder2:3b'];
// 간단한 JavaScript 테스트 케이스
const testCase = {
originalCode: `
function calculateDiscount(price, discountPercent) {
return price - (price * discountPercent / 100);
}`,
task: "Add input validation and error handling"
};
const results = [];
for (const model of models) {
console.log(`\n🤖 테스트 중: ${model}`);
console.log('-'.repeat(50));
try {
const ollamaCodeBridge = new OllamaCodeBridge({
model,
temperature: 0.3
});
const startTime = Date.now();
const result = await ollamaCodeBridge.improveCode(
testCase.originalCode,
testCase.task,
{ debug: true }
);
const duration = Date.now() - startTime;
const testResult = {
timestamp: new Date().toISOString(),
model,
success: result.success,
duration,
originalCode: testCase.originalCode,
task: testCase.task,
rawResponse: result.rawResponse,
improvedSnippet: result.improvedSnippet,
finalCode: result.finalCode,
error: result.error
};
results.push(testResult);
if (result.success) {
console.log(`✅ 성공! (${duration}ms)`);
console.log('\n--- 최종 결과 ---');
console.log(result.finalCode);
} else {
console.log(`❌ 실패: ${result.error}`);
}
// 개별 결과 저장
const modelDir = model.replace(':', '-');
const logDir = path.join(__dirname, modelDir, 'javascript');
await fs.mkdir(logDir, { recursive: true });
const logFile = path.join(logDir, `quick-test-${Date.now()}.json`);
await fs.writeFile(logFile, JSON.stringify(testResult, null, 2));
console.log(`💾 로그 저장: ${logFile}`);
} catch (error) {
console.error(`💥 오류: ${error.message}`);
results.push({
timestamp: new Date().toISOString(),
model,
success: false,
error: error.message
});
}
}
// 비교 결과 요약
console.log('\n📊 테스트 요약');
console.log('='.repeat(60));
for (const result of results) {
console.log(`\n${result.model}:`);
console.log(` 성공: ${result.success ? '✅' : '❌'}`);
if (result.success) {
console.log(` 응답 시간: ${result.duration}ms`);
console.log(` 코드 길이: ${result.finalCode?.length || 0} 문자`);
} else {
console.log(` 오류: ${result.error}`);
}
}
// 종합 결과 저장
const summaryPath = path.join(__dirname, 'comparison-reports', `quick-test-${Date.now()}.json`);
await fs.mkdir(path.dirname(summaryPath), { recursive: true });
await fs.writeFile(summaryPath, JSON.stringify({
testType: 'quick-javascript-test',
timestamp: new Date().toISOString(),
testCase,
results
}, null, 2));
console.log(`\n💾 종합 결과 저장: ${summaryPath}`);
console.log('\n✅ 빠른 테스트 완료!');
}
// 실행
if (require.main === module) {
runQuickTest().catch(console.error);
}
module.exports = runQuickTest;