Production-grade-RAG
Production-grade Retrieval-Augmented Generation (RAG) API built with FastAPI, LangChain, OpenAI, and Qdrant.
File Explorer
- ci.yml
- docker-compose.yml
- Dockerfile
- __init__.py
- error_handler.py
- logging.py
- __init__.py
- documents.py
- health.py
- query.py
- __init__.py
- app.py
- __init__.py
- document_loader.py
- embeddings.py
- rag_chain.py
- vector_store.py
- __init__.py
- schemas.py
- streamlit_app.py
- __init__.py
- logger.py
- __init__.py
- config.py
- test_api.py
- test_document_loader.py
- test_rag_chain.py
- test_vector_store.py
- __init__.py
- conftest.py
- .gitignore
- Makefile
- pyproject.toml
- README.md
- .gitignore
- .python-version
- custom_types.py
- data_loader.py
- doc.md
- main.py
- pyproject.toml
- README.md
- streamlit_app.py
- uv.lock
- vector_db.py
# Use via CDN
jsDelivrjsDelivr serves any public GitHub repository as a CDN with zero setup. Pick a version and a file to get a ready-to-paste link and snippet.
Command Glossary
Commands referenced in this DOCs, explained below.
docker compose
View Details ▼
docker compose
Run and manage multi container Docker applications.
docker compose ps
List all running containers:
docker compose up {{[-d|--detach]}}
Create and start all containers in the background using a `docker-compose.yml` file from the current directory:
docker compose up --build
Start all containers, rebuild if necessary:
pytest
View Details ▼
pytest
Run Python tests.
pytest {{path/to/test_file1.py path/to/test_file2.py ...}}
Run tests from specific files:
pytest -k {{expression}}
Run tests with names matching a specific [k]eyword expression:
pytest {{[-x|--exitfirst]}}
Exit as soon as a test fails or encounters an error:
python
View Details ▼
python
Python language interpreter.
python
Start a REPL (interactive shell):
python {{path/to/file.py}}
Execute a specific Python file:
python -i {{path/to/file.py}}
Execute a specific Python file and start a REPL:
ruff check
View Details ▼
ruff check
An extremely fast Python linter. `check` is the default command - it can be omitted everywhere.
If no files or directories are specified, the current working directory is used by default.
ruff check {{path/to/file_or_directory1 path/to/file_or_directory2 ...}}
Run the linter on the given files or directories:
ruff check --fix
Apply the suggested fixes, modifying the files in-place:
ruff check --watch
Run the linter and re-lint on change:
