Case studyOpen source · live demo

EvidenceDesk

RAG support copilot with human review

Turns a support ticket into a source-backed draft note that a person reviews before anything is saved. It shows how retrieval, structured AI output and human approval fit together in a complete product.

Role
Independent · sole engineer
Status
Open source (MIT) · live demo
Built
2026
Stack
Python, FastAPI, LangGraph, PostgreSQL + pgvector, Next.js
evidencedesk-web.vercel.appEvidenceDesk support copilot showing sample tickets and the human review workflow

The problem

Support agents lose time searching documentation, and a generic chatbot answer is hard to trust. EvidenceDesk drafts a reply note grounded in retrieved documentation, shows which sources support each claim and leaves the final decision to a person.

Architecture

  1. Retrieve

    PostgreSQL full-text search and pgvector similarity search over the documentation.

  2. Fuse

    Reciprocal rank fusion merges both result lists into one ranked context.

  3. Draft

    A bounded LangGraph workflow produces a structured note, with Cloudflare Workers AI for embeddings and generation.

  4. Verify

    Citation and quotation checks tie generated claims to the retrieved sources.

  5. Review

    A person approves or rejects the proposal in the Next.js and TypeScript interface.

  6. Save

    Approval stores the exact reviewed proposal in one database transaction; retry handling prevents duplicate notes.

Guardrails

  • Model output can never write to the database directly. Only an explicit human approval can.
  • Session and tenant authorization restrict access to records.
  • Retries are designed to be idempotent, so a repeated request cannot create a second note.

Testing and evaluation

  • Automated API, database, browser and failure-scenario tests run in CI/CD.
  • Retrieval evaluation is published separately from answer-quality assessment.
  • Limitations are documented: the demo uses fictional support cases, and human review of semantic answer quality is still pending.

Want this kind of ownership on your team?

I am open to Senior AI and Full Stack Engineer roles. Email is the fastest way to reach me.