chore: align infrastructure with server
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
/**
|
||||
* Тест стабильных OpenRouter моделей (Laguna & Nemotron)
|
||||
* Запуск: node scripts/test_openrouter.cjs
|
||||
*/
|
||||
require('dotenv').config()
|
||||
|
||||
const OPENROUTER_BASE_URL = 'https://openrouter.ai/api/v1/chat/completions'
|
||||
|
||||
const MODELS = {
|
||||
laguna: 'poolside/laguna-m.1:free',
|
||||
nemotron: 'nvidia/nemotron-3-super-120b-a12b:free',
|
||||
}
|
||||
|
||||
const LABELS = {
|
||||
laguna: '🏊 Laguna M.1 (Claude)',
|
||||
nemotron: '🔬 Nemotron Super 120B (NVIDIA)',
|
||||
}
|
||||
|
||||
async function testModel(key, modelId) {
|
||||
const apiKey = process.env.OPEN_ROUTER_API_KEY || process.env.NUXT_OPEN_ROUTER_API_KEY
|
||||
if (!apiKey) throw new Error('OPEN_ROUTER_API_KEY not set in .env')
|
||||
|
||||
const start = Date.now()
|
||||
try {
|
||||
const res = await fetch(OPENROUTER_BASE_URL, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Authorization': `Bearer ${apiKey}`,
|
||||
'Content-Type': 'application/json',
|
||||
'HTTP-Referer': 'https://a-crm.controlsystem.kz',
|
||||
'X-Title': 'XFlow AI Test',
|
||||
},
|
||||
body: JSON.stringify({
|
||||
model: modelId,
|
||||
messages: [
|
||||
{ role: 'system', content: 'You are a helpful assistant. Reply briefly.' },
|
||||
{ role: 'user', content: 'Say "OK" and your model name in one short sentence.' },
|
||||
],
|
||||
stream: false,
|
||||
}),
|
||||
})
|
||||
const data = await res.json()
|
||||
const elapsed = ((Date.now() - start) / 1000).toFixed(1)
|
||||
|
||||
if (!res.ok) {
|
||||
console.log(` ❌ ${LABELS[key]} — HTTP ${res.status}: ${data?.error?.message || JSON.stringify(data)}`)
|
||||
return
|
||||
}
|
||||
|
||||
const content = data?.choices?.[0]?.message?.content || '(empty)'
|
||||
console.log(` ✅ ${LABELS[key]} (${elapsed}s): ${content.trim().slice(0, 120)}`)
|
||||
} catch (err) {
|
||||
console.log(` ❌ ${LABELS[key]} — ${err.message}`)
|
||||
}
|
||||
}
|
||||
|
||||
async function main() {
|
||||
console.log('\n🚀 XFlow — OpenRouter Stable Models Test\n')
|
||||
const apiKey = process.env.OPEN_ROUTER_API_KEY || process.env.NUXT_OPEN_ROUTER_API_KEY
|
||||
console.log(`🔑 API Key: ${apiKey ? apiKey.slice(0, 20) + '...' : 'NOT FOUND'}\n`)
|
||||
|
||||
for (const [key, modelId] of Object.entries(MODELS)) {
|
||||
process.stdout.write(`Testing ${LABELS[key]}...\n`)
|
||||
await testModel(key, modelId)
|
||||
await new Promise(r => setTimeout(r, 1000))
|
||||
}
|
||||
|
||||
console.log('\n✨ Done!\n')
|
||||
}
|
||||
|
||||
main().catch(console.error)
|
||||
Reference in New Issue
Block a user