w # 智能旅行助手 🌍
基于 LangChain + FastAPI + Vue3 的旅行规划项目,支持多智能体协作生成多日行程,并集成高德地图能力(POI、天气、路线)与前端地图展示。
- AI 旅行规划:根据城市、日期、偏好生成多日行程
- 多智能体协作:景点 / 天气 / 酒店并行获取,上层统一生成行程
- 双编排模式:支持
direct与a2a(也可auto) - 并行失败策略:支持
fail_fast与partial_continue - 地图与结果页:前端支持地图标注、行程编辑、导出图片/PDF
- 执行轨迹:
/api/trip/plan返回request_id与agent_trace
- LangChain
- FastAPI
- Pydantic v2
- 高德地图 Web Service API
- OpenAI-Compatible LLM(如 OpenAI / DeepSeek / 其他兼容网关)
- Vue 3 + TypeScript
- Vite
- Ant Design Vue
- Axios
- 高德地图 JavaScript API
helloagents-trip-planner/
├── backend/
│ ├── app/
│ │ ├── agents/
│ │ │ └── trip_planner_agent.py
│ │ ├── api/
│ │ │ ├── main.py
│ │ │ └── routes/
│ │ │ ├── trip.py
│ │ │ ├── map.py
│ │ │ ├── poi.py
│ │ │ └── agent_a2a.py
│ │ ├── models/
│ │ │ └── schemas.py
│ │ ├── services/
│ │ │ ├── amap_service.py
│ │ │ ├── llm_service.py
│ │ │ └── unsplash_service.py
│ │ └── config.py
│ ├── requirements.txt
│ └── run.py
├── frontend/
│ ├── src/
│ │ ├── services/api.ts
│ │ ├── types/index.ts
│ │ └── views/
│ │ ├── Home.vue
│ │ └── Result.vue
│ ├── .env.example
│ ├── package.json
│ └── vite.config.ts
└── README.md
以下以 Windows PowerShell 为例。
Set-Location "E:\Program Files\PycharmProjects\helloagents-trip-planner\backend"
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txt在 backend/.env 中至少配置:
AMAP_API_KEY=your_amap_web_service_key
LLM_API_KEY=your_llm_api_key
LLM_BASE_URL=https://api.openai.com/v1
LLM_MODEL_ID=gpt-4.1-mini
# 可选
HOST=0.0.0.0
PORT=8000
CORS_ORIGINS=http://localhost:5173,http://localhost:3000
LOG_LEVEL=INFO
TRIP_A2A_ENABLED=true
TRIP_PARALLEL_FAILURE_STRATEGY=partial_continue
UNSPLASH_ACCESS_KEY=your_unsplash_access_key
UNSPLASH_SECRET_KEY=your_unsplash_secret_key启动服务:
python run.py后端默认地址:http://localhost:8000
Set-Location "E:\Program Files\PycharmProjects\helloagents-trip-planner\frontend"
npm install
Copy-Item .env.example .env
npm run dev前端默认地址:http://localhost:5173
启动后访问:http://localhost:8000/docs
POST /api/trip/plan- Query 参数:
orchestration_mode=auto|direct|a2aparallel_failure_strategy=auto|fail_fast|partial_continue
- 返回:旅行计划 +
request_id+agent_trace
- Query 参数:
GET /api/trip/health
GET /api/map/poiGET /api/map/weatherPOST /api/map/routeGET /api/map/health
GET /api/poi/searchGET /api/poi/detail/{poi_id}GET /api/poi/photo
GET /api/agent-a2a/capabilitiesPOST /api/agent-a2a/dispatch
- API 基地址:
frontend/src/services/api.ts读取VITE_API_BASE_URL,默认http://localhost:8000 - Vite 已配置
/api代理到http://localhost:8000(见frontend/vite.config.ts) - 地图展示依赖高德 JS Key(
VITE_AMAP_WEB_JS_KEY)
- 后端启动报
AMAP_API_KEY未配置:检查backend/.env。 - 前端请求失败:确认后端运行在
http://localhost:8000,并检查VITE_API_BASE_URL。 - LLM 调用失败:检查
LLM_API_KEY、LLM_BASE_URL、LLM_MODEL_ID是否可用。