minOutput je Profil senkbar, neue Rolle coder
Das 64K-Output-Gate war global und trieb auto/mass:fast auf solar-pro4 (0,42 statt 0,27 $/1M), weil ling-3.0-flash mit 32768 Output-Token durchfiel. Gemessen 09.09.: 1.415 Masse-Requests, 1.146 davon unter 100 Completion-Token — das Gate verfehlte dort seinen Zweck. Jetzt kann je Schwelle-Profil minOutput gesetzt werden (Default 65536); auto/mass:fast laeuft mit 32768, max_output unbekannt bleibt abgelehnt. Dazu role/coder -> auto/coding:junior (ACL fuer persona-spark), damit Code-Arbeit nicht ueber role/worker in die Masse faellt; der engineer-Agent der Mac-opencode.json wechselt auf role/coder. Refs #1283
This commit is contained in:
@@ -124,3 +124,30 @@ describe("Grenze maxOutput", () => {
|
||||
expect(abgelehnt).toHaveLength(0);
|
||||
});
|
||||
});
|
||||
|
||||
describe("minOutput je Profil", () => {
|
||||
it("32768 laesst ling als billigsten Kandidaten zu, Default tut es nicht", async () => {
|
||||
const { alle } = kandidatenBauen({ voll: modelle, konto: null });
|
||||
const mitGate = await billigsterUeberSchwelle(40, 0, alle, undefined, undefined, new Map(), { varianten: [] });
|
||||
expect(mitGate.auswahl?.candidate.id).toBe("z-ai/glm-5.3-flash");
|
||||
const ohneGate = await billigsterUeberSchwelle(40, 0, alle, undefined, undefined, new Map(), { varianten: [], minOutput: 32768 });
|
||||
expect(ohneGate.auswahl?.candidate.id).toBe("inclusionai/ling-3.0-flash");
|
||||
});
|
||||
|
||||
it("bekannte Ablehnung traegt den wirksamen Grenzwert", async () => {
|
||||
const { alle } = kandidatenBauen({ voll: modelle, konto: null });
|
||||
const abgelehnt: Array<{ id: string; grund: string }> = [];
|
||||
await billigsterUeberSchwelle(40, 0, alle, undefined, (id, grund) => abgelehnt.push({ id, grund }), new Map(), { varianten: [], minOutput: 65536 });
|
||||
const ling = abgelehnt.find((e) => e.id === "inclusionai/ling-3.0-flash");
|
||||
expect(ling?.grund).toContain("65536");
|
||||
});
|
||||
|
||||
it("max_output unbekannt bleibt abgelehnt, auch mit herabgesetztem minOutput", async () => {
|
||||
const { alle } = kandidatenBauen({ voll: modelle, konto: null });
|
||||
const abgelehnt: Array<{ id: string; grund: string }> = [];
|
||||
await billigsterUeberSchwelle(40, 0, alle, undefined, (id, grund) => abgelehnt.push({ id, grund }), new Map(), { varianten: [], minOutput: 1 });
|
||||
const foo = abgelehnt.find((e) => e.id === "foo/ohne-angabe");
|
||||
expect(foo).toBeDefined();
|
||||
expect(foo!.grund).toBe("max_output unbekannt");
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user