feat(odin): scope to invoice processing only (guard general chat)
Odin currently advertises general Q&A via the /chat path, which burns API credits on open-ended questions. Guard it: a text-only message makes NO AI call — it gets a canned reply telling the user to attach an invoice. The invoice path (attachments → extract) is unchanged. Removing the guard re-enables the general /chat path for a later phase. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -208,6 +208,24 @@ export default function OdinChat() {
|
|||||||
const files = attachments.map((a) => a.file);
|
const files = attachments.map((a) => a.file);
|
||||||
if (!text && files.length === 0) return;
|
if (!text && files.length === 0) return;
|
||||||
|
|
||||||
|
// Guard: Odin is scoped to invoice processing only (for now). A text-only
|
||||||
|
// message makes NO AI call — it gets a canned reply locally, so open-ended
|
||||||
|
// chat can't burn API credits. The invoice path (attachments) runs normally.
|
||||||
|
// (Removing this guard re-enables the general /chat path below for Phase 2.)
|
||||||
|
if (files.length === 0) {
|
||||||
|
setTurns((t) => [
|
||||||
|
...t,
|
||||||
|
{ role: "user", content: text },
|
||||||
|
{
|
||||||
|
role: "assistant",
|
||||||
|
content:
|
||||||
|
"Momentálně umím zpracovat pouze přijaté faktury. Přiložte prosím fakturu (PDF) a já z ní načtu údaje k uložení.",
|
||||||
|
},
|
||||||
|
]);
|
||||||
|
setInput("");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
setBusy(true);
|
setBusy(true);
|
||||||
const prevTurns = turns;
|
const prevTurns = turns;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user