# kkg2001/price-intelligence-tracker architecture

> Architecture diagram of the GitHub repository kkg2001/price-intelligence-tracker, 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/kkg2001/price-intelligence-tracker
- Repository: https://github.com/kkg2001/price-intelligence-tracker

## Overview

Price Intelligent Tracker is a product and price advice assistant. A user selects a product and asks a question in Streamlit; the UI requests the FastAPI endpoint, which validates the product and invokes the agent. The agent consults the Groq model and dispatches product, price-analysis, recommendation, or product-knowledge tools; the UI displays the answer and execution trace. The README also documents semantic retrieval and structured price intelligence. The graph follows the sampled runtime code; vector-store persistence is configured, but its directory is not in the supplied tree.

Main entry points: [`database.py`](https://github.com/kkg2001/price-intelligence-tracker/blob/master/database.py) (SQLite access), [`app.py`](https://github.com/kkg2001/price-intelligence-tracker/blob/master/app.py) (Streamlit UI), [`tools.py`](https://github.com/kkg2001/price-intelligence-tracker/blob/master/tools.py) (Agent tools), [`rag.py`](https://github.com/kkg2001/price-intelligence-tracker/blob/master/rag.py) (Knowledge retrieval)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_presentation["User interface"]
  node_streamlit["Streamlit UI<br/>[app.py]"]
end

subgraph group_service["Query service"]
  node_api["FastAPI query API<br/>[api.py]"]
end

subgraph group_intelligence["Agent and intelligence"]
  node_agent["Tool-calling agent<br/>[agent.py]"]
  node_tools["Agent tools<br/>[tools.py]"]
  node_analytics["Price analysis<br/>[analytics.py]"]
  node_rag["Knowledge retrieval<br/>[rag.py]"]
end

subgraph group_data["Product data"]
  node_vectorstore[("Chroma vector store")]
  node_knowledge["Product knowledge CSV"]
  node_database[("SQLite product store")]
  node_dbaccess["SQLite access<br/>[database.py]"]
end

node_user(("User"))
node_groq["Groq LLM"]
node_embeddings["Embedding model"]

node_user -->|"asks question"| node_streamlit
node_streamlit -->|"loads products"| node_dbaccess
node_dbaccess -->|"reads products"| node_database
node_streamlit -->|"POSTs query"| node_api
node_api -->|"validates product"| node_dbaccess
node_api -->|"invokes agent"| node_agent
node_agent -->|"calls model"| node_groq
node_agent -->|"dispatches tools"| node_tools
node_tools -->|"gets product"| node_dbaccess
node_tools -->|"requests analysis"| node_analytics
node_analytics -->|"reads product history"| node_dbaccess
node_dbaccess -->|"reads records"| node_database
node_tools -->|"retrieves knowledge"| node_rag
node_rag -->|"loads documents"| node_knowledge
node_rag -->|"creates embeddings"| node_embeddings
node_rag -->|"searches vectors"| node_vectorstore
node_streamlit -->|"shows answer"| node_user

click node_streamlit "https://github.com/kkg2001/price-intelligence-tracker/blob/master/app.py"
click node_api "https://github.com/kkg2001/price-intelligence-tracker/blob/master/api.py"
click node_agent "https://github.com/kkg2001/price-intelligence-tracker/blob/master/agent.py"
click node_tools "https://github.com/kkg2001/price-intelligence-tracker/blob/master/tools.py"
click node_analytics "https://github.com/kkg2001/price-intelligence-tracker/blob/master/analytics.py"
click node_rag "https://github.com/kkg2001/price-intelligence-tracker/blob/master/rag.py"
click node_knowledge "https://github.com/kkg2001/price-intelligence-tracker/blob/master/data/product_knowledge.csv"
click node_database "https://github.com/kkg2001/price-intelligence-tracker/blob/master/price_intelligence.db"
click node_dbaccess "https://github.com/kkg2001/price-intelligence-tracker/blob/master/database.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_streamlit,node_user toneBlue
class node_api toneAmber
class node_agent,node_tools,node_analytics,node_rag toneMint
class node_vectorstore,node_knowledge,node_database,node_dbaccess toneRose
class node_groq,node_embeddings toneIndigo
```

## Components

### User interface

- [Streamlit UI](https://github.com/kkg2001/price-intelligence-tracker/blob/master/app.py): `app.py`

### Query service

- [FastAPI query API](https://github.com/kkg2001/price-intelligence-tracker/blob/master/api.py): `api.py`

### Agent and intelligence

- [Tool-calling agent](https://github.com/kkg2001/price-intelligence-tracker/blob/master/agent.py): `agent.py`
- [Agent tools](https://github.com/kkg2001/price-intelligence-tracker/blob/master/tools.py): `tools.py`
- [Price analysis](https://github.com/kkg2001/price-intelligence-tracker/blob/master/analytics.py): `analytics.py`
- [Knowledge retrieval](https://github.com/kkg2001/price-intelligence-tracker/blob/master/rag.py): `rag.py`

### Product data

- **Chroma vector store**
- [Product knowledge CSV](https://github.com/kkg2001/price-intelligence-tracker/blob/master/data/product_knowledge.csv): `data/product_knowledge.csv`
- [SQLite product store](https://github.com/kkg2001/price-intelligence-tracker/blob/master/price_intelligence.db): `price_intelligence.db`
- [SQLite access](https://github.com/kkg2001/price-intelligence-tracker/blob/master/database.py): `database.py`

### Other components

- **User**
- **Groq LLM**
- **Embedding model**

## Connections

- User → Streamlit UI: asks question
- Streamlit UI → SQLite access: loads products
- SQLite access → SQLite product store: reads products
- Streamlit UI → FastAPI query API: POSTs query
- FastAPI query API → SQLite access: validates product
- FastAPI query API → Tool-calling agent: invokes agent
- Tool-calling agent → Groq LLM: calls model
- Tool-calling agent → Agent tools: dispatches tools
- Agent tools → SQLite access: gets product
- Agent tools → Price analysis: requests analysis
- Price analysis → SQLite access: reads product history
- SQLite access → SQLite product store: reads records
- Agent tools → Knowledge retrieval: retrieves knowledge
- Knowledge retrieval → Product knowledge CSV: loads documents
- Knowledge retrieval → Embedding model: creates embeddings
- Knowledge retrieval → Chroma vector store: searches vectors
- Streamlit UI → User: shows answer
