amir: My AI Portfolio
Production systems I shipped — rebuilt lean, still the real stack.
AI portfolio monorepo: shared libs, Streamlit apps, ingest jobs, and a docs super-app. An open-source-first RAG stack over my research papers, with uv workspaces and an enforceable import DAG — the same shapes I shipped in production, smaller so you can see the wiring.
✨ What’s inside
| Path | Product | Docs |
|---|---|---|
libs/rag-core |
LlamaIndex + Chroma + local embeddings + citations | rag-core |
projects/papers-ingest |
PDF → vector index CLI | papers-ingest |
apps/papers-rag |
Streamlit query chat | papers-rag |
flowchart LR
PDFs["assets/pdf/papers"] --> Ingest["papers-ingest"]
Ingest --> Chroma["Chroma local"]
Chroma --> App["papers-rag Streamlit"]
App --> OpenAI["OpenAI GPT"]
Embed["bge-small local"] --> Ingest
Embed --> App
Core["libs/rag-core"] --> Ingest
Core --> App
Topology is strict: apps/ and projects/ may depend on libs/ only. Full DAG and ADRs live in the architecture portal.
🚀 Quick start
uv tool install poethepoet
poe sync # install workspace from uv.lock
cp .env.example .env # set OPENAI_API_KEY
poe ingest-papers # first run downloads the embedding model
poe run-papers-rag # open the Streamlit chat
poe docs # build the docs super-app into site/
Then open site/index.html — or the published hub at amirhessam88.github.io/amir.
📦 PyPI
pip install amir
One wheel. It bundles rag.core, papers_rag, and papers_ingest (APIs plus the papers-ingest / papers-rag CLIs). Not a git checkout: no docs portal, no poe toolchain, no paper PDFs. Leaf dirs stay workspace packages locally; they are not published on their own.
export OPENAI_API_KEY=...
export PAPERS_DIR=/path/to/pdfs
export CHROMA_DIR=/path/to/chroma
papers-ingest
papers-rag
Clone this repo when you want the full org (docs, PDFs, Docker, developer loop).
🆓 Free / OSS stack
| Layer | Choice | Cost |
|---|---|---|
| Orchestration | LlamaIndex | OSS |
| Embeddings | BAAI/bge-small-en-v1.5 (local) |
Free |
| Vector DB | Chroma (persistent dir) | Free |
| LLM chat | OpenAI API | Your key |
| Docs hosting | GitHub Pages | Free |
🧪 Quality
poe test gates 100% branch coverage on amir, rag.core, papers_rag, and papers_ingest. CI runs that suite on Ubuntu and macOS across Python 3.11–3.13, then uploads xmlcov/coverage.xml to Codecov.
poe verify # check (ruff + mypy) + test
Same gate CI runs. Dep upgrades: poe upgrade (or poe upgrade ruff). See CONTRIBUTING.md.
📚 Docs
| Hub | URL |
|---|---|
| Landing | amirhessam88.github.io/amir |
| Architecture | …/architecture/ |
| Local preview | poe docs → site/index.html |
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file amir-0.1.0.tar.gz.
File metadata
- Download URL: amir-0.1.0.tar.gz
- Upload date:
- Size: 18.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.13 {"installer":{"name":"uv","version":"0.9.13"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5b4dc94ce8244df245e183aacc58f0f962f22f8f41492d6b71e115f5ee81959f
|
|
| MD5 |
a4546c974a96be8b9305faa3ab432913
|
|
| BLAKE2b-256 |
1c1b203d48a344a954272a6c90485f7ee3de2dc8a7cecb0e1d5ba8c512033ab3
|
File details
Details for the file amir-0.1.0-py3-none-any.whl.
File metadata
- Download URL: amir-0.1.0-py3-none-any.whl
- Upload date:
- Size: 23.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.13 {"installer":{"name":"uv","version":"0.9.13"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2d3773190b6d8d57182d3e9a99448871e256bc202948b141b646a55662f68558
|
|
| MD5 |
e7f7deee50f44f13d1919e388d32884a
|
|
| BLAKE2b-256 |
530098b959863bd32f944dcf365fb408c1cb9cfae3e6b7d9b85a57915ae1f477
|