| --- |
| title: FECB RAG Search |
| emoji: π |
| colorFrom: green |
| colorTo: blue |
| sdk: gradio |
| sdk_version: "6.14.0" |
| app_file: app.py |
| pinned: false |
| license: mit |
| --- |
| |
| # FECB RAG Search App |
|
|
| A RAG (Retrieval-Augmented Generation) application that lets you search and query a collection of PDF documents using semantic AI search, powered by Claude (Anthropic). |
|
|
| ## Project Structure |
|
|
| ``` |
| FECB/ |
| βββ app.py # Gradio web interface |
| βββ ingest.py # PDF ingestion & FAISS index builder |
| βββ requirements.txt |
| βββ pdfs/ # Drop your PDF files here |
| βββ faiss_index/ # Generated by ingest.py (do not edit) |
| βββ metadata.json # Generated by ingest.py |
| ``` |
|
|
| ## Setup |
|
|
| ### 1. Install dependencies |
|
|
| ```bash |
| pip install -r requirements.txt |
| ``` |
|
|
| ### 2. Add your PDFs |
|
|
| Copy your PDF files into the `pdfs/` folder (subdirectories are supported). |
|
|
| ### 3. Build the vector index |
|
|
| ```bash |
| python ingest.py |
| ``` |
|
|
| Options: |
| ``` |
| --pdf-dir Path to PDF folder (default: pdfs) |
| --index-dir Where to save the FAISS index (default: faiss_index) |
| --chunk-size Characters per chunk (default: 800) |
| --chunk-overlap Overlap between chunks (default: 100) |
| ``` |
|
|
| ### 4. Set your Anthropic API key |
|
|
| ```bash |
| export ANTHROPIC_API_KEY=sk-ant-... |
| ``` |
|
|
| ### 5. Run the app |
|
|
| ```bash |
| python app.py |
| ``` |
|
|
| Open http://localhost:7860 in your browser. |
|
|
| ## Configuration |
|
|
| All settings can be overridden with environment variables: |
|
|
| | Variable | Default | Description | |
| |--------------------|--------------------------|----------------------------------| |
| | `ANTHROPIC_API_KEY`| β | **Required.** Your Anthropic key | |
| | `CLAUDE_MODEL` | `claude-sonnet-4-6` | Claude model to use | |
| | `EMBED_MODEL` | `BAAI/bge-small-en-v1.5` | HuggingFace embedding model | |
| | `TOP_K` | `5` | Number of documents to retrieve | |
| | `INDEX_DIR` | `faiss_index` | FAISS index directory | |
| | `META_FILE` | `metadata.json` | Metadata file path | |
| | `PDF_DIR` | `pdfs` | PDF source directory (ingest) | |
|
|