Show HN: Flamehaven FileSearch – Self-Hosted RAG Semantic Search

1 hour ago 2

Open‑source semantic document search you can self‑host in minutes.

CI/CD PyPI Python Versions  MIT PRs Welcome


TL;DR
Lightweight RAG stack (FastAPI + Google Gemini). Upload docs, ask questions, get cited answers. 100% self-hosted & MIT licensed.
Core Features
  • PDF / DOCX / TXT / MD ingestion (50 MB lite cap)
  • Python SDK + REST API with Swagger UI
  • Store lifecycle (create, list, delete) + source citations
Install
pip install flamehaven-filesearch[api] export GEMINI_API_KEY="..." flamehaven-api

Need architecture diagrams, cookbook recipes, or advanced deployment notes? Check the Wiki.


  • Plug-and-play RAG – Bring your Gemini key, upload docs, start asking questions.
  • Transparent + auditable – MIT license, SQLite/file storage, traceable sources.
  • FastAPI server + SDK parity – Same engine powers CLI, REST, and unit tests.
  • Production-friendly defaults – Env-based config, Dockerfile, CI badges, logging.
  • Extensible hooks – Drop-in store adapters or response post-processors.

�ash pip install flamehaven-filesearch[api] export GEMINI_API_KEY="your-google-gemini-key" python - <<'PY' from flamehaven_filesearch import FlamehavenFileSearch fs = FlamehavenFileSearch() fs.upload_file("handbook.pdf") result = fs.search("Summarize onboarding steps") print(result["answer"]) print(result["sources"]) PY

`�ash flamehaven-api # entrypoint installed via [api] extra

`

Open http://localhost:8000/docs for interactive Swagger UI.

�ash curl -X POST "http://localhost:8000/upload" -F "[email protected]" curl "http://localhost:8000/search?q=key+findings&store=default"


�ash git clone https://github.com/flamehaven01/Flamehaven-Filesearch.git cd Flamehaven-Filesearch export GEMINI_API_KEY="..." docker build -t flamehaven-filesearch . docker run -e GEMINI_API_KEY -p 8000:8000 \ -v D:\Sanctum\Flamehaven-Filesearch/data:/app/data flamehaven-filesearch

  • Mount data/ if you want persistent stores.
  • Use FLAMEHAVEN_CONFIG env or .env file for additional overrides.

Variable Default Description
GEMINI_API_KEY / GOOGLE_API_KEY required Gemini credentials for upload/search.
MAX_FILE_SIZE_MB 50 Lite tier upload limit.
UPLOAD_TIMEOUT_SEC 60 Upload watchdog.
DEFAULT_MODEL gemini-2.5-flash Generation model.
MAX_OUTPUT_TOKENS 1024 Gemini response size.
MAX_SOURCES 5 Number of cited documents.
DATA_DIR ./data Local store persistence path.

See lamehaven_filesearch/config.py for the full data class and env mapping.


Operation Avg Time Environment
Store creation ~1s Ubuntu 22.04, 2 vCPU, 4GB RAM, SSD
Upload 10 MB PDF ~5s Same VM, local disk
Search query ~2s Gemini 2.5 Flash, 5 cited sources
Batch upload (3×5MB) ~12s Sequential upload, Python SDK

Detailed methodology + raw numbers: Benchmarks wiki page.


Roadmap items live in GitHub for transparency:

Highlights in progress:

  • Caching layer + rate limiting (v1.1)
  • Batch search & WebSocket streaming
  • Multi-language, analytics dashboard (v2.0)

  1. Fork & create a feature branch.
  2. pip install -e .[dev,api]
  3. pytest tests/ (or make test) before opening a PR.
  4. Follow CONTRIBUTING.md for style, release notes, and checklist.

help wanted + good first issue labels mark low-barrier contributions.



MIT License © 2025 Flamehaven Team. See LICENSE for details.


If this project helps you, ⭐ the repo and tell us what you build!

Read Entire Article