| from pydantic import BaseModel, Field |
| from typing import List, Optional |
|
|
| |
|
|
| class RouteInput(BaseModel): |
| origin: str = Field(description="Starting location") |
| destination: str = Field(description="Ending location") |
|
|
| class MultiRouteInput(BaseModel): |
| origin: str = Field(description="Starting location") |
| destinations: List[str] = Field(description="List of destination locations to visit") |
|
|
| class CostInput(BaseModel): |
| origin: str |
| destination: str |
| distance_km: float |
| weight_kg: float |
| duration_min: float |
|
|
| class TrafficInput(BaseModel): |
| origin: str |
| destination: str |
|
|
| class WeatherInput(BaseModel): |
| origin: str |
| destination: str |
|
|
| class ForecastWeatherInput(BaseModel): |
| address: str |
| forecast_hours: int = Field(default=48, description="Number of hours to forecast (default: 48)") |
|
|
|
|
|
|
| response_format = """ |
| # ## RESPONSE FORMATS |
| |
| **For Route-Only Queries:** |
| ROUTE SUMMARY Origin: [origin] |
| Destination: [destination] |
| Distance: [X] km |
| Base Duration: [Y] min |
| Adjusted ETA: [Z] min (includes traffic and weather) |
| |
| TRAFFIC ANALYSIS |
| Current Traffic: [level] |
| Traffic Factor: [X]x |
| Expected Delay: [Y] min |
| Advice: [recommendation] |
| |
| WEATHER CONDITIONS |
| Origin: [temp]°C, [condition] |
| Destination: [temp]°C, [condition] |
| Warnings: [if any] |
| |
| **For Full Planning (Route + Cost): |
| ** ROUTE SUMMARY |
| ... |
| COST ESTIMATE |
| Recommended Vehicle: [type] ([ID]) |
| Total Cost: Rs [amount] |
| Cost Breakdown: |
| • Base Fee: Rs 150 |
| • Fuel Cost: Rs [X] |
| • Driver Cost: Rs [Y] |
| • Traffic Multiplier: [X]x |
| • Weather Multiplier: [X]x |
| |
| **For Multi-Destination Route Planning:** |
| ``` |
| OPTIMAL MULTI-ROUTE PLAN |
| Starting from: [origin] |
| |
| Best visiting order: |
| 1. [destination 1] |
| 2. [destination 2] |
| 3. [destination 3] |
| ... |
| |
| Total Travel Time: [X] hours |
| Total Distance: [Y] km |
| |
| Route Details: |
| [origin] → [destination 1] |
| Time: [X]h | Distance: [Y] km |
| [destination 1] → [destination 2] |
| Time: [X]h | Distance: [Y] km |
| [destination 2] → [destination 3] |
| Time: [X]h | Distance: [Y] km |
| |
| OPTIMIZATION SUMMARY: |
| • Route optimized to minimize total travel time |
| • Tested all possible visiting orders |
| • This sequence saves approximately [X] minutes compared to worst route |
| |
| RECOMMENDATIONS: |
| • Estimated total journey: [X] hours |
| • Consider [traffic/weather advice if available] |
| • Plan for fuel stops every [X] km |
| ``` |
| |
| **For Weather Analysis (Current Only):** |
| ``` |
| WEATHER ANALYSIS |
| |
| Origin Weather ([location]): |
| Temperature: [X]°C (feels like [Y]°C) |
| Condition: [description] |
| Humidity: [X]% |
| Wind Speed: [X] m/s |
| Rain: [X] mm/h (if applicable) |
| |
| Destination Weather ([location]): |
| Temperature: [X]°C |
| Condition: [description] |
| |
| Weather Alerts: (if any) |
| • [warning 1] |
| • [warning 2] |
| |
| Weather Impact Factor: [X]x |
| Recommendation: [advice based on conditions] |
| |
| **For Weather Analysis (Current + Forecast):** |
| WEATHER ANALYSIS |
| |
| CURRENT CONDITIONS |
| Origin: [temp]°C, [condition] |
| Destination: [temp]°C, [condition] |
| |
| WEATHER FORECAST (Next 24-48 Hours) |
| Origin ([location]): |
| [Time]: Temp: [X]°C, Rain: [Y]mm |
| [Time]: Temp: [X]°C, Rain: [Y]mm |
| |
| Destination ([location]): |
| [Time]: Temp: [X]°C, Rain: [Y]mm |
| [Time]: Temp: [X]°C, Rain: [Y]mm |
| |
| RECOMMENDATIONS: |
| • Best departure time: [time] |
| • Travel advice: [recommendations] |
| |
| **For Forecast-Only Queries:** |
| WEATHER FORECAST for [location] |
| Forecast Period: Next [X] hours |
| |
| [Time 1]: Temp: [X]°C, Humidity: [Y]%, Rain: [Z]mm |
| [Time 2]: Temp: [X]°C, Humidity: [Y]%, Rain: [Z]mm |
| |
| SUMMARY: |
| • Best travel window: [time range] |
| • Rain expected: [Yes/No] |
| ``` |
| **For Route Improvements (with comparison):** |
| ``` |
| ROUTE SUMMARY |
| Origin: [origin] |
| Destination: [destination] |
| Distance: [distance_km] km |
| Duration: [duration_min] min |
| |
| {% if new_duration < old_duration %} |
| ✓ IMPROVEMENT DETECTED: |
| This route saves approximately [old_duration - new_duration] minutes |
| compared to your previous one ([old_duration] min → [new_duration] min). |
| |
| TRAFFIC: [traffic_level] - [advice] |
| WEATHER: [weather_conditions] |
| |
| {% else %} |
| No faster alternative was found — your current route remains optimal |
| ([old_duration] min). Traffic and weather conditions don’t justify a change. |
| |
| TRAFFIC: [traffic_level] - [advice] |
| WEATHER: [weather_conditions] |
| |
| {% endif %} |
| |
| ``` |
| """ |