移动轨迹分析工具

MRRA是一款基于GraphRAG和多智能体反射技术的Python包,用于智能分析移动轨迹数据,预测用户的下一个位置、未来位置和完整日轨迹。

  • by aowang-ai
  • Python
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 AoWangg/mrra

使用说明

🗺️ MRRA

移动性检索和反射代理

GraphRAG+多智能体反射用于智能移动性分析

🚀 快速开始 • 📖 文档 • 🌟 特性 • 🛠️ 安装


🎯 概述

MRRA 是一个尖端的Python包,通过融合 图检索增强生成 (基于图的检索增强生成)和 多智能体反射只需提供轨迹数据 user_id, timestamp, latitude, longitude 列,并解锁对下一个位置、未来位置和完成每日路线的智能预测。

✨ 主要特点

🧠 智能建筑

  • GraphRAG集成:先进的基于图形的检索系统
  • 多智能体反射:复杂的代理编排,具有信心权重
  • 时空推理:深入了解流动模式

🔧 开发者友好

  • 即插即用:只需最小配置即可使用
  • LangChain兼容:与LangChain生态系统无缝集成
  • MCP工具:内置对天气、地图和地理空间服务的支持

📊 数据处理

  • 灵活输入:支持标准轨迹格式
  • 图构建:自动生成移动性图
  • 模式识别:智能活动和行为检测

🎯 预测任务

  • 下一位置:预测下一个位置
  • 未来职位:预测特定时间的位置
  • 全天轨迹:生成完整的每日路线模式

🛠️ 安装

快速安装

pip install mrra

开发安装

git clone https://github.com/AoWangg/mrra.git
cd mrra
pip install -e .

可选依赖关系

# For MCP tools integration
pip install mrra[mcp]

# For development
pip install mrra[dev]

🚀 快速开始

基本用法

import pandas as pd
from mrra.data.trajectory import TrajectoryBatch
from mrra.retriever.graph_rag import GraphRAGGenerate
from mrra.agents.builder import build_mrra_agent

# 📊 Prepare your trajectory data
df = pd.DataFrame({
    'user_id': ['user_1', 'user_1', 'user_1'],
    'timestamp': ['2023-01-01 09:00:00', '2023-01-01 12:00:00', '2023-01-01 18:00:00'],
    'latitude': [31.2304, 31.2404, 31.2504],
    'longitude': [121.4737, 121.4837, 121.4937],
})

# 🔄 Create trajectory batch and retriever
tb = TrajectoryBatch(df)
retriever = GraphRAGGenerate(tb=tb)

# 🤖 Build MRRA agent
agent = build_mrra_agent(
    llm={
        "provider": "openai-compatible",
        "model": "qwen-plus",
        "base_url": "https://dashscope.aliyuncs.com/compatible-mode/v1",
        "api_key": "YOUR_API_KEY"  # Use environment variables in production
    },
    retriever=retriever,
    reflection={
        "max_round": 3,
        "subAgents": [
            {"name": "temporal", "prompt": "Temporal reasoning specialist", "mcp": {"weather": {}}},
            {"name": "spatial", "prompt": "Spatial analysis expert", "mcp": {"maps": {}}},
            {"name": "pattern", "prompt": "Behavior pattern analyst", "mcp": {}},
        ],
        "aggregator": "confidence_weighted_voting"
    }
)

# 🎯 Make predictions
result = agent.invoke({
    "task": "next_position", 
    "user_id": "user_1", 
    "t": "2023-01-02 09:30:00"
})
print(result)

高级MCP集成

# 🗺️ Configure with real-world services
reflection_config = {
    "subAgents": [
        {
            "name": "spatial", 
            "prompt": "Expert in spatial analysis with real-time map data", 
            "mcp": {
                "gmap": {
                    "url": "https://mcp.amap.com/sse?key=YOUR_AMAP_KEY", 
                    "transport": "sse"
                }
            }
        }
    ]
}

🎯 支持的任务

任务 描述 输入 输出
next_position 预测给定时间后的下一个位置 user_id, t 下一个坐标预测
future_position 预测未来特定时间的位置 user_id, t 未来坐标预测
full_day_traj 生成完整的每日轨迹 user_id, date 全天路线顺序

📊 数据格式

必填栏

  • user_id:每个用户的唯一标识符
  • timestamp:ISO格式的时间戳(例如,“2023-01-01 09:00:00”)
  • latitude:纬度坐标(浮动)
  • longitude:经度坐标(浮动)

🌍 MCP工具集成

MRRA支持多种MCP集成策略,并具有优雅的回退功能:

  1. 主要的,重要的: langchain-mcp-adapters (推荐)
  2. 后备方案: langchain-mcp 工具包
  3. 本土的:原始MCP SSE发现

支持的服务

  • 🗺️ 地图:谷歌地图、Amap、OpenStreetMap
  • 🌤️ 天气:实时天气数据
  • 📍 地理编码:地址到坐标转换

📖 文档

🧪 示例与演示

# 🌟 GeoLife dataset demo
python scripts/verify_geolife.py

# 🔍 Retriever testing
python scripts/check_retriever.py

🤝 贡献

我们欢迎捐款!请查看我们的 贡献指南 了解详情。

开发设置

# Create environment
conda create -n mrra-dev python=3.10
conda activate mrra-dev

# Install in development mode
pip install -e .[dev]

# Run tests
pytest

# Code formatting
ruff format .
ruff check .

🔒 安全与最佳实践

  • 🔐 永远不要提交API密钥 -使用环境变量或秘密管理器
  • 📁 大型数据集 默认情况下忽略git
  • 🛡️ 保护MCP连接 通过适当的身份验证

📄 许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

🙏 致谢

建在巨人的肩膀上:

📊 项目统计


🚀 Ready to revolutionize mobility analysis? Get started now!