Short diagnosis
Your model is inventing dates/studies because it’s being asked to summarize without strict source constraints and without a verification step. Fixes combine prompt engineering, metadata extraction, and a human/automated fact-check pass.
Recommendation (one-sentence)
Require source-anchored claims + automated claim-extraction and verification before accepting the brief.
Why this works
If the model must produce a citation anchor for every factual sentence and you verify anchors programmatically (or human-review), hallucinations become detectable and removable. This adds time but preserves the model’s usefulness for drafting.
Decision criteria (pick depending on your project)
- Low budget / small team: use stricter prompt constraints and human spot-checks for high-risk claims. Hits slower but cheap.
- Medium budget / researcher team: add an automated search/DOI cross-check step and require quoted snippets for each citation. Good balance of speed and reliability.
- High budget / policy shop: integrate a retrieval-augmented pipeline (RAG) or browsing-enabled model + automated claim verifier and a domain subject-matter expert (SME) sign-off.
Practical checklist (implement in this order)
1) Input gating: only feed documents with known provenance (links, PDFs, bibliographic metadata). Do not allow the model to invent sources.
2) Anchor-every-claim prompt: for each factual sentence ask the model to append a structured anchor: [claim-id | one-sentence source quote | source URL or DOI | confidence 0-100].
- Prompt snippet: “For each factual sentence, output: claim_id; sentence; verbatim supporting quote (≤50 words); exact source (URL/DOI); confidence%.”
3) Extract claims to table: have the model produce a CSV/JSON list of claims and anchors. This makes automation easy.
4) Automated verification: for each anchor, 1) check URL accessibility, 2) verify the quote appears in the target doc, 3) check publication date/author against metadata (use DOI APIs, CrossRef, Google Scholar or internal library). Flag mismatches.
5) Confidence gates: reject claims where (a) no source URL/DOI, (b) quoted text not found, or (c) source date/author mismatch > 5 years from claimed date. Send those through manual review.
6) Human-in-the-loop: SME or librarian resolves flagged claims; remove or rewrite any unverifiable claim.
7) Final pass: ask the model to rewrite the brief keeping only verified claims; add an appendix listing verified sources and the verification status per claim.
Prompts you can paste
- “List each factual claim in this draft and for each provide: id | exact supporting quote (≤50 words) | exact source URL/DOI | publication date | confidence 0–100.”
- “For each claim with confidence <80%, show the minimal search query (title/author/date) to validate it and a one-line reason it lacked confidence.”
Best-for / Avoid-if
- Best-for: policy briefs that must cite primary sources and be defensible in review. Works well when you can supply PDFs/links and have a reviewer.
- Avoid-if: you need rapid speculative drafts where citations aren’t required—this process adds latency.
Tools note
Start with your default model (ChatGPT) for drafting and the anchored-claim prompts; for long documents or deeper verification consider Claude for long-context analysis if you already use it.
Quick metrics to adopt
- Target: ≤1% unverifiable claims in final brief.
- Confidence threshold: 80% auto-accept; 50–79% require quick human review; <50% reject.
If you want, I can produce the exact prompt templates and a JSON claim-output schema you can feed into an automated verifier.
Compare ChatGPT and Gemini