Files
WoMenQuNaJu/MeetSpot/project_summary_zh.md
2026-02-04 16:11:55 +08:00

46 lines
2.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# MeetSpot 项目分析报告
## 项目概览
MeetSpot 是一个 AI 驱动的智能代理Agent旨在解决多人会面的地点选择问题。与寻找"我附近"的传统地图不同MeetSpot 基于所有参与者的位置计算"公平中心点",并推荐能最小化总行程时间且满足特定需求(如安静、商务、停车方便)的最佳场所。
## 核心特性
* **公平会面点计算**: 使用球面几何Haversine公式和智能算法计算几何中心确保对所有参与者公平。
* **AI Agent 模式**: 基于 ReAct 模式的智能代理 (`MeetSpotAgent`),能够处理复杂请求,通过多步推理和工具调用(搜索、计算、评分)生成个性化推荐。
* **双模式智能处理**:
* **规则模式 (0.3-0.8s)**: 针对简单查询,快速响应。
* **Agent 模式 (3-8s)**: 针对复杂查询(多地点、多需求),启用 LLM 深度推理。
* **智能评分系统**: 结合规则评分(距离、评分、热度)与 LLM 语义评分(与"安静"、"商务"等需求的匹配度)。
* **丰富的场所信息**: 基于品牌特征知识库提供详细的场所属性WiFi、停车、环境特色等
## 技术架构
### 后端 (Backend)
* **框架**: FastAPI (Python 3.11+)
* **入口**: `web_server.py` (本地开发), `api/index.py` (生产环境/Vercel)
* **核心逻辑**:
* `app/tool/meetspot_recommender.py`: 推荐引擎核心负责地理编码、中心点计算、POI 搜索和排序。
* `app/agent/`: AI Agent 实现模块。
* `meetspot_agent.py`: 代理核心逻辑 (Think-Act 循环)。
* `tools.py`: 工具集封装 (`Geocode`, `CalculateCenter`, `SearchPOI`, `GenerateRecommendation`)。
* **LLM 集成**: `app/llm.py` 封装了 OpenAI 兼容接口,支持 GPT-4, DeepSeek 等模型。
### 前端 (Frontend)
* **技术栈**: 原生 HTML5, CSS3, JavaScript (Vanilla JS)。
* **模板**: 使用 Jinja2 (`templates/` 目录)。
* **地图集成**: 高德地图 (AMap) JS API。
### 配置 (Configuration)
* **管理**: `app/config.py` 统一管理配置。
* **关键配置**: `AMAP_API_KEY` (高德地图), `LLM_API_KEY` (AI 模型)。
## 工作流程 (Agent 模式)
1. **理解任务**: Agent 接收用户输入(地点列表、关键词、特殊需求)。
2. **地理编码 (Geocode)**: 将文本地址转换为经纬度坐标。
3. **计算中心 (Center Calc)**: 计算所有坐标的最佳几何中心。
4. **POI 搜索**: 在中心点附近搜索符合关键词的场所。
5. **生成推荐**: 结合硬性规则和 LLM 语义理解对场所进行排序,并生成推荐语。
## 部署支持
* 支持 Vercel, Render, Railway 等平台部署。
* 生产环境通过环境变量管理敏感信息。