feat(ki): Einstellungen -> KI mit OpenAI-Schluessel und Modellwahl
Neuer Admin-Reiter "KI": zeigt die letzten vier Zeichen des hinterlegten OpenAI-Schluessels samt Quelle, nimmt einen neuen an (vorher gegen /v1/models geprueft) und laesst je Einsatzzweck das Modell per Dropdown waehlen - Scanner-Bewertung, Abgleich "bereits beworben", erweiterte Suche. Die Auswahl kommt live von OpenAI, Vorgaben sind die bisher fest verdrahteten Modelle. Reasoning-Modelle bekommen reasoning_effort statt temperature, damit ein Wechsel keinen 400er ausloest. Schluesselfeld aus dem Scanner-Reiter entfernt; Doku in docs/14-ki.md. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
0d41d46a3c
commit
e35c7518db
@@ -0,0 +1,43 @@
|
||||
/*
|
||||
* Prueft die Modellwahl, soweit es ohne Datenbank und OpenAI geht: welche
|
||||
* Namen angenommen werden und welche Modelle als Reasoning-Modell gelten
|
||||
* (die bekommen reasoning_effort statt temperature).
|
||||
*/
|
||||
const { AI_PURPOSES, isReasoningModel, isValidModel } = await import('../src/ai.js');
|
||||
|
||||
let failures = 0;
|
||||
|
||||
function check(name, condition) {
|
||||
if (condition) {
|
||||
console.log(` ok ${name}`);
|
||||
} else {
|
||||
failures += 1;
|
||||
console.log(` FAIL ${name}`);
|
||||
}
|
||||
}
|
||||
|
||||
console.log('KI-Einstellungen');
|
||||
|
||||
check('Vorgabe Bewertung ist gpt-4o-mini', AI_PURPOSES.matching.fallback === 'gpt-4o-mini');
|
||||
check('Vorgabe Abgleich ist gpt-5.6-luna', AI_PURPOSES.applied.fallback === 'gpt-5.6-luna');
|
||||
|
||||
for (const name of ['gpt-4o-mini', 'gpt-5.6-luna', 'o4-mini', 'gpt-4o-2024-08-06', 'ft:gpt-4o-mini:perinco:x:1']) {
|
||||
check(`gueltig: ${name}`, isValidModel(name));
|
||||
}
|
||||
for (const name of ['', ' gpt-4o', 'gpt 4o', 'gpt-4o;drop', 'x'.repeat(101), null]) {
|
||||
check(`ungueltig: ${JSON.stringify(name)?.slice(0, 20)}`, !isValidModel(name));
|
||||
}
|
||||
|
||||
for (const name of ['o1', 'o3-mini', 'o4-mini', 'gpt-5', 'gpt-5.6-luna']) {
|
||||
check(`reasoning: ${name}`, isReasoningModel(name));
|
||||
}
|
||||
for (const name of ['gpt-4o-mini', 'gpt-4.1', 'chatgpt-4o-latest']) {
|
||||
check(`klassisch: ${name}`, !isReasoningModel(name));
|
||||
}
|
||||
|
||||
if (failures) {
|
||||
console.log(`\n${failures} Pruefung(en) fehlgeschlagen.`);
|
||||
process.exit(1);
|
||||
}
|
||||
console.log('\nAlles gruen.');
|
||||
process.exit(0);
|
||||
Reference in New Issue
Block a user