# singhsidhukuldeep/supportdesk-rag-workshop architecture

> Architecture diagram of the GitHub repository singhsidhukuldeep/supportdesk-rag-workshop, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/singhsidhukuldeep/supportdesk-rag-workshop
- Repository: https://github.com/singhsidhukuldeep/supportdesk-rag-workshop

## Overview

SupportDesk-RAG is a hands-on workshop, not one integrated application: learners explore ticket retrieval in separate modules, from embeddings and document preparation through indexing and grounded RAG, then evaluation and agentic approaches. The README documents the capabilities; sampled demos show OpenAI embedding/chat use, Chroma-backed preparation, LlamaIndex indexing, and retrieval evaluation. Source excerpts are partial, so the graph does not assume that module outputs are wired together as a single runtime.

Main entry points: [`modules/4_rag_pipeline/demo.py`](https://github.com/singhsidhukuldeep/supportdesk-rag-workshop/blob/master/modules/4_rag_pipeline/demo.py) (Grounded RAG demos), [`modules/2_chunking/demo.py`](https://github.com/singhsidhukuldeep/supportdesk-rag-workshop/blob/master/modules/2_chunking/demo.py) (Chunking demos), [`modules/5_evaluation/demo.py`](https://github.com/singhsidhukuldeep/supportdesk-rag-workshop/blob/master/modules/5_evaluation/demo.py) (RAG evaluation), [`modules/6_agentic_rag/demo.py`](https://github.com/singhsidhukuldeep/supportdesk-rag-workshop/blob/master/modules/6_agentic_rag/demo.py) (Agentic RAG demos)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_workshop["Retrieval Workshop"]
  node_embeddings["Embedding demos<br/>[demo.py]"]
  node_chunking["Chunking demos<br/>[demo.py]"]
  node_indexing["Index strategy demos<br/>[demo.py]"]
  node_rag["Grounded RAG demos<br/>[demo.py]"]
end

subgraph group_advanced["Evaluation and Agents"]
  node_evaluation["RAG evaluation<br/>[demo.py]"]
  node_eval_queries["Evaluation queries"]
  node_agentic["Agentic RAG demos<br/>[demo.py]"]
  node_agent_tools["Ticket tools<br/>[tools.py]"]
end

subgraph group_external["External Systems"]
  node_openai_embed{{"OpenAI embeddings"}}
  node_openai_chat{{"OpenAI chat models"}}
  node_chroma[("Chroma vector store")]
  node_llamaindex{{"LlamaIndex"}}
  node_faiss[("FAISS")]
  node_langchain{{"LangChain"}}
end

node_learner(("Workshop learner"))
node_tickets["Synthetic tickets"]

node_learner -->|"runs demo"| node_embeddings
node_learner -->|"runs demo"| node_chunking
node_learner -->|"runs demo"| node_indexing
node_learner -->|"runs demo"| node_rag
node_learner -->|"runs demo"| node_evaluation
node_learner -->|"runs demo"| node_agentic
node_embeddings -->|"embeds ticket text"| node_tickets
node_embeddings -->|"requests vectors"| node_openai_embed
node_chunking -->|"prepares documents"| node_tickets
node_chunking -->|"requests vectors"| node_openai_embed
node_chunking -->|"builds store"| node_chroma
node_indexing -->|"builds indexes"| node_llamaindex
node_indexing -.->|"requests summaries"| node_openai_chat
node_rag -->|"loads tickets"| node_tickets
node_rag -->|"requests vectors"| node_openai_embed
node_rag -->|"creates vector store"| node_chroma
node_rag -->|"builds RAG chain"| node_langchain
node_rag -->|"generates answers"| node_openai_chat
node_evaluation -->|"reads queries"| node_eval_queries
node_evaluation -->|"searches vectors"| node_faiss
node_evaluation -->|"judges answers"| node_openai_chat
node_agentic -->|"binds tools"| node_langchain
node_agentic -->|"selects tools"| node_openai_chat
node_agentic -->|"dispatches calls"| node_agent_tools
node_agent_tools -->|"reads tickets"| node_tickets
node_agent_tools -->|"requests vectors"| node_openai_embed

click node_embeddings "https://github.com/singhsidhukuldeep/supportdesk-rag-workshop/blob/master/modules/1_embeddings/demo.py"
click node_chunking "https://github.com/singhsidhukuldeep/supportdesk-rag-workshop/blob/master/modules/2_chunking/demo.py"
click node_indexing "https://github.com/singhsidhukuldeep/supportdesk-rag-workshop/blob/master/modules/3_indexing/demo.py"
click node_rag "https://github.com/singhsidhukuldeep/supportdesk-rag-workshop/blob/master/modules/4_rag_pipeline/demo.py"
click node_tickets "https://github.com/singhsidhukuldeep/supportdesk-rag-workshop/blob/master/data/synthetic_tickets.json"
click node_evaluation "https://github.com/singhsidhukuldeep/supportdesk-rag-workshop/blob/master/modules/5_evaluation/demo.py"
click node_eval_queries "https://github.com/singhsidhukuldeep/supportdesk-rag-workshop/blob/master/modules/5_evaluation/evaluation_queries.json"
click node_agentic "https://github.com/singhsidhukuldeep/supportdesk-rag-workshop/blob/master/modules/6_agentic_rag/demo.py"
click node_agent_tools "https://github.com/singhsidhukuldeep/supportdesk-rag-workshop/blob/master/modules/6_agentic_rag/tools.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_embeddings,node_chunking,node_indexing,node_rag toneBlue
class node_evaluation,node_eval_queries,node_agentic,node_agent_tools toneAmber
class node_openai_embed,node_openai_chat,node_chroma,node_llamaindex,node_faiss,node_langchain toneMint
class node_learner toneIndigo
class node_tickets toneTeal
```

## Components

### Retrieval Workshop

- [Embedding demos](https://github.com/singhsidhukuldeep/supportdesk-rag-workshop/blob/master/modules/1_embeddings/demo.py): `modules/1_embeddings/demo.py`
- [Chunking demos](https://github.com/singhsidhukuldeep/supportdesk-rag-workshop/blob/master/modules/2_chunking/demo.py): `modules/2_chunking/demo.py`
- [Index strategy demos](https://github.com/singhsidhukuldeep/supportdesk-rag-workshop/blob/master/modules/3_indexing/demo.py): `modules/3_indexing/demo.py`
- [Grounded RAG demos](https://github.com/singhsidhukuldeep/supportdesk-rag-workshop/blob/master/modules/4_rag_pipeline/demo.py): `modules/4_rag_pipeline/demo.py`

### Evaluation and Agents

- [RAG evaluation](https://github.com/singhsidhukuldeep/supportdesk-rag-workshop/blob/master/modules/5_evaluation/demo.py): `modules/5_evaluation/demo.py`
- [Evaluation queries](https://github.com/singhsidhukuldeep/supportdesk-rag-workshop/blob/master/modules/5_evaluation/evaluation_queries.json): `modules/5_evaluation/evaluation_queries.json`
- [Agentic RAG demos](https://github.com/singhsidhukuldeep/supportdesk-rag-workshop/blob/master/modules/6_agentic_rag/demo.py): `modules/6_agentic_rag/demo.py`
- [Ticket tools](https://github.com/singhsidhukuldeep/supportdesk-rag-workshop/blob/master/modules/6_agentic_rag/tools.py): `modules/6_agentic_rag/tools.py`

### External Systems

- **OpenAI embeddings**
- **OpenAI chat models**
- **Chroma vector store**
- **LlamaIndex**
- **FAISS**
- **LangChain**

### Other components

- **Workshop learner**
- [Synthetic tickets](https://github.com/singhsidhukuldeep/supportdesk-rag-workshop/blob/master/data/synthetic_tickets.json): `data/synthetic_tickets.json`

## Connections

- Workshop learner → Embedding demos: runs demo
- Workshop learner → Chunking demos: runs demo
- Workshop learner → Index strategy demos: runs demo
- Workshop learner → Grounded RAG demos: runs demo
- Workshop learner → RAG evaluation: runs demo
- Workshop learner → Agentic RAG demos: runs demo
- Embedding demos → Synthetic tickets: embeds ticket text
- Embedding demos → OpenAI embeddings: requests vectors
- Chunking demos → Synthetic tickets: prepares documents
- Chunking demos → OpenAI embeddings: requests vectors
- Chunking demos → Chroma vector store: builds store
- Index strategy demos → LlamaIndex: builds indexes
- Index strategy demos → OpenAI chat models: requests summaries
- Grounded RAG demos → Synthetic tickets: loads tickets
- Grounded RAG demos → OpenAI embeddings: requests vectors
- Grounded RAG demos → Chroma vector store: creates vector store
- Grounded RAG demos → LangChain: builds RAG chain
- Grounded RAG demos → OpenAI chat models: generates answers
- RAG evaluation → Evaluation queries: reads queries
- RAG evaluation → FAISS: searches vectors
- RAG evaluation → OpenAI chat models: judges answers
- Agentic RAG demos → LangChain: binds tools
- Agentic RAG demos → OpenAI chat models: selects tools
- Agentic RAG demos → Ticket tools: dispatches calls
- Ticket tools → Synthetic tickets: reads tickets
- Ticket tools → OpenAI embeddings: requests vectors
