01 Installation¶
Goals¶
Set up a reproducible local environment for ingestion, RAG, LoRA training, and model serving on Apple Silicon.
If the stack names are unfamiliar, read docs/00_stack_primer.md first.
Prerequisites¶
- macOS on Apple Silicon, ideally a MacBook Pro M4 with 48 GB RAM
- Xcode Command Line Tools
uvgit- Optional:
ollama,docker,qdrant,age,sops
Step-by-step¶
- Clone the repository and enter it.
- Install dependencies:
- Copy
.env.exampleto.env. - Review the config files in
/config. - Before you train anything, review and edit the curated knowledge files in
/knowledge. Start with knowledge/persona.md and docs/11_personal_knowledge.md. - If your documents are on a normal local disk or an NFS mount, point
config/sources.yamlat that path and skip Google Drive entirely. - If you want to use Google Drive, create OAuth desktop credentials and place the client secret in
./secrets/google-client-secret.json. - If your emails already exist as
mboxfiles or.emlfiles, configure those paths and skip IMAP entirely. - If you want to use IMAP, set the host and credentials in
.env. - If you want the optional production-style vector backend locally, start Qdrant:
- Run smoke validation:
Recommended local setup profiles¶
- Easiest first build: local/NFS documents +
mboxor.emlemail + MLX + Chroma + FastAPI - Optional upgrade: Ollama or llama.cpp + Qdrant + FastAPI
Plain-English tool summary¶
MLX: the Apple-Silicon-native ML framework used here for local inference and LoRA fine-tuningOllama: an optional local model server that makes local model management easierQdrant: an optional vector database used for larger or more filter-heavy RAG setupsRunPod: an optional remote GPU service for training jobs that are too large or slow on the Mac
Default selection strategy¶
For a first-time user, the recommended setup is:
- backend selection: profile-driven
- source handling: snapshot-based
That means you normally set PERSONAL_LLM_MODEL_PROFILE, not PERSONAL_LLM_MODEL_BACKEND. The backend override exists for advanced use, but the default path is to let the chosen profile decide the correct backend.
Notes¶
- Keep the repository private.
- Enable FileVault.
- Do not commit
.env, secrets, or raw personal documents.