Blackhawk AI

A full-stack Retrieval-Augmented Generation (RAG) system serving semantic search over an ingested document corpus.

-Python -Flask -Supabase -PostgreSQL / pgvector
500 chunk corpus
<4s per query
Multi-user deployed web app

System Design Details

Blackhawk AI is a Flask and Supabase web application that answers questions against a document corpus using semantic search.

Key components include:

  • Document Ingestion: Multi-format ingestion pipeline that chunks source documents into a 500-chunk searchable corpus.
  • Vector Store: PostgreSQL with the pgvector extension stores embeddings for fast similarity search.
  • Semantic Search: Queries are embedded and matched against the corpus, returning results in under 4 seconds.
  • Q&A: The client can add authorized users who can then login and access the system.
  • Admin Panel: Authenticated dashboard for managing the corpus and monitoring usage.

Development Process

The system grew from a prototype into a deployed application through three stages:

  • Prototype: Started as a single-user command-line script for querying documents locally.
  • Scale-up: Rebuilt as a multi-user Flask web application backed by Supabase, adding anonymous Q&A and an authenticated admin panel.
  • Security Hardening: Cleared pre-launch security findings for stored XSS, debug-mode exposure, and missing HTTP security headers by adding input sanitization and hardening the Flask configuration.

Experience Gained

This project provided end-to-end experience taking a machine-learning-powered application from prototype to deployment.

Key skills developed include:

  • Retrieval-Augmented Generation architecture, embeddings, and vector similarity search.
  • Full-stack web development with Flask, Supabase, and PostgreSQL.
  • Web application security: finding and remediating XSS, configuration, and HTTP-header vulnerabilities.