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.