
A comprehensive destination information chatbot that provides real-time weather, news, events, and local time for any location worldwide. Built with LangGraph for workflow orchestration and multiple APIs for data collection.
Author: Sachin Ambe
Date: October 29, 2025
Description: This project is part of the ReadyTensor AAIDC (Agentic AI Developer Certification) curriculum, designed as a multi-agent system using LangGraph as the orchestration framework.
git clone <repository-url> cd rt-aaidc-project2 pip install -r requirements.txt
Copy the example environment file and fill in your API keys:
cp env.example .env
Edit .env with your actual API keys:
# Required API Keys GROQ_API_KEY=your_groq_api_key_here NEWS_API_KEY=your_news_api_key_here OPENWEATHER_API_KEY=your_openweather_api_key_here TAVILY_API_KEY=your_tavily_api_key_here # Optional LANGSMITH_API_KEY=your_langsmith_api_key_here LANGSMITH_TRACING=false
python src/app.py
The Gradio interface will open in your browser at http://localhost:7860.
| Service | Purpose | Free Tier | Get Key |
|---|---|---|---|
| Groq | LLM for location extraction and report generation | 14,400 requests/day | console.groq.com |
| NewsAPI | News headlines | 1,000 requests/day | newsapi.org |
| OpenWeatherMap | Weather data | 1,000 requests/day | openweathermap.org |
| Tavily | Event search | 1,000 requests/month | tavily.com |
| Service | Purpose | Free Tier | Get Key |
|---|---|---|---|
| LangSmith | Tracing and monitoring | 1,000 traces/month | smith.langchain.com |
flowchart TD A[START] --> B[parse_query] B -->|Destination-related| C[geocode_location] B -->|Not destination-related| Z[normal LLM response] --> END C --> D[get_local_time] C --> E[get_weather] C --> F[get_news] C --> G[get_events] D --> H[aggregate_results] E --> H F --> H G --> H H --> END
The application uses a YAML-based configuration system. Edit config.yaml to customize:
rt-aaidc-project2/
āāā src/
ā āāā models/ # Data models and state
ā ā āāā __init__.py
ā ā āāā state.py
ā āāā services/ # External API services
ā ā āāā __init__.py
ā ā āāā geocoding.py
ā ā āāā weather.py
ā ā āāā news.py
ā ā āāā events.py
ā ā āāā time.py
ā ā āāā llm.py
ā āāā nodes/ # LangGraph workflow nodes
ā ā āāā __init__.py
ā ā āāā location_nodes.py
ā ā āāā data_nodes.py
ā ā āāā aggregation_nodes.py
ā āāā ui/ # User interface components
ā ā āāā __init__.py
ā ā āāā gradio_interface.py
ā āāā app.py # Main application
ā āāā config_loader.py # Configuration management
ā āāā destination_compass.py # Legacy file (deprecated)
āāā config.yaml # Configuration file
āāā requirements.txt # Python dependencies
āāā MIGRATION.md # Migration guide
āāā README.md # This file
config.yamlsrc/services/src/nodes/ if neededsrc/app.pyLANGSMITH_API_KEY in your .env fileLANGSMITH_TRACING=true in your .env file"API key not configured"
.env"No location data"
"Events temporarily unavailable"
Gradio interface not loading
Enable debug logging:
export LANGCHAIN_VERBOSE=true python src/app.py
This project is licensed under the MIT License - see the LICENSE file for details.