Skip to content

quickSilverShanks/Prism

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

13 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Prism

Agentic RAG for Project Intelligence

prism_banner

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.


Why Prism?

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

Key Features

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

Initial Planned Architecture

System Architecture

prism-architecture

Agentic Workflow

prism-agentflow-workflow

Technology Stack

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

Project Structure

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

Getting Started

Clone Repository

git clone https://github.com/quickSilverShanks/Prism.git

cd Prism

Start Services

docker 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 list

Access Applications

Dozzle          : 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

Example Questions

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.

Vision

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.


If you like this project, please consider giving it a ⭐️ star to help others discover it.

GitHub Stars GitHub Forks GitHub Issues


Please note this is not open for contributions yet as basic features are still being added in, but feel free to share improvement suggestions or 🍴 fork it and explore the code!

About

An open-source platform that helps teams understand complex machine learning and software projects through conversational AI

Topics

Resources

License

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages