fix(parser): handle thinking models in recipe detection
Some checks failed
Build & Push Docker Image / test-and-build (push) Failing after 38s
Some checks failed
Build & Push Docker Image / test-and-build (push) Failing after 38s
Increase max_tokens from 10 to 1024 for detection so thinking models have room to reason. Also fall back to reasoning_content if content is empty, since some local models (e.g. Gemma 4 thinking variants) put their answer there. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -49,11 +49,17 @@ export async function detectRecipe(text: string): Promise<boolean> {
|
||||
content: `Does this text contain a recipe?\n\n${text}`
|
||||
}
|
||||
],
|
||||
max_tokens: 10,
|
||||
// 1024 gives thinking models room to reason before answering
|
||||
max_tokens: 1024,
|
||||
temperature: 0
|
||||
});
|
||||
|
||||
const detectionResult = detectionResponse.choices[0].message.content?.toLowerCase() ?? '';
|
||||
const msg = detectionResponse.choices[0].message;
|
||||
// Some local models (e.g. Gemma thinking variants) return the answer in
|
||||
// reasoning_content instead of content when max_tokens is tight.
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
const reasoning: string = (msg as any).reasoning_content ?? '';
|
||||
const detectionResult = (msg.content ?? reasoning).toLowerCase();
|
||||
console.log('[LLM] Detection response:', detectionResult);
|
||||
|
||||
return detectionResult.includes('yes');
|
||||
|
||||
Reference in New Issue
Block a user