Skip to main content

amir: My AI Portfolio

amir

Production systems I shipped — rebuilt lean, still the real stack.

ci docs codecov PyPI Python 3.11–3.13 License: MIT Docs site

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 docssite/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

amir-0.1.0.tar.gz (18.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

amir-0.1.0-py3-none-any.whl (23.3 kB view details)

Uploaded Python 3

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

Hashes for amir-0.1.0.tar.gz
Algorithm Hash digest
SHA256 5b4dc94ce8244df245e183aacc58f0f962f22f8f41492d6b71e115f5ee81959f
MD5 a4546c974a96be8b9305faa3ab432913
BLAKE2b-256 1c1b203d48a344a954272a6c90485f7ee3de2dc8a7cecb0e1d5ba8c512033ab3

See more details on using hashes here.

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

Hashes for amir-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2d3773190b6d8d57182d3e9a99448871e256bc202948b141b646a55662f68558
MD5 e7f7deee50f44f13d1919e388d32884a
BLAKE2b-256 530098b959863bd32f944dcf365fb408c1cb9cfae3e6b7d9b85a57915ae1f477

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page