🗺️ MRRA
移动性检索和反射代理
*GraphRAG+多智能体反射用于智能移动性分析*
](https://pypi.org/project/mrra/) ](https://pypi.org/project/mrra/)   
______________________________________________________________________
🎯 概述
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集成策略,并具有优雅的回退功能:
- 主要的,重要的:
langchain-mcp-adapters(推荐) - 后备方案:
langchain-mcp工具包 - 本土的:原始MCP SSE发现
支持的服务
- 🗺️ 地图:谷歌地图、Amap、OpenStreetMap
- 🌤️ 天气:实时天气数据
- 📍 地理编码:地址到坐标转换
📖 文档
- 🏠 首页: mrra.tech
- 📚 文档: mrra.tech/en/docs
- 🇨🇳 中文文档: mrra.tech/zh/docs
🧪 示例与演示
# 🌟 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!
