Switch default model to google/gemini-2.5-flash, add max_tokens: 3500, and safeguard JSON truncation on parse

This commit is contained in:
JobsBoard Deployer 2026-09-05 14:12:42 -04:00
parent 62b07080ed
commit 9e5742307b
2 changed files with 18 additions and 2 deletions

View file

@ -36,7 +36,7 @@ services:
NEXTAUTH_URL: "${NEXTAUTH_URL:-http://localhost:3000}"
NODE_ENV: "production"
OPENROUTER_API_KEY: "${OPENROUTER_API_KEY:-}"
OPENROUTER_MODEL: "${OPENROUTER_MODEL:-meta-llama/llama-3.2-3b-instruct}"
OPENROUTER_MODEL: "${OPENROUTER_MODEL:-google/gemini-2.5-flash}"
depends_on:
db:
condition: service_healthy

View file

@ -406,6 +406,7 @@ CRITICAL EXTRACTION GUIDELINES:
body: JSON.stringify({
model,
temperature: 0.1,
max_tokens: 3500,
messages: [
{ role: "system", content: systemPrompt },
{
@ -431,7 +432,22 @@ CRITICAL EXTRACTION GUIDELINES:
// Clean markdown code fence wrappers if present
content = content.replace(/^```(?:json)?\s*/i, "").replace(/\s*```$/i, "").trim();
const parsed = JSON.parse(content);
let parsed: any = null;
try {
parsed = JSON.parse(content);
} catch (parseErr: any) {
console.warn("[Resume Parser] JSON parse error on raw output:", parseErr.message, "Raw snippet:", content.slice(0, 300));
// Attempt repair if closed prematurely
const lastBrace = content.lastIndexOf("}");
if (lastBrace > 0) {
try {
parsed = JSON.parse(content.slice(0, lastBrace + 1));
} catch (repairErr) {
// Could not salvage
}
}
}
if (parsed && (parsed.profile || Array.isArray(parsed.work))) {
console.log("[Resume Parser] Successfully extracted structured resume with LLM.");
return parsed;