readme and requirements.txt
This commit is contained in:
parent
396d95ad8b
commit
732b68852a
4 changed files with 77 additions and 23 deletions
|
|
@ -0,0 +1,74 @@
|
||||||
|
# 🌍 AQI Analysis Agent
|
||||||
|
|
||||||
|
The AQI Analysis Agent is a powerful air quality monitoring and health recommendation tool powered by Firecrawl and Agno's AI Agent framework. This app helps users make informed decisions about outdoor activities by analyzing real-time air quality data and providing personalized health recommendations.
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- **Multi-Agent System**
|
||||||
|
- **AQI Analyzer**: Fetches and processes real-time air quality data
|
||||||
|
- **Health Recommendation Agent**: Generates personalized health advice
|
||||||
|
|
||||||
|
- **Air Quality Metrics**:
|
||||||
|
- Overall Air Quality Index (AQI)
|
||||||
|
- Particulate Matter (PM2.5 and PM10)
|
||||||
|
- Carbon Monoxide (CO) levels
|
||||||
|
- Temperature
|
||||||
|
- Humidity
|
||||||
|
- Wind Speed
|
||||||
|
|
||||||
|
- **Comprehensive Analysis**:
|
||||||
|
- Real-time data visualization
|
||||||
|
- Health impact assessment
|
||||||
|
- Activity safety recommendations
|
||||||
|
- Best time suggestions for outdoor activities
|
||||||
|
- Weather condition correlations
|
||||||
|
|
||||||
|
- **Interactive Features**:
|
||||||
|
- Location-based analysis
|
||||||
|
- Medical condition considerations
|
||||||
|
- Activity-specific recommendations
|
||||||
|
- Downloadable reports
|
||||||
|
|
||||||
|
## How to Run
|
||||||
|
|
||||||
|
Follow these steps to set up and run the application:
|
||||||
|
|
||||||
|
1. **Clone the Repository**:
|
||||||
|
```bash
|
||||||
|
git clone https://github.com/Shubhamsaboo/awesome-llm-apps.git
|
||||||
|
cd ai_agent_tutorials/ai_aqi_analysis_agent
|
||||||
|
```
|
||||||
|
|
||||||
|
2. **Install the dependencies**:
|
||||||
|
```bash
|
||||||
|
pip install -r requirements.txt
|
||||||
|
```
|
||||||
|
|
||||||
|
3. **Set up your API keys**:
|
||||||
|
- Get an OpenAI API key from: https://platform.openai.com/api-keys
|
||||||
|
- Get a Firecrawl API key from: [Firecrawl website](https://www.firecrawl.dev/app/api-keys)
|
||||||
|
|
||||||
|
4. **Run the Streamlit app**:
|
||||||
|
```bash
|
||||||
|
streamlit run ai_aqi_analysis_agent.py
|
||||||
|
```
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
1. Enter your API keys in the sidebar
|
||||||
|
2. Input location details:
|
||||||
|
- City name
|
||||||
|
- State (optional)
|
||||||
|
- Country
|
||||||
|
3. Provide personal information:
|
||||||
|
- Medical conditions (optional)
|
||||||
|
- Planned outdoor activity
|
||||||
|
4. Click "Analyze & Get Recommendations" to receive:
|
||||||
|
- Current air quality data
|
||||||
|
- Health impact analysis
|
||||||
|
- Activity safety recommendations
|
||||||
|
- Downloadable report
|
||||||
|
|
||||||
|
## Note
|
||||||
|
|
||||||
|
The air quality data is fetched using Firecrawl's web scraping capabilities. Due to caching and rate limiting, the data might not always match real-time values on the website. For the most accurate real-time data, consider checking the source website directly.
|
||||||
|
|
@ -5,7 +5,6 @@ from agno.agent import Agent
|
||||||
from agno.models.openai import OpenAIChat
|
from agno.models.openai import OpenAIChat
|
||||||
from firecrawl import FirecrawlApp
|
from firecrawl import FirecrawlApp
|
||||||
import streamlit as st
|
import streamlit as st
|
||||||
import asyncio
|
|
||||||
|
|
||||||
class AQIResponse(BaseModel):
|
class AQIResponse(BaseModel):
|
||||||
success: bool
|
success: bool
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
agno
|
||||||
|
openai
|
||||||
|
firecrawl-py==1.9.0
|
||||||
|
|
@ -1,22 +0,0 @@
|
||||||
from firecrawl import FirecrawlApp
|
|
||||||
from pydantic import BaseModel, Field
|
|
||||||
|
|
||||||
# Initialize the FirecrawlApp with your API key
|
|
||||||
app = FirecrawlApp(api_key='')
|
|
||||||
|
|
||||||
class ExtractSchema(BaseModel):
|
|
||||||
aqi: float = Field(description="Air Quality Index")
|
|
||||||
temperature: float = Field(description="Temperature in degrees Celsius")
|
|
||||||
humidity: float = Field(description="Humidity percentage")
|
|
||||||
wind_speed: float = Field(description="Wind speed in kilometers per hour")
|
|
||||||
pm25: float = Field(description="Particulate Matter 2.5 micrometers")
|
|
||||||
pm10: float = Field(description="Particulate Matter 10 micrometers")
|
|
||||||
co: float = Field(description="Carbon Monoxide level")
|
|
||||||
|
|
||||||
data = app.extract([
|
|
||||||
'https://www.aqi.in/dashboard/india/andhra-pradesh/kakinada/*'
|
|
||||||
], {
|
|
||||||
'prompt': 'Extract the AQI, temperature, humidity, wind speed, PM2.5, PM10, and CO levels from the page.',
|
|
||||||
'schema': ExtractSchema.model_json_schema(),
|
|
||||||
})
|
|
||||||
print(data)
|
|
||||||
Loading…
Reference in a new issue