inou/portal/lang
James 20c33d2fb2 Document processing pipeline: OpenRouter OCR + Stepfun extraction
- Switch OCR from Fireworks Qwen to Gemini 3 Flash via OpenRouter
- Switch extraction/translation to Stepfun Step 3.5 Flash via OpenRouter
- Add CallOpenRouter() to lib/llm.go (OpenAI-compatible API)
- Add OpenRouter API key support to lib/config.go
- Fix extraction preamble causing Stepfun reasoning model to return null content
  (heavy user-message preamble → short system message)
- Fix timestamp fallback: no date = 0, not today
- Fix document type: use file extension instead of hardcoded "pdf"
- Fix findUploadByFilename: Value filter was silently ignored, returning all uploads
- Fix entryQuery: skip category filter when EntryID is specified
- Fix extraction prompt contamination: replace real patient examples with generic ones
- Add reprocess button (↻) for document uploads
- Add delete cascade for upload entries (removes created document/extraction entries)
- Add upload/reprocess/delete logging throughout pipeline
- Consolidated templates, translations, email templates, landing pages
- Portal: defense, genome, dossier sections, MCP, OAuth updates
- Tools: translate pipeline improvements

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-15 05:28:05 -04:00
..
da.yaml Document processing pipeline: OpenRouter OCR + Stepfun extraction 2026-03-15 05:28:05 -04:00
de.yaml Document processing pipeline: OpenRouter OCR + Stepfun extraction 2026-03-15 05:28:05 -04:00
en.yaml Document processing pipeline: OpenRouter OCR + Stepfun extraction 2026-03-15 05:28:05 -04:00
es.yaml Document processing pipeline: OpenRouter OCR + Stepfun extraction 2026-03-15 05:28:05 -04:00
fi.yaml Document processing pipeline: OpenRouter OCR + Stepfun extraction 2026-03-15 05:28:05 -04:00
fr.yaml Document processing pipeline: OpenRouter OCR + Stepfun extraction 2026-03-15 05:28:05 -04:00
hi.yaml Document processing pipeline: OpenRouter OCR + Stepfun extraction 2026-03-15 05:28:05 -04:00
id.yaml Document processing pipeline: OpenRouter OCR + Stepfun extraction 2026-03-15 05:28:05 -04:00
it.yaml Document processing pipeline: OpenRouter OCR + Stepfun extraction 2026-03-15 05:28:05 -04:00
ja.yaml Document processing pipeline: OpenRouter OCR + Stepfun extraction 2026-03-15 05:28:05 -04:00
ko.yaml Document processing pipeline: OpenRouter OCR + Stepfun extraction 2026-03-15 05:28:05 -04:00
nl.yaml Document processing pipeline: OpenRouter OCR + Stepfun extraction 2026-03-15 05:28:05 -04:00
no.yaml Document processing pipeline: OpenRouter OCR + Stepfun extraction 2026-03-15 05:28:05 -04:00
pl.yaml Document processing pipeline: OpenRouter OCR + Stepfun extraction 2026-03-15 05:28:05 -04:00
pt.yaml Document processing pipeline: OpenRouter OCR + Stepfun extraction 2026-03-15 05:28:05 -04:00
ru.yaml Document processing pipeline: OpenRouter OCR + Stepfun extraction 2026-03-15 05:28:05 -04:00
sv.yaml Document processing pipeline: OpenRouter OCR + Stepfun extraction 2026-03-15 05:28:05 -04:00
th.yaml Document processing pipeline: OpenRouter OCR + Stepfun extraction 2026-03-15 05:28:05 -04:00
tr.yaml Document processing pipeline: OpenRouter OCR + Stepfun extraction 2026-03-15 05:28:05 -04:00
uk.yaml Document processing pipeline: OpenRouter OCR + Stepfun extraction 2026-03-15 05:28:05 -04:00
vi.yaml Document processing pipeline: OpenRouter OCR + Stepfun extraction 2026-03-15 05:28:05 -04:00
zh.yaml Document processing pipeline: OpenRouter OCR + Stepfun extraction 2026-03-15 05:28:05 -04:00