RAG is a project aimed at developing a Retrieval-Augmented Generation system utilizing Large Language Models (LLMs) and data ingested from documents.
- Python 3.11: Programming language used for development.
- Poetry: Dependency management and virtual environment configuration.
- FastAPI: Framework for building REST APIs.
- Uvicorn: ASGI server powering FastAPI for serving HTTP requests.
- LangChain: Chain orchestration tool.
- Pydantic: Data validation and settings management using Python type annotations.
This project uses Poetry for dependency management and virtual environment configuration. You can use your preferred Python environment setup easily, like conda
or venv
, and poetry
will use your current environment. If no environmet is found, poetry will create a .venv
folder in this project's root folder.
- Latest version of Poetry:
pipx install poetry
- Ensure Python 3.11 is available in your
$PATH
- Configure environment variables using an
.env
file (refer toexample.env
).- Missing fields may result in validation errors
- Clone the repository and navigate to the project directory.
- Run
poetry install
to install project dependencies. - Set up your environment variables in the
.env
file. - Start the application with
make run
, which runspoetry run python -m app
.
Run docker compose up -d
- Note: This may take several minutes, as the current build uses local embedding models that require a lot of dependencies.
While running container, you can upload a Markdown
file at the data volume.
This project has been strongly influenced and supported by other amazing projects like PrivateGPT and LangChain.