Personal RAG

MyContextAI

Personal RAG Platform for Building AI Assistants from Online Presence

An AI-powered Retrieval-Augmented Generation platform that automatically indexes GitHub repositories, portfolios, resumes, blogs, and custom websites to build personalized AI assistants.

Public Sources
GitHub, portfolio, resume, blogs, and URLs
Personal Knowledge
Chunked documents and persistent embeddings
AI Assistant
Semantic retrieval with OpenRouter answers
Multi-sourceIngestion
PersistentStorage
SemanticRetrieval
ProductionReady
DockerDeployment
REST APIFastAPI

Overview

MyContextAI is a Dockerized Personal RAG platform that builds a knowledge base from a person's public online presence. It automatically ingests repositories, portfolio pages, resumes, blogs, and custom URLs; processes the collected documents; and stores their embeddings in persistent ChromaDB vector storage.

Through semantic search, a retriever selects relevant context for OpenRouter LLM responses. The result is a personalized AI assistant available through an interactive web UI or FastAPI REST API, with Docker deployment for repeatable production environments.

Technology Stack

PythonFastAPIChromaDBOpenRouterDockerPlaywrightBeautifulSoupTrafilaturaPyMuPDF

Features

GitHub Repository Ingestion

Extracts repository names, descriptions, and README files.

Portfolio Crawling

Crawls home, internal, project, and about pages from a portfolio website.

Resume PDF Parsing

Processes public, GitHub-hosted, and direct resume PDF links.

Blog Extraction

Ingests articles from Medium, Hashnode, Dev.to, WordPress, and personal blogs.

Custom URL Support

Collects content from Devpost, project showcases, research pages, and hackathon submissions.

Document Chunking

Prepares collected information as retrieval-ready document chunks.

Embedding Generation

Converts chunks into vector representations for semantic retrieval.

Semantic Retrieval

Selects relevant personal context for questions asked of the assistant.

Persistent ChromaDB

Retains the vector database, embeddings, and metadata between restarts.

FastAPI REST API

Provides an API endpoint for asking questions against the indexed knowledge base.

Docker Deployment

Packages the application and persistent data mounts for repeatable deployment.

Interactive Web UI

Lets users interact with the generated assistant in the browser.

Architecture

The architecture transforms configured public information into an answerable personal knowledge base. Every card uses the portfolio's existing interactive card transitions and remains readable across screen sizes.

info.json
Defines the person and publicly accessible sources to index
Collectors
Fetch GitHub, portfolio, resume, blog, and custom URL content
Documents
Normalize the collected public information
Chunking
Split documents into retrieval-ready passages
Embeddings
Generate semantic representations of the content
ChromaDB
Persist vector embeddings and metadata
Retriever
Find context relevant to the user's question
OpenRouter LLM
Generate an answer grounded in retrieved context
Answer
Return a personalized response through the API or web UI

Data Sources

GitHub

Repository names, repository descriptions, and README files.

Portfolio

Home, internal, project, and about page content.

Resume

Text from public, GitHub-hosted, or direct PDF resume links.

Blogs

Published articles from supported blogging platforms and personal sites.

Custom URLs

Project, research, product, Devpost, and hackathon page information.

Workflow

The first startup builds the vector database; later starts load ChromaDB and skip re-indexing before serving the API.

User Information
Automatic Crawling
Document Processing
Chunking
Embeddings
Vector Database
Question Answering
AI Response

Folder Structure

MyContextAI
MyContextAI
├── app
│   ├── api
│   ├── collectors
│   ├── config
│   ├── ingestion
│   ├── llm
│   ├── rag
│   ├── vectordb
│   ├── static
│   ├── templates
│   ├── startup.py
│   └── main.py
├── data
│   ├── cache
│   └── chroma
├── requirements.txt
├── Dockerfile
└── README.md

Example Questions

Education

“Tell me about Musheer's education.”

Projects

“What projects has Musheer built?”

VectorForgeML

“Explain VectorForgeML.”

Experience

“Summarize Musheer's experience.”

Technologies

“What technologies does Musheer use?”

KnowledgeVault AI

“What is KnowledgeVault AI?”

Docker Deployment

Docker mounts the configuration file and data directory so the assistant can retain its indexed knowledge between container runs.

Build image
docker build -t mycontextai .
Run with persistent storage
docker run `
  -p 8000:8000 `
  -v "${PWD}\app\info.json:/app/info.json" `
  -v "${PWD}\data:/app/data" `
  -e OPENROUTER_API_KEY="YOUR_API_KEY" `
  mycontextai

Persistent storage: data/chroma holds the ChromaDB database, vector embeddings, and metadata, while data/cache stores temporary cache files and downloaded assets.

REST API

POST /askEndpoint

Ask a question of the assistant using the indexed personal knowledge base.

Request JSON
{
  "question": "Tell me about Musheer's projects"
}
Response JSON
{
  "answer": "..."
}

Performance

Multi-source Ingestion

Collects context across configured public information sources.

Persistent Storage

Reuses existing ChromaDB on subsequent startups.

Semantic Retrieval

Uses embeddings to surface question-relevant information.

Production Ready

Offers a web UI, FastAPI API, and containerized deployment.

Dockerized

Packages the application with portable runtime configuration.

REST API

Exposes question answering through a focused HTTP interface.

Future Roadmap

  1. Authentication and multi-user support
  2. Streaming responses and conversation memory
  3. Hybrid search, reranking, and source citations
  4. Incremental indexing and background jobs
  5. Kubernetes deployment

Technologies

PythonFastAPIChromaDBOpenRouterDockerPlaywrightBeautifulSoupTrafilaturaPyMuPDF

Project Highlights

Multi-source Knowledge Base

Unifies public repositories, sites, PDFs, blogs, and custom pages.

Persistent Vector Storage

Stores ChromaDB data and metadata across application starts.

Semantic Search

Retrieves the context needed to answer personal knowledge questions.

REST API

Delivers answers through a concise FastAPI endpoint.

Docker Ready

Supports repeatable local and production deployment.

Production Architecture

Separates collection, ingestion, retrieval, vector storage, and LLM layers.