#!/usr/bin/env node
/**
* Test all Saptiva models
*/
import { config } from 'dotenv';
config();
const SAPTIVA_API_KEY = process.env.SAPTIVA_API_KEY;
const SAPTIVA_BASE_URL = process.env.SAPTIVA_BASE_URL || "https://api.saptiva.com";
const MODELS = [
'Saptiva Turbo',
'Saptiva Cortex',
'Saptiva Ops',
'Saptiva Legacy',
'Saptiva KAL',
];
async function testModel(model) {
console.log(`\nTesting: ${model}`);
console.log('-'.repeat(40));
try {
const response = await fetch(`${SAPTIVA_BASE_URL}/v1/chat/completions`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${SAPTIVA_API_KEY}`,
},
body: JSON.stringify({
model,
messages: [{ role: 'user', content: 'Say hello in one sentence.' }],
max_tokens: 100,
}),
});
if (!response.ok) {
const text = await response.text();
console.log(`❌ FAILED: ${response.status} - ${text.substring(0, 100)}`);
return { model, status: 'failed', error: response.status };
}
const json = await response.json();
const content = json.choices?.[0]?.message?.content || 'No content';
const hasReasoning = !!json.choices?.[0]?.message?.reasoning_content;
console.log(`✅ SUCCESS`);
console.log(` Response: ${content.substring(0, 80)}`);
console.log(` Has reasoning: ${hasReasoning}`);
console.log(` Tokens: ${json.usage?.total_tokens}`);
return { model, status: 'success', hasReasoning };
} catch (err) {
console.log(`❌ ERROR: ${err.message}`);
return { model, status: 'error', error: err.message };
}
}
async function main() {
console.log('='.repeat(50));
console.log('Testing All Saptiva Models');
console.log('='.repeat(50));
const results = [];
for (const model of MODELS) {
const result = await testModel(model);
results.push(result);
}
console.log('\n' + '='.repeat(50));
console.log('SUMMARY');
console.log('='.repeat(50));
for (const r of results) {
const icon = r.status === 'success' ? '✅' : '❌';
console.log(`${icon} ${r.model}: ${r.status}${r.hasReasoning ? ' (has reasoning)' : ''}`);
}
}
main();