from __future__ import annotations """地点研究结果模型:MapResearchResult包含候选景点、餐饮与天气信息。""" from pydantic import Field from app.schemas.common import AppModel class PlaceCandidate(AppModel): """真实地点候选。""" poi_id: str | None = None name: str category: str | None = None address: str | None = None district: str | None = None # 高德通常使用 "经度,纬度" 字符串 location: str | None = None telephone: str | None = None source_query: str | None = None # 这里只说明为什么匹配用户兴趣, # 不涉及距离和交通便利性的判断。 match_reason: str | None = None class WeatherItem(AppModel): """天气查询结果。""" date: str | None = None week: str | None = None day_weather: str | None = None night_weather: str | None = None day_temperature: str | None = None night_temperature: str | None = None day_wind_direction: str | None = None night_wind_direction: str | None = None class MapResearchResult(AppModel): """地图研究 Agent 的结构化结果。""" city: str attractions: list[PlaceCandidate] = Field( default_factory=list ) restaurants: list[PlaceCandidate] = Field( default_factory=list ) weather: list[WeatherItem] = Field( default_factory=list ) notes: list[str] = Field( default_factory=list )