chore(modell): rikta ALLT mot gemini-3.1-flash-lite + fixa kostnadsberakning

Koden/docs pastod overallt gemini-3.5-flash-lite fast .env kor 3.1. Nu enhetligt
3.1 i .env.example, config.ts-default, gemini.ts-default, tester, eval och docs
(09 + 10). Dessutom en RIKTIG bugg: estimateCostUsd rakna pa 3.5-priser
($0,30/$2,50) medan vi kor 3.1 -> overskattade spend och troffade budgetlarmet
for tidigt. Nu 3.1-priser ($0,25/$1,50). docs/10 helt omraknad pa 3.1 (per
uppgift, per anvandare, skala, 100k-trial-scenariot). Referenslinje kvar som
visar 3.5-priset for att motivera valet.
This commit is contained in:
Claude
2026-08-18 20:16:37 +00:00
parent 7c06516e1e
commit ee5eb32e09
9 changed files with 69 additions and 60 deletions
+4 -3
View File
@@ -313,7 +313,7 @@ export class GeminiAamosClient implements AamosClient {
constructor(config: GeminiAamosClientConfig) {
this.cfg = {
apiKey: config.apiKey,
model: config.model ?? "gemini-3.5-flash-lite",
model: config.model ?? "gemini-3.1-flash-lite",
timeoutMs: config.timeoutMs ?? 60_000,
dailyBudgetUsd: config.dailyBudgetUsd ?? 0,
promptVersion: config.promptVersion ?? "gemini-fridge-v4",
@@ -1069,8 +1069,9 @@ Språk: ${lang}.`;
}
private estimateCostUsd(inputTokens: number, outputTokens: number): number {
// Gemini 3.5 Flash Lite standard-tier pricing (2026): $0.30/1M input, $2.50/1M output.
return inputTokens * 0.3e-6 + outputTokens * 2.5e-6;
// Gemini 3.1 Flash Lite standard-tier pricing (2026): $0.25/1M input, $1.50/1M output.
// (Matcha GEMINI_MODEL i .env / config.ts kör vi 3.1, ska kostnaden räknas på 3.1.)
return inputTokens * 0.25e-6 + outputTokens * 1.5e-6;
}
private async isOverBudget(estimateUsd: number): Promise<boolean> {
+2 -2
View File
@@ -67,7 +67,7 @@ describe("GeminiAamosClient", () => {
const budget = new MemoryBudgetStore();
const client = new GeminiAamosClient({
apiKey: "test-key",
model: "gemini-3.5-flash-lite",
model: "gemini-3.1-flash-lite",
fetchImpl: makeFetch(JPEG_BYTES),
budgetStore: budget,
dailyBudgetUsd: 10,
@@ -82,7 +82,7 @@ describe("GeminiAamosClient", () => {
expect(result.status).toBe("ok");
expect(result.output).not.toBeNull();
expect(result.modelVersion).toBe("gemini-3.5-flash-lite");
expect(result.modelVersion).toBe("gemini-3.1-flash-lite");
expect(result.costUsd).toBeGreaterThan(0);
expect(result.inputTokens).toBe(392);
expect(result.outputTokens).toBe(121);