2.7 KiB
2.7 KiB
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 模式)
- 理解任务: Agent 接收用户输入(地点列表、关键词、特殊需求)。
- 地理编码 (Geocode): 将文本地址转换为经纬度坐标。
- 计算中心 (Center Calc): 计算所有坐标的最佳几何中心。
- POI 搜索: 在中心点附近搜索符合关键词的场所。
- 生成推荐: 结合硬性规则和 LLM 语义理解对场所进行排序,并生成推荐语。
部署支持
- 支持 Vercel, Render, Railway 等平台部署。
- 生产环境通过环境变量管理敏感信息。