Swiggy Instamart购买模式分析器
](https://www.python.org/downloads/)  
人工智能购物助手,分析您的Swiggy Instamart购买历史,预测您可能需要的商品,然后与Swiggy MCP集成,进行实时购物车管理。
✨ 特性
🧠 智能模式分析
- 购买频率分析 -跟踪您购买每件商品的频率
- 近期评分 -根据过去的模式确定应重新订购的商品
- 数量智能 -了解您的典型购买数量
- 加权算法 -40%频率+40%最近度+20%数量
🌐 漂亮的Web界面
- 实时仪表盘 -查看订单历史、推荐和购物车
- 一键添加到购物车 -将AI推荐直接添加到您的Swiggy购物车
- 实时购物车同步 -实时查看您的Swiggy Instamart购物车
- 响应式设计 -适用于台式机、平板电脑和移动设备
🔗 Swiggy MCP集成
- 实时购物车管理 -获取并更新您实际的Swiggy购物车
- 订单历史跟踪 -同步过去7天的订单
- 产品搜索 -搜索Swiggy Instamart库存
- 地址管理 -使用您保存的送货地址
🔒 隐私和安全
- OAuth 2.0 PKCE -安全身份验证流程
- 加密令牌存储 -在本地SQLite数据库中加密的令牌
- 仅本地数据 -所有分析都在您的机器上运行
- 无云同步 -您的数据永远不会离开您的设备
🚀 快速开始
先决条件
- Python 3.9或更高版本
- macOS(用于日程安排功能)
- Swiggy Instamart帐户
安装
# Clone the repository
git clone https://github.com/hiransuvrat/swiggy-analyzer.git
cd swiggy-analyzer
# Create virtual environment
python3 -m venv .venv
source .venv/bin/activate
# Install dependencies
pip install -r requirements.txt
# Install the package
pip install -e .认证
# Login to Swiggy (opens browser for OAuth)
swiggy-analyzer auth login
# Check authentication status
swiggy-analyzer auth status启动Web UI
# Start the web server
./run_web.sh
# Open in browser
./open_web_ui.sh
# Or manually visit: http://localhost:5000📖 用法
网络界面
web UI提供三个主面板:
- 建议小组 (左)
- 基于人工智能的物品建议 - 颜色编码分数(绿色=高优先级) - 一键添加到购物车 - 每项建议的推理
- 订单历史面板 正确的
- 按时间顺序排列 - 项目详细信息和数量 - 购买频率洞察
- 购物车面板 (底部)
- 实时Swiggy购物车显示 - 总价明细 - 快速购物车管理
CLI命令
# Sync order history from Swiggy
swiggy-analyzer sync now
# Get AI recommendations (CLI)
swiggy-analyzer analyze run
# View basket
swiggy-analyzer basket view
# Manage authentication
swiggy-analyzer auth login
swiggy-analyzer auth status
swiggy-analyzer auth logout🏗️ 建筑
┌─────────────────────────────────────────────────────┐
│ Web UI (Flask) │
│ Bootstrap 5 + Vanilla JS │
└─────────────────────┬───────────────────────────────┘
│
┌─────────────────────▼───────────────────────────────┐
│ Core Analysis Engine │
│ ┌──────────────┐ ┌──────────────┐ ┌───────────┐ │
│ │ Pattern │ │ Scoring │ │ Predictor │ │
│ │ Detector │ │ Engine │ │ │ │
│ └──────────────┘ └──────────────┘ └───────────┘ │
└─────────────────────┬───────────────────────────────┘
│
┌─────────────────────▼───────────────────────────────┐
│ Swiggy MCP Client │
│ (JSON-RPC 2.0 over HTTPS) │
│ ┌──────────────┐ ┌──────────────┐ ┌───────────┐ │
│ │ get_cart │ │ get_orders │ │ search │ │
│ │ update_cart │ │get_addresses │ │ checkout │ │
│ └──────────────┘ └──────────────┘ └───────────┘ │
└─────────────────────┬───────────────────────────────┘
│
┌─────────────────────▼───────────────────────────────┐
│ Swiggy Instamart MCP Server │
│ https://mcp.swiggy.com/im │
└─────────────────────────────────────────────────────┘🔧 配置
编辑 config.yaml 自定义:
analysis:
min_score: 50.0 # Minimum recommendation score
max_items: 20 # Max recommendations to show
weights:
frequency: 0.40 # Weight for purchase frequency
recency: 0.40 # Weight for time since last purchase
quantity: 0.20 # Weight for quantity patterns
mcp:
base_url: "https://mcp.swiggy.com/im"
timeout: 30
retry_attempts: 3
rate_limit: 100 # Max requests per minute📊 API终点
Web API
GET /api/status-身份验证和数据库状态GET /api/orders-订单历史(最近50个)GET /api/recommendations-人工智能建议GET /api/basket-当前购物车内容POST /api/basket/add-将商品添加到购物车POST /api/basket/clear-清空购物车POST /api/sync-同步来自Swiggy的订单
所有端点返回JSON success 字段和适当的数据/错误消息。
🛠️ 发展
项目结构
swiggy-analyzer/
├── swiggy_analyzer/
│ ├── analysis/ # Pattern detection & scoring
│ ├── auth/ # OAuth authentication
│ ├── basket/ # Cart management
│ ├── cli/ # Command-line interface
│ ├── config/ # Configuration management
│ ├── mcp/ # Swiggy MCP client
│ ├── scheduler/ # Background job scheduling
│ └── web/ # Flask web application
├── tests/ # Unit tests
├── config.yaml # Configuration file
├── requirements.txt # Python dependencies
└── setup.py # Package installation运行测试
# Install test dependencies
pip install -e ".[dev]"
# Run tests
pytest
# With coverage
pytest --cov=swiggy_analyzer代码风格
# Format code
black swiggy_analyzer/
# Check types
mypy swiggy_analyzer/
# Lint
flake8 swiggy_analyzer/🔐 MCP集成详细信息
该项目使用官方的Swiggy MCP服务器,并使用适当的JSON-RPC 2.0协议:
可用工具
get_cart-获取包含商品和价格的当前购物车update_cart-在购物车中添加/删除商品clear_cart-清空购物车get_orders-订单历史(过去7天)search_products-搜索Swiggy Instamart目录get_addresses-已保存的收货地址checkout-下单(仅COD)
认证
使用OAuth 2.0 PKCE流:
- 打开浏览器进行Swiggy登录
- 用户授权应用程序
- 访问令牌已加密并存储在本地
- 到期时自动刷新令牌
📝 重要说明
局限性
- 订单历史:MCP只能提取过去7天的订单
- 仅限Instamart:仅限杂货订单(不包括食品配送)
- 支付:结账仅支持货到付款
- 会话冲突:使用MCP时不要使用Swiggy应用程序
数据隐私
- 所有数据本地存储在SQLite数据库中
- 使用Fernet加密的OAuth令牌(对称加密)
- 无遥测或分析
- 无云同步
- 您的数据永远不会离开您的机器
🤝 贡献
欢迎投稿!拜托:
- 克隆该仓库
- 创建要素分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
📄 许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
🙏 致谢
🔗 链接
- 仓库: https://github.com/hiransuvrat/swiggy-analyzer
- 问题: https://github.com/hiransuvrat/swiggy-analyzer/issues
- Swiggy MCP文档: https://github.com/Swiggy/swiggy-mcp-server-manifest
📧 联系
Suvrat Hiran - @hiransuvrat
______________________________________________________________________
⭐ 如果你觉得这个仓库有用,就把它标上!
