Agentic RAG for Project Intelligence
Prism is an open-source platform that helps teams understand complex machine learning and software projects through conversational AI.
By ingesting project documentation, source code repositories, validation reports, architecture documents, spreadsheets, and other artifacts, Prism creates a unified knowledge layer that enables users to explore, review, and understand projects through natural language conversations.
Built with local-first AI components, Prism leverages Ollama-powered LLMs, vector search, and agentic workflows to provide contextual answers grounded in project-specific knowledge.
Note
The primary usefulness of this project lies in the fact that developers sometimes have to work on projects with massive documentation, codebase and supporting artifacts with no context other than the primary purpose of that project. Its basically the job description of every Model Review Management team in BFSI industry.
Large projects often contain information scattered across:
- Technical documentation
- Source code repositories
- Validation reports
- Model development artifacts
- Architecture diagrams
- Excel spreadsheets
- Operational runbooks
Understanding how these artifacts connect requires significant onboarding effort and domain expertise.
Prism addresses this challenge by creating a conversational interface that enables users to:
- Understand project objectives
- Explore business logic
- Analyze source code
- Review model assumptions
- Investigate dependencies
- Discover implementation details
- Generate project summaries
- Accelerate governance and review workflows
| Feature Area | Capabilities |
|---|---|
| 📄 Document Intelligence | PDF ingestion • Markdown support • Semantic chunking • Metadata-aware retrieval |
| 💻 Code Intelligence | Repository ingestion • Multi-language support • Function-level indexing • Dependency awareness • Code explanation & walkthroughs |
| 🤖 Agentic RAG | Multi-step reasoning • Context-aware retrieval • Source attribution • Conversational memory • Project-wide knowledge synthesis |
| 🏠 Local-First AI | Ollama-powered LLMs • Local embeddings • Self-hosted Milvus • No external API dependency |
| 🗺️ Future Roadmap | Excel & CSV support • Image understanding • Architecture diagram analysis • Automated project reviews • Code annotations & Neo4j graph visualization • Project health dashboards • Multi Agent Pipelines |
| 🧠 Multi Agent Pipeline | Planner → Intent understanding Retriever → Knowledge source selection Code Analyst → Code reasoning Document Analyst → Documentation reasoning Governance → Validation & review Report Generator → Project summaries |
| Layer | Technology |
|---|---|
| Frontend | Streamlit |
| Backend | FastAPI |
| LLM Orchestration | LangChain |
| Agent Framework | LangGraph |
| LLM Serving | Ollama |
| Vector Database | Milvus |
| Relational Database | PostgreSQL |
| Containerization | Docker |
| Deployment | Docker Compose |
prism/
│
├── frontend/ # Streamlit web application
│ ├── pages/ # Individual UI pages
│ ├── components/ # Reusable UI components
│ ├── services/ # Backend API clients
│ ├── utils/ # Frontend helper functions
│ └── app.py # Streamlit entry point
│
├── backend/ # FastAPI backend
│ ├── api/
│ │ ├── routes/ # API endpoints
│ │ └── dependencies/ # Shared API dependencies
│ │
│ ├── core/
│ │ ├── config.py # Application configuration
│ │ ├── logging.py # Logging setup
│ │ └── security.py # Security utilities
│ │
│ ├── ingestion/
│ │ ├── document_loader/ # Document ingestion
│ │ ├── code_loader/ # Source code ingestion
│ │ ├── excel_loader/ # Excel ingestion
│ │ └── image_loader/ # Image/OCR ingestion
│ │
│ ├── chunking/
│ │ ├── document_chunker.py # Document chunking
│ │ ├── code_chunker.py # Code chunking
│ │ └── metadata_extractor.py # Metadata extraction
│ │
│ ├── embeddings/
│ │ └── embedding_service.py # Embedding generation
│ │
│ ├── vectorstore/
│ │ └── milvus_client.py # Milvus operations
│ │
│ ├── database/
│ │ ├── models/ # ORM models
│ │ ├── repositories/ # Data access layer
│ │ └── postgres.py # PostgreSQL connection
│ │
│ ├── retrieval/
│ │ ├── hybrid_search.py # Hybrid retrieval
│ │ ├── reranker.py # Result reranking
│ │ └── context_builder.py # LLM context assembly
│ │
│ ├── agents/
│ │ ├── project_analyst/ # Project understanding agent
│ │ ├── code_reviewer/ # Code analysis agent
│ │ ├── document_reviewer/ # Document review agent
│ │ └── workflow_graph.py # LangGraph workflow
│ │
│ ├── llm/
│ │ └── ollama_client.py # Ollama client
│ │
│ └── main.py # FastAPI entry point
│
├── data/ # Persistent application data
│ ├── uploads/ # Uploaded project files
│ ├── processed/ # Processed artifacts & chunks
│ ├── temp/ # Temporary files
│ ├── etcd/ # etcd persistent storage
│ ├── milvus/ # Milvus vector data
│ ├── minio/ # MinIO object storage
│ ├── ollama/ # Downloaded Ollama models
│ └── postgres/ # PostgreSQL database files
│ └── cloudbeaver/ # CloudBeaver usage data for postgresdb
│
├── tests/ # Unit & integration tests
│
├── archive/ # Shelved codes and scripts
├── static/ # Functionally non-essential files
├── health/ # Health check status
│
├── Dockerfile # Python application image
├── docker-compose.yml # Multi-container orchestration
├── .env # Environment variables
├── requirements.txt # Python dependencies
└── README.md # Project documentation
git clone https://github.com/quickSilverShanks/Prism.git
cd Prismdocker compose up --build
# download all ollama models you intend to use and check in the list
docker compose exec ollama ollama pull qwen3-embedding:0.6b
docker compose exec ollama ollama listDozzle : http://localhost:8080/
Streamlit UI : http://localhost:8501
FastAPI Docs : http://localhost:8000/docs
Attu : http://localhost:3000
CloudBeaver : http://localhost:8978
Milvus : localhost:19530
PostgreSQL : localhost:5432
Ollama : localhost:11434
Since CloudBeaver is on the same Docker network, use postgres, not localhost. Once everything is up, create a PostgreSQL connection in CloudBeaver with below credentials:
| Property | Value |
|---|---|
| Host | postgres |
| Port | 5432 |
| Database | prism |
| Username | POSTGRES_USER from your .env |
| Password | POSTGRES_PASSWORD from your .env |
Connect to Attu using:
| Property | Value |
|---|---|
| Address | milvus:19530 |
| Category | Example Questions |
|---|---|
| 📋 Project Understanding | • What is the objective of this project? • Summarize the project architecture. • Explain the data flow. |
| 💻 Code Analysis | • Explain the prediction pipeline. • Where is feature engineering implemented? • Which modules call this function? |
| 🛡️ Governance Review | • What assumptions does this model make? • Summarize validation findings. • Are there any documented limitations? |
| 🔍 Knowledge Discovery | • Which files discuss loss forecasting? • Show all references to feature selection. • Summarize business requirements. |
Prism aims to become an intelligent project companion that transforms fragmented project artifacts into an interactive knowledge system.
Instead of searching through hundreds of files, users can simply ask questions and receive contextual, explainable answers grounded in project evidence.