# 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 等平台部署。
*   生产环境通过环境变量管理敏感信息。
