munals commited on
Commit
5df75a1
Β·
verified Β·
1 Parent(s): eb1c081

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +68 -58
README.md CHANGED
@@ -1,58 +1,68 @@
1
- ## Qiddiya Smart Guide
2
-
3
- Multi-agent, offline-first LangGraph application that plans an optimal day inside Qiddiya City by minimizing queue time, reducing walking distance, and maximizing enjoyment and ride coverage. Built for the Agentic AI Bootcamp multi-agent homework and deployable on Hugging Face Spaces.
4
-
5
- ### Features
6
-
7
- - **Multi-agent LangGraph workflow**: Orchestrator, Wait-Time Predictor, Route & Schedule Optimizer, Experience Writer, and Critic/Verifier.
8
- - **Offline dataset**: JSON/CSV describing park nodes, walking paths, attractions, and historical wait times.
9
- - **Deterministic core planning**: Pure-Python heuristic agents for routing, waits, and constraints.
10
- - **Optional Groq LLM**: Experience Writer can call Groq to generate richer natural-language guidance if `GROQ_API_KEY` is set.
11
- - **Guardrails**: Pydantic validation, tool argument checks, error handling, and step-by-step logging.
12
- - **Persistence**: SQLite database for plans and evaluation results.
13
- - **UI + API**: FastAPI backend with a custom HTML/CSS/JS UI at the root path (no Gradio). Itinerary shows only your selected attractions unless the system adds **suggestions** (marked in the UI) when enjoyment is low. Route order is **geographic** (nearest-neighbor from the hub). Collapsible **System response** shows logs, reflection round, and critique.
14
-
15
- ### Repository Structure
16
-
17
- - `app.py` – FastAPI app, serves UI from `templates/` and static assets from `static/`.
18
- - `templates/index.html` – Single-page UI markup.
19
- - `static/css/style.css` – Styles for the UI.
20
- - `static/js/app.js` – Front-end logic (plan form, timeline, map).
21
- - `requirements.txt` – Python dependencies.
22
- - `.env.example` – Example configuration (no secrets).
23
- - `src/` – Application code:
24
- - `models.py` – Pydantic models (`UserRequest`, `Attraction`, `ItineraryStop` with `is_suggested`, `ItineraryPlan`, `EvaluationResult`, `PlanResponse`, `SystemResponse`).
25
- - `data_loader.py` – Load offline JSON/CSV datasets.
26
- - `routing.py` – Dijkstra-based walking distance, nearest-neighbor ordering, and greedy scheduler.
27
- - `agents.py` – All agent node implementations.
28
- - `graph.py` – LangGraph `StateGraph` wiring the multi-agent workflow.
29
- - `db.py` – SQLite initialization and persistence helpers.
30
- - `evaluation.py` – Evaluation prompts and heuristic metrics.
31
- - `llm.py` – Optional Groq client for narrative guide generation.
32
- - `data/` – Offline datasets:
33
- - `park_nodes.json`, `park_edges.json`, `attractions.json`, `wait_time_history.csv`.
34
- - `architecture/` – AISA engineering pack: workflow diagram, reflection criteria, and full assignment answers (`ASSIGNMENT_ANSWERS.md`).
35
-
36
- ### Installation
37
-
38
- ```bash
39
- python -m venv .venv
40
- source .venv/bin/activate # On Windows: .venv\Scripts\activate
41
- pip install --upgrade pip
42
- pip install -r requirements.txt
43
- ```
44
-
45
- ### Running Locally
46
-
47
- ```bash
48
- python app.py
49
- ```
50
-
51
- Then open **`http://localhost:7860/`** (or `http://127.0.0.1:7860/`) in your browser to access the Qiddiya Smart Guide UI. The FastAPI OpenAPI docs are at `http://localhost:7860/docs`.
52
-
53
- ### Groq configuration (optional)
54
-
55
- 1. Copy `.env.example` to `.env`.
56
- 2. Put your Groq key in `GROQ_API_KEY`.
57
- 3. Restart the app. The Experience Writer agent will now call Groq to generate a richer step‑by‑step guide; if the key is missing, it falls back to deterministic text.
58
-
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ title: Qiddiya Smart Guide
3
+ emoji: 🎒
4
+ colorFrom: blue
5
+ colorTo: purple
6
+ sdk: docker
7
+ app_file: app.py
8
+ pinned: false
9
+ ---
10
+
11
+ ## Qiddiya Smart Guide
12
+
13
+ Multi-agent, offline-first LangGraph application that plans an optimal day inside Qiddiya City by minimizing queue time, reducing walking distance, and maximizing enjoyment and ride coverage. Built for the Agentic AI Bootcamp multi-agent homework and deployable on Hugging Face Spaces.
14
+
15
+ ### Features
16
+
17
+ - **Multi-agent LangGraph workflow**: Orchestrator, Wait-Time Predictor, Route & Schedule Optimizer, Experience Writer, and Critic/Verifier.
18
+ - **Offline dataset**: JSON/CSV describing park nodes, walking paths, attractions, and historical wait times.
19
+ - **Deterministic core planning**: Pure-Python heuristic agents for routing, waits, and constraints.
20
+ - **Optional Groq LLM**: Experience Writer can call Groq to generate richer natural-language guidance if `GROQ_API_KEY` is set.
21
+ - **Guardrails**: Pydantic validation, tool argument checks, error handling, and step-by-step logging.
22
+ - **Persistence**: SQLite database for plans and evaluation results.
23
+ - **UI + API**: FastAPI backend with a custom HTML/CSS/JS UI at the root path (no Gradio). Itinerary shows only your selected attractions unless the system adds **suggestions** (marked in the UI) when enjoyment is low. Route order is **geographic** (nearest-neighbor from the hub). Collapsible **System response** shows logs, reflection round, and critique.
24
+
25
+ ### Repository Structure
26
+
27
+ - `app.py` – FastAPI app, serves UI from `templates/` and static assets from `static/`.
28
+ - `templates/index.html` – Single-page UI markup.
29
+ - `static/css/style.css` – Styles for the UI.
30
+ - `static/js/app.js` – Front-end logic (plan form, timeline, map).
31
+ - `requirements.txt` – Python dependencies.
32
+ - `.env.example` – Example configuration (no secrets).
33
+ - `src/` – Application code:
34
+ - `models.py` – Pydantic models (`UserRequest`, `Attraction`, `ItineraryStop` with `is_suggested`, `ItineraryPlan`, `EvaluationResult`, `PlanResponse`, `SystemResponse`).
35
+ - `data_loader.py` – Load offline JSON/CSV datasets.
36
+ - `routing.py` – Dijkstra-based walking distance, nearest-neighbor ordering, and greedy scheduler.
37
+ - `agents.py` – All agent node implementations.
38
+ - `graph.py` – LangGraph `StateGraph` wiring the multi-agent workflow.
39
+ - `db.py` – SQLite initialization and persistence helpers.
40
+ - `evaluation.py` – Evaluation prompts and heuristic metrics.
41
+ - `llm.py` – Optional Groq client for narrative guide generation.
42
+ - `data/` – Offline datasets:
43
+ - `park_nodes.json`, `park_edges.json`, `attractions.json`, `wait_time_history.csv`.
44
+ - `architecture/` – AISA engineering pack: workflow diagram, reflection criteria, and full assignment answers (`ASSIGNMENT_ANSWERS.md`).
45
+
46
+ ### Installation
47
+
48
+ ```bash
49
+ python -m venv .venv
50
+ source .venv/bin/activate # On Windows: .venv\Scripts\activate
51
+ pip install --upgrade pip
52
+ pip install -r requirements.txt
53
+ ```
54
+
55
+ ### Running Locally
56
+
57
+ ```bash
58
+ python app.py
59
+ ```
60
+
61
+ Then open **`http://localhost:7860/`** (or `http://127.0.0.1:7860/`) in your browser to access the Qiddiya Smart Guide UI. The FastAPI OpenAPI docs are at `http://localhost:7860/docs`.
62
+
63
+ ### Groq configuration (optional)
64
+
65
+ 1. Copy `.env.example` to `.env`.
66
+ 2. Put your Groq key in `GROQ_API_KEY`.
67
+ 3. Restart the app. The Experience Writer agent will now call Groq to generate a richer step‑by‑step guide; if the key is missing, it falls back to deterministic text.
68
+