Projects

Applied AI and information retrieval / Research prototype

Mānoa Faculty Senate RAG

Mānoa Faculty Senate RAG is a retrieval and citation prototype for public UH Mānoa Faculty Senate records. The workflow starts with an archive that spans different file types, document conventions, table structures, scans, dates, and metadata quality.

I built Python document-processing and retrieval paths with FastAPI, LanceDB, hybrid lexical and vector search, reranking, source-grounding requirements, and scoped evaluation around citation behaviour.

Mānoa Faculty Senate RAG archive search interface with Find Records mode, a search field, coverage links, and public-record search context.
Archive search interface with Find Records mode, coverage context, and public-record search controls.
Role
Sole developer
Focus
Applied AI and retrieval
Maturity
Research prototype
Access
Public archive-search interface
Technologies
  • Python
  • FastAPI
  • LanceDB
  • OpenAI API
Last reviewed
Aug 2026

The problem

What the project had to handle

The nontrivial part is not only search. The system has to decide which records are relevant, group related material, preserve source context, and avoid turning weak evidence into a confident answer.

It remains a research prototype; the public interface does not establish production readiness or arbitrary-answer reliability.

Key decisions

The shape of the build

Hybrid retrieval and grouping

Lexical matching, vector retrieval, reranking, and family grouping work together instead of relying on one retrieval signal.

That gives heterogeneous archive material more than one path to become discoverable.

Citation safeguards

Answer paths carry deterministic citation and evidence-sufficiency checks before presenting grounded responses.

The system can hold back when retrieved evidence is too thin for the requested answer.

Archive-first interaction

The interface leads with Find Records and keeps Ask mode explicit.

That makes the safer behaviour the default: inspect sources first, then ask for synthesis when appropriate.

How it works

End-to-end flow

Documents are extracted, normalised, chunked with metadata, and indexed for lexical and vector retrieval. Search requests use hybrid retrieval, reranking, and family grouping to return source records; Ask mode adds grounded response construction only when the retrieved evidence passes scoped checks.

Retrieval pipeline

Documents
Retrieve
Answer

Mānoa Faculty Senate RAG

Document ingestion, hybrid retrieval, citation checks, and scoped answer construction.

What I implemented

The working surface

Document pipeline

  • Processed PDFs, DOCX files, tables, scans, and historical archive folders.
  • Built chunking and metadata policy for retrieval-ready records.
  • Added utilities for family metadata refresh and source-context handling.

Retrieval system

  • Combined lexical search with LanceDB vector retrieval.
  • Added deterministic reranking and related-record grouping.
  • Kept archive search available without requiring generated answers.

Grounded answer path

  • Implemented citation requirements and evidence-sufficiency checks.
  • Added structured date and action-fact handling where source records support it.
  • Handled weak retrieval evidence without forcing a generated response.

Validation

Checks and evidence

Public interface observed

The public app and safe operational endpoints were reachable during the latest review.

294 tests passed

The current test suite passes 294 tests for retrieval, response contracts, and supporting code paths, with one dependency warning.

Retrieval and response evaluation

Retrieval and response-contract evaluation covers defined cases.

Reliability remains bounded

The project does not claim arbitrary factual-answer reliability across the full archive.

Current state

Research prototype with a publicly observed archive-search interface.

Deployment and source-link records remain under reconciliation before stronger public status claims.

Find Records remains the default workflow; Ask mode is explicitly scoped.