allyoucanRAG
This repository contains the allyoucanrag package, published under the public-facing brand name allyoucanRAG. The RAG core is packaged as a reusable Python library, while the Streamlit UI remains available as an optional frontend.
What the project provides
- The allyoucanRAG package for reusable academic RAG workflows.
- A Streamlit QA app for course-material and user-uploaded PDF retrieval.
- A dual-vector-store RAG workflow based on Chroma and LangChain.
- Runtime-managed data directories for uploads, vector stores, and local config.
Important packaging note
The following runtime data is intentionally excluded from package distributions:
CourseMaterials/UserUploads/chroma_db/config.json.streamlit/secrets.toml
This means your course materials are treated as external runtime data, not packaged assets. That matches your PyPI goal.
Current layout
MAC-Academy-QA-System/
├── app.py
├── pyproject.toml
├── MANIFEST.in
├── requirements.txt
├── config.example.json
├── src/
│ └── allyoucanrag/
│ ├── __init__.py
│ ├── batch_upload_helper.py
│ ├── config.py
│ ├── document_manager.py
│ ├── exceptions.py
│ ├── paths.py
│ ├── rag_system.py
│ ├── streamlit_app.py
│ └── utils.py
└── CourseMaterials/
Installation
Local development
pip install -r requirements.txt
Install the package only
pip install .
Install the package with the Streamlit frontend
pip install ".[streamlit]"
After you publish to PyPI, the install command will become:
pip install "allyoucanrag[streamlit]"
The public-facing brand is allyoucanRAG. The PyPI distribution name and the Python import path are both allyoucanrag.
CLI usage
After installing the package, start the interactive CLI with:
allyoucanrag start
The CLI can update API keys, upload supported text documents, and ask questions against the knowledge base.
Configuration
The package resolves API keys in this order:
- Streamlit secrets
- Environment variables
config.json
Example local config.json:
{
"OpenAIAPIKey": "your-openai-api-key",
"LangChainAPIKey": "your-langchain-api-key"
}
Supported environment variables:
OPENAI_API_KEYLANGCHAIN_API_KEYMAC_ACADEMY_QA_HOME
If MAC_ACADEMY_QA_HOME is set, runtime directories are resolved from that base path. Otherwise the current working directory is used.
Run the Streamlit app
streamlit run app.py
Use as a package
from allyoucanrag import DualVectorStoreRAG, resolve_runtime_paths
runtime_paths = resolve_runtime_paths(base_docs_dir="D:/external-course-materials")
rag = DualVectorStoreRAG(runtime_paths=runtime_paths)
rag.initialize_base_vectorstore()
rag.initialize_user_vectorstore()
Runtime data directories
By default, the package expects these runtime paths under the active base directory:
CourseMaterials/UserUploads/chroma_db/base/chroma_db/user/config.json
These are not installed into site-packages and should be managed by the runtime environment.
Build distributions
python -m build --sdist --wheel
The generated files appear in dist/.
Publish checklist
- Choose and add a real
LICENSEfile. - Verify
README.mdrenders correctly on PyPI. - Build with
python -m build --sdist --wheel. - Upload to TestPyPI first.
- Upload to PyPI.
Detailed release steps are in DEPLOYMENT.md.
Release files for allyoucanrag 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| allyoucanrag-0.1.1.tar.gz | 23.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| allyoucanrag-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 49.4 kB
Release files / allyoucanrag-0.1.1.tar.gz
| Download URL | allyoucanrag-0.1.1.tar.gz |
|---|---|
| Size | 23.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
383ff9afcb0043de745d520bc2274c0d1f731af5ced78138cbe076efe6e5d216
|
|
BLAKE2b-256 checksum How to use checksums |
dd1947d9150d3fb48a1cfc14b2b884b27bfe7ac6ecb92e6bda659dba28a77709
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.13
|
Release files / allyoucanrag-0.1.1-py3-none-any.whl
| Download URL | allyoucanrag-0.1.1-py3-none-any.whl |
|---|---|
| Size | 25.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5cb8664ff8b12feb4651525368aa1eedb02439287ccf9471a079770f07284a3f
|
|
BLAKE2b-256 checksum How to use checksums |
e2a71aba3b6ab12f120249313f12b47551c0047b09d195ce8c4ec62ba9b799f1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.13
|