# vox304/vinuni_codelab_day04_template architecture

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

- Interactive diagram: https://gitdiagram.com/vox304/vinuni_codelab_day04_template
- Repository: https://github.com/vox304/vinuni_codelab_day04_template

## Overview

This is a small educational chatbot/tool-calling lab scaffold. Its demonstrated workflow is a demo runner invoking a mock baseline and a stub agent; the agent’s intended intent analysis and tool loop are TODOs, so no agent-to-tool calls are shown. The product also defines catalog-search and support-ticket tools, with corresponding JSON files named as their intended data stores. Those operations are likewise unimplemented. The README is empty, so capability and relationship evidence comes from the sampled source only.

Main entry points: [`starter-code/tools.py`](https://github.com/vox304/vinuni_codelab_day04_template/blob/main/starter-code/tools.py) (Tool schemas and map), [`starter-code/template.py`](https://github.com/vox304/vinuni_codelab_day04_template/blob/main/starter-code/template.py) (Demo runner)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_chat["Chat modes"]
  node_runner["Demo runner<br/>[template.py]"]
  node_baseline["Baseline chatbot<br/>[template.py]"]
  node_agent["Tool-calling agent<br/>[template.py]"]
end

subgraph group_tools["Tool layer"]
  node_registry["Tool schemas and map<br/>[tools.py]"]
  node_catalog_tool["Catalog search<br/>[tools.py]"]
  node_ticket_tool["Ticket submission<br/>[tools.py]"]
end

subgraph group_data["Local data"]
  node_catalog_data[("Product catalog")]
  node_ticket_data[("Support tickets")]
end

node_runner -->|"invokes"| node_baseline
node_runner -->|"invokes"| node_agent
node_agent -->|"imports"| node_registry
node_registry -->|"maps to"| node_catalog_tool
node_registry -->|"maps to"| node_ticket_tool

click node_runner "https://github.com/vox304/vinuni_codelab_day04_template/blob/main/starter-code/template.py"
click node_baseline "https://github.com/vox304/vinuni_codelab_day04_template/blob/main/starter-code/template.py"
click node_agent "https://github.com/vox304/vinuni_codelab_day04_template/blob/main/starter-code/template.py"
click node_registry "https://github.com/vox304/vinuni_codelab_day04_template/blob/main/starter-code/tools.py"
click node_catalog_tool "https://github.com/vox304/vinuni_codelab_day04_template/blob/main/starter-code/tools.py"
click node_ticket_tool "https://github.com/vox304/vinuni_codelab_day04_template/blob/main/starter-code/tools.py"
click node_catalog_data "https://github.com/vox304/vinuni_codelab_day04_template/blob/main/raw-data/product_catalog.json"
click node_ticket_data "https://github.com/vox304/vinuni_codelab_day04_template/blob/main/raw-data/support_tickets.json"

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_runner,node_baseline,node_agent toneBlue
class node_registry,node_catalog_tool,node_ticket_tool toneAmber
class node_catalog_data,node_ticket_data toneMint
```

## Components

### Chat modes

- [Demo runner](https://github.com/vox304/vinuni_codelab_day04_template/blob/main/starter-code/template.py): `starter-code/template.py`
- [Baseline chatbot](https://github.com/vox304/vinuni_codelab_day04_template/blob/main/starter-code/template.py): `starter-code/template.py`
- [Tool-calling agent](https://github.com/vox304/vinuni_codelab_day04_template/blob/main/starter-code/template.py): `starter-code/template.py`

### Tool layer

- [Tool schemas and map](https://github.com/vox304/vinuni_codelab_day04_template/blob/main/starter-code/tools.py): `starter-code/tools.py`
- [Catalog search](https://github.com/vox304/vinuni_codelab_day04_template/blob/main/starter-code/tools.py): `starter-code/tools.py`
- [Ticket submission](https://github.com/vox304/vinuni_codelab_day04_template/blob/main/starter-code/tools.py): `starter-code/tools.py`

### Local data

- [Product catalog](https://github.com/vox304/vinuni_codelab_day04_template/blob/main/raw-data/product_catalog.json): `raw-data/product_catalog.json`
- [Support tickets](https://github.com/vox304/vinuni_codelab_day04_template/blob/main/raw-data/support_tickets.json): `raw-data/support_tickets.json`

## Connections

- Demo runner → Baseline chatbot: invokes (evidence: `starter-code/template.py`)
- Demo runner → Tool-calling agent: invokes (evidence: `starter-code/template.py`)
- Tool-calling agent → Tool schemas and map: imports (evidence: `starter-code/template.py`)
- Tool schemas and map → Catalog search: maps to (evidence: `starter-code/tools.py`)
- Tool schemas and map → Ticket submission: maps to (evidence: `starter-code/tools.py`)
