Spaces:
Sleeping
Sleeping
|
Download backend/README.md from orakzai-io/Rednote: direct link, hf CLI and curl.
- Browser
- Download file 1.96 kB
-
https://huggingface.co/spaces/orakzai-io/Rednote/resolve/main/backend/README.md
- Command line
-
hf download hf://spaces/orakzai-io/Rednote/backend/README.md
-
curl -L -o README.md https://huggingface.co/spaces/orakzai-io/Rednote/resolve/main/backend/README.md
1.96 kB
| # RAG Backend API (FastAPI) | |
| This is the FastAPI backend serving the Document Assistant application. It handles user authentication, document parsing (PDF/TXT), vector embeddings creation using `fastembed`, and RAG-based chat using the `Groq` SDK. | |
| ## Key Technologies | |
| * **FastAPI**: Modern, fast web framework for building APIs. | |
| * **SQLAlchemy & Alembic**: Database ORM and migrations helper. | |
| * **PostgreSQL + pgvector**: Relational database with vector similarity search capabilities. | |
| * **FastEmbed**: Lightweight, fast library for generating text embeddings (default: `BAAI/bge-small-en-v1.5`). | |
| * **PyMuPDF (fitz)**: Optimized library for parsing PDFs and extracting text. | |
| * **Groq SDK**: Connects to the Groq Cloud API for fast llama3 text completions. | |
| * **FastAPI Users**: Authentication system using JWT tokens. | |
| ## Getting Started (Local Development) | |
| ### Prerequisites | |
| * Python 3.12+ | |
| * Running PostgreSQL database with `pgvector` extension enabled | |
| ### Setup Steps | |
| 1. **Navigate to backend directory** | |
| ```bash | |
| cd backend | |
| ``` | |
| 2. **Create a virtual environment & install dependencies** | |
| ```bash | |
| python -m venv .venv | |
| source .venv/bin/activate # On Windows: .venv\Scripts\activate | |
| pip install -r requirements.txt | |
| ``` | |
| 3. **Configure Environment Variables** | |
| Create a `.env` file based on `.env.example` in the root or copy/rename it: | |
| ```bash | |
| cp .env.example .env | |
| ``` | |
| Modify `.env` to configure your `DATABASE_URL`, `GROQ_API_KEY`, and `SECRET_KEY`. | |
| 4. **Run Database Migrations / Initialize DB** | |
| The application automatically initializes database tables on startup. | |
| 5. **Start Development Server** | |
| ```bash | |
| uvicorn main:app --reload --port 8000 | |
| ``` | |
| Open [http://localhost:8000/docs](http://localhost:8000/docs) in your browser to view the interactive Swagger API documentation. | |
| ## Testing | |
| Run unit and integration tests using `pytest`: | |
| ```bash | |
| pytest | |
| ``` | |
| Tests are located in the `tests/` directory. | |