使用说明
电话推荐代理
人工智能副驾驶在几秒钟内缩小了手机选择范围。后端运行由规划者编排的模型上下文协议(MCP)工具链,而新的glassmorphism React接口提供了会话内存、推理透明度和实时突尼斯定价的优质体验。
✨ 亮点
- 基于记忆的代理推理:编排器将LLM规划与启发式相结合,并持久化对话上下文,因此后续问题会自动重用之前讨论的设备。
- 实时市场数据:并发scraper(requests+cloudscraper+BeautifulSoup)并行查询Tunisianet、Zoom和Spacenet,并对定价元数据进行标准化,以便快速比较。
- 丰富的见解:工具利用规格、Reddit情绪、替代建议和需求验证来提出可操作的谈话要点。
- 玻璃UIVite+React 18+Tailwind前端将所有内容都封装在磨砂玻璃仪表板中,配有聊天历史记录、推理切换和有趣的机器人徽章。
- 基于标准的集成JSON-RPC 2.0和MCP兼容的工具模式使得在外部产品中嵌入代理变得容易。
🧱 架构概述
┌─────────────────────────────────┐
│ React Frontend │
│ - ChatPane + Reasoning Panel │
│ - Tailwind / Framer Motion │
│ - React Query session client │
└───────────────▲────────────────┘
│ REST / JSON-RPC
┌───────────────┴────────────────┐
│ FastAPI MCP Server │
│ ToolOrchestrator (LLM+rules) │
│ Session memory, logging │
│ JSON-RPC dispatcher │
└───────────────▲────────────────┘
│ Tool calls (thread pool)
┌───────────────┴────────────────┐
│ Tool Suite │
│ phone_specs / specs_analyzer │
│ price_extractor (concurrent) │
│ web_scraper (Reddit PRAW) │
│ sentiment / alternatives │
│ spec_validator │
└───────────────┴────────────────┘
│
CSV / Postgres + APIs
🛠 后端堆栈
- FastAPI+JSON-RPC:公开REST帮助程序和
/rpc具有JSON-RPC 2.0响应、CORS和线程池工具执行的端点。 - 工具编排器:将启发式意图检测与可选功能相结合
mistralai规划、维护会话上下文并协调MCP工具调用。 - 规格数据层:默认为a
pandasDataFrame来源于Backend/database/mobile.csv,带有可选的PostgreSQL+SQLAlchemy后端和三元组相似性。 - 蜘蛛定价:用途
requests,cloudscraper,以及BeautifulSoup在...之内ThreadPoolExecutor弹性收集TND定价信号。 - 检查摄入情况:依赖
praw对Reddit进行身份验证,并过滤提交/评论,以获得无谣言的情绪输入。 - 相似性启发式:适用
rapidfuzz评分和自定义数值解析助手,以保持模糊匹配的可解释性和确定性。
🚀 入门指南
后端
-
创建并激活虚拟环境
python -m venv venv source venv/bin/activate # Windows: venv\Scripts\activate -
安装依赖项
pip install -r requirements.txt -
配置环境 (后端/.env)
MISTRAL_API_KEY=your_mistral_key enables LLM synthesis MCP_SERVER_URL=http://127.0.0.1:8000 FRONTEND_ORIGIN=http://localhost:5173 # Optional PostgreSQL backing store POSTGRES_HOST=... POSTGRES_DB=... POSTGRES_USER=... POSTGRES_PASSWORD=... -
运行服务器
uvicorn Backend.mcp_server:app --host 0.0.0.0 --port 8000 --reload
前端
-
cd frontend npm install npm run dev - 访问
http://localhost:5173用于实时玻璃UI。
🧠 会话代理
- 端点:
POST /agent/chat - 请求:
{ "query": "What is the price of iPhone 14 Pro?", "session_id": "optional-stable-id", "include_reasoning": true } - 响应:自然语言答案加上工具推理快照(如有要求)。
- 对话会自动重用最新的电话上下文来回答后续问题。
要直接使用MCP/JSON-RPC,请将结构化调用发送到 POST /rpc 使用方法:
| 方法 | 目的 |
|---|---|
mcp.list_tools |
枚举可用的工具架构。 |
mcp.call_tool |
使用关键字参数调用单个工具。 |
agent.recommend |
运行RAG+推荐管道。 |
agent.chat |
与REST助手的行为相同。 |
system.ping |
轻量级健康检查。 |
Backend/mcp_client.py 包含现成的Python包装器。
🛠️ 工具目录
- 电话规格 –
pandas+rapidfuzz通过可选的PostgreSQL三元组搜索进行模糊匹配SQLAlchemy. - web_scraper –Reddit聚合由
praw,具有谣言过滤和身份验证诊断功能。 - 规格分析器 –启发式地对性能/电池/摄像头/显示器特征进行分类。
- 情感分析 –在Reddit评论批次上进行关键字驱动的利弊提取。
- 价格提取器 –
requests/cloudscraper/BeautifulSoup突尼斯零售商与时间指标的并发性。 - 替代品 –纯Python规范距离启发式算法,用于预算敏感的替代方案。
- spec_validator –使用正则表达式解析助手进行基于规则的需求检查。
所有工具结果均遵循共享 ToolOutput 一致性测井合同。
🧰 前端功能
- 聊天窗格 带有动画消息气泡、乐观更新和推理切换。
- 会话持续 通过localStorage,重新加载可以保持上下文的完整性。
- 顺风设计代币 (
src/theme/tokens.ts)用于快速主题化。 - 机器人徽章 它在没有GPU开销的情况下锚定了品牌标识。
应用程序结构反映了原子设计原则,并已准备好通过Storybook(尚未配置)进行组件文档记录。
📂 项目结构
Backend/
mcp_server.py # FastAPI app, JSON-RPC dispatcher, CORS setup
orchestrator.py # LLM + heuristic planner with session memory
tools/ # All MCP tool implementations
frontend/
src/
App.tsx # Glass dashboard + chat integration
components/ # Layout, chat, and common UI pieces
hooks/useAgentChat.ts # React Query powered chat state
utils/ # env, id, and session helpers
public/assets/robot-sticker.svg
🔖 许可证
此存储库根据MIT许可证获得许可。看 LICENSE 了解详情。