目录
目录README.md

🚦 城市交通智能管理系统 (CTIMS)

City Traffic Intelligent Management System

Python 3.8+ Flask License: MIT

📋 目录

🌟 项目概述

城市交通智能管理系统(CTIMS) 是一个基于AIOS框架的下一代智能交通管理解决方案。系统通过Qwen2-7B大语言模型驱动的多智能体协作架构,实现城市交通的智能化分析、规划和优化。

🎯 设计理念

  • 多智能体协作: 5个专业化智能体分工协作,处理复杂交通场景
  • 实时响应: 基于Flask的Web服务,提供毫秒级响应能力
  • 可视化交互: 直观的地图界面和聊天式交互体验
  • 可扩展架构: 模块化设计,支持快速添加新功能和智能体

⚡ 核心特性

🤖 智能体生态

智能体 功能描述 专业领域
🔍 交通分析器 实时交通流量分析、路况监测 数据分析、趋势预测
🗺️ 路线规划器 智能路线规划、多模式出行方案 路径优化、成本计算
🚨 应急响应器 交通事故处理、应急资源调度 应急管理、资源协调
🚗 拥堵管理器 拥堵成因分析、疏导方案制定 流量管控、预防策略
🚌 公交优化器 公共交通线路优化、换乘规划 公交系统、多模式出行

🛠️ 技术特性

  • 异步并行处理: 支持任务依赖分析和并行执行
  • 智能任务调度: 自动任务分解和智能体映射
  • 内存管理: 双层存储策略(内存+文件持久化)
  • 可视化界面: 交互式地图和实时数据展示
  • 模型集成: 无缝集成Qwen2-7B大语言模型
  • RESTful API: 标准化接口设计

🏗️ 系统架构

graph TB
    A[用户Web界面] --> B[Flask应用服务器]
    B --> C[AIOS核心系统]
    C --> D[任务分解器]
    C --> E[智能调度器]
    
    E --> F1[交通分析器]
    E --> F2[路线规划器]
    E --> F3[应急响应器]
    E --> F4[拥堵管理器]
    E --> F5[公交优化器]
    
    C --> G[内存管理器]
    C --> H[上下文管理器]
    C --> I[Qwen2-7B模型]
    
    G --> J[(交通数据)]
    G --> K[(道路网络)]
    G --> L[(公交数据)]
    G --> M[(应急资源)]

核心组件说明

🧠 AIOS 核心框架

  • 智能体注册: 动态注册和管理多个智能体
  • 任务调度: 基于DAG的依赖分析和并行执行
  • 内存管理: 高效的数据存储和检索机制
  • 上下文管理: 会话状态和历史记录管理

🤖 智能体架构

# 智能体基础接口
class AgentBase:
    def __init__(self, agent_id):
        self.agent_id = agent_id
        
    async def execute(self, inputs):
        # 异步执行任务
        pass

📊 数据管理系统

  • 交通流量数据: 实时路况、历史流量模式
  • 道路网络数据: 城市道路拓扑、路口信息
  • 公共交通数据: 线路信息、站点位置、时刻表
  • 应急资源数据: 救援车辆、医院、消防站分布

🚀 快速开始

环境要求

  • Python: 3.8 或更高版本
  • 内存: 最少16GB (推荐32GB)
  • GPU: CUDA支持的GPU (可选,用于模型加速)
  • 存储: 至少50GB可用空间

⚡ 一键启动

# 1. 克隆项目
git clone <仓库地址>
cd city_traffic_system

# 2. 安装依赖
pip install -r requirements.txt

# 3. 启动系统
python3 -m frontend.app

# 4. 访问界面
open http://localhost:5000

🔧 详细安装

1. 环境准备

# 创建虚拟环境
python3 -m venv venv
source venv/bin/activate  # Linux/Mac
# venv\Scripts\activate   # Windows

# 升级pip
pip install --upgrade pip

2. 依赖安装

# 安装Python依赖
pip install -r requirements.txt

# 验证核心库
python3 -c "import torch; print(f'PyTorch版本: {torch.__version__}')"
python3 -c "import transformers; print(f'Transformers版本: {transformers.__version__}')"

3. 模型配置

方法一: 自动下载 (推荐)

# 使用HuggingFace CLI
pip install huggingface_hub
huggingface-cli download Qwen/Qwen2-7B-Instruct --local-dir ./models/Qwen2-7B-Instruct

方法二: 手动配置

# 1. 创建模型目录
mkdir -p models/Qwen2-7B-Instruct

# 2. 手动下载模型文件到该目录
# 从 https://huggingface.co/Qwen/Qwen2-7B-Instruct 下载

# 3. 验证模型文件
ls models/Qwen2-7B-Instruct/
# 应包含: config.json, pytorch_model.bin, tokenizer.json 等文件

4. 数据初始化

# 自动生成模拟数据
python3 -m city_traffic_system.data.fake_data_generator

# 验证数据文件
ls data/
# 应包含: traffic_data.json, road_network.json, public_transport_data.json 等

📖 使用指南

启动系统

cd city_traffic_system
python3 -m frontend.app

# 系统启动信息
# ✅ 正在初始化系统...
# ✅ 已加载交通数据
# ✅ 已加载道路网络
# ✅ 已加载公共交通数据
# ✅ 已加载应急资源数据
# ✅ 系统初始化完成!
# * Running on http://127.0.0.1:5000

Web界面使用

1. 主界面功能

  • 聊天对话框: 输入自然语言查询
  • 交互式地图: 可视化显示城市区域和交通状况
  • 智能体状态: 实时显示各智能体工作状态
  • 执行时间统计: 对比串行和并行执行效率

2. 查询示例

🚗 路线规划查询
用户: 从A区到C区最快的路线是什么?
系统: [自动调用路线规划器和交通分析器]
     推荐路线: A→B→C
     预计时间: 25分钟
     拥堵指数: 中等
🚨 应急响应查询
用户: C区发生严重车祸,需要紧急救援
系统: [调用应急响应器和拥堵管理器]
     已调度最近的救护车(距离3.2km,预计5分钟到达)
     建议封闭事故路段,开启应急车道
     推荐绕行路线已生成
🚌 公交优化查询
用户: 如何从J区到D区,最省时的公交方案?
系统: [调用公交优化器和路线规划器]
     方案1: 公交K85→换乘K23 (总耗时42分钟)
     方案2: 公交K86→换乘K24 (总耗时48分钟)
     推荐方案1,换乘等待时间较短

🔗 API 文档

核心接口

POST /api/chat

处理用户查询请求

请求参数:

{
    "message": "用户查询内容",
    "session_id": "会话ID(可选)"
}

响应格式:

{
    "response": "系统回复内容",
    "execution_time": {
        "total": 2.5,
        "serial": 4.2,
        "parallel": 2.5
    },
    "agents_used": ["traffic_analyzer", "route_planner"],
    "task_dependencies": "任务依赖关系图"
}

GET /api/data/{data_type}

获取系统数据

支持的数据类型:

  • traffic_data: 交通流量数据
  • road_network: 道路网络数据
  • public_transport_data: 公共交通数据
  • emergency_resources: 应急资源数据

📁 项目结构

city_traffic_system/
├── 📊 data/                    # 数据目录
│   ├── 920_*.json             # 按日期分类的交通数据
│   ├── traffic_data.json      # 主交通数据
│   ├── road_network.json      # 道路网络数据
│   ├── public_transport_data.json
│   ├── emergency_resources.json
│   ├── fake_data_generator.py # 数据生成器
│   └── 区域图标/              # 地图图标资源
├── 🧠 aios/                   # AIOS核心框架
│   ├── core/                  # 核心模块
│   │   ├── aios_system.py    # AIOS主系统
│   │   ├── agent_base.py     # 智能体基类
│   │   └── model_loader.py   # 模型加载器
│   ├── scheduler/            # 任务调度器
│   ├── memory_manager/       # 内存管理
│   ├── context_manager/      # 上下文管理
│   └── tool_manager/         # 工具管理
├── 🤖 agents/                 # 智能体实现
│   ├── traffic_analyzer/     # 交通分析器
│   ├── route_planner/        # 路线规划器
│   ├── emergency_responder/  # 应急响应器
│   ├── congestion_manager/   # 拥堵管理器
│   └── public_transport_optimizer/ # 公交优化器
├── 🌐 frontend/               # Web前端
│   ├── app.py               # Flask应用主文件
│   ├── templates/           # HTML模板
│   └── static/             # 静态资源
│       ├── css/            # 样式文件
│       ├── js/             # JavaScript脚本
│       └── images/         # 图片资源
├── 🛠️ utils/                  # 工具函数
│   └── route_calculator.py  # 路线计算工具
├── 📝 requirements.txt       # Python依赖
└── 📚 README.md             # 项目文档

⚡ 性能优化

并行执行优势

系统通过智能任务调度实现显著的性能提升:

执行模式 平均响应时间 性能提升
串行执行 4.2s 基准
并行执行 2.5s 68% ⬆️

内存使用优化

  • 智能缓存: 热点数据常驻内存,冷数据按需加载
  • 分层存储: 内存缓存 + JSON文件持久化
  • 垃圾回收: 自动清理过期会话数据

模型推理优化

  • 批处理: 支持多任务批量推理
  • GPU加速: 可选CUDA加速推理
  • 模型量化: 支持模型压缩以节省显存

🔧 故障排除

常见问题

1. 启动失败

问题: ModuleNotFoundError: No module named 'city_traffic_system'

# 解决方案
export PYTHONPATH=$PYTHONPATH:$(pwd)
python3 -m frontend.app

2. 模型加载失败

问题: Model not found: ./models/Qwen2-7B-Instruct

# 检查模型文件
ls -la models/Qwen2-7B-Instruct/
# 重新下载模型
huggingface-cli download Qwen/Qwen2-7B-Instruct --local-dir ./models/Qwen2-7B-Instruct

3. 内存不足

问题: CUDA out of memory

# 在 aios/core/model_loader.py 中调整参数
load_in_8bit=True  # 启用8位量化
device_map="auto"  # 自动分配设备

4. 端口冲突

问题: Address already in use: Port 5000

# 查找占用端口的进程
lsof -i :5000
# 终止进程
kill -9 <PID>
# 或使用其他端口
export FLASK_RUN_PORT=5001

调试模式

# 启用调试模式
export FLASK_DEBUG=1
export FLASK_ENV=development
python3 -m frontend.app

日志查看

# 查看系统日志
tail -f logs/system.log

# 查看智能体执行日志
tail -f logs/agents.log

👨‍💻 开发指南

添加新智能体

1. 创建智能体目录

mkdir -p agents/new_agent
touch agents/new_agent/__init__.py
touch agents/new_agent/agent_implementation.py

2. 实现智能体类

# agents/new_agent/agent_implementation.py
from ...aios.core.agent_base import AgentBase
from ...aios.core.aios_system import aios

class NewAgent(AgentBase):
    def __init__(self, agent_id="new_agent"):
        super().__init__(agent_id=agent_id)
        self.capabilities = ["capability1", "capability2"]
    
    async def execute(self, inputs):
        """执行智能体任务"""
        query = inputs.get("query", "")
        task_description = inputs.get("task_description", "")
        
        # 构建提示词
        prompt = f"""
        作为{self.agent_id}智能体,请处理以下任务:
        查询:{query}
        任务描述:{task_description}
        
        请提供详细的分析和建议。
        """
        
        # 调用大模型
        response = aios.generate_response(prompt)
        
        return {
            "agent_id": self.agent_id,
            "result": response,
            "execution_time": self.execution_time
        }

3. 注册智能体

# 在 frontend/app.py 中添加
from city_traffic_system.agents.new_agent.agent_implementation import NewAgent

# 初始化智能体
agents = {
    # ... 现有智能体
    "NewAgent": NewAgent(),
}

# 注册到AIOS
for agent in agents.values():
    aios.register_agent(agent)

自定义数据源

1. 扩展数据生成器

# data/custom_data_generator.py
import json
import random
from datetime import datetime

def generate_custom_data():
    """生成自定义业务数据"""
    custom_data = {
        "timestamp": datetime.now().isoformat(),
        "data_type": "custom",
        "items": []
    }
    
    # 生成业务数据
    for i in range(100):
        item = {
            "id": f"custom_{i}",
            "value": random.randint(1, 100),
            "category": random.choice(["A", "B", "C"])
        }
        custom_data["items"].append(item)
    
    # 保存数据
    with open("data/custom_data.json", "w", encoding="utf-8") as f:
        json.dump(custom_data, f, ensure_ascii=False, indent=2)
    
    print("自定义数据生成完成")

if __name__ == "__main__":
    generate_custom_data()

2. 集成数据加载

# 在 aios/core/aios_system.py 的 initialize_data 方法中添加
custom_data_path = os.path.join(self.data_dir, 'custom_data.json')
if os.path.exists(custom_data_path):
    with open(custom_data_path, 'r', encoding='utf-8') as f:
        custom_data = json.load(f)
        self.store_memory('custom_data', custom_data)
        self.logger.info("自定义数据已加载")

前端扩展

1. 添加新的API端点

# 在 frontend/app.py 中添加
@app.route('/api/custom/<data_type>', methods=['GET'])
def get_custom_data(data_type):
    """获取自定义数据接口"""
    try:
        data = aios.retrieve_memory(f'custom_{data_type}')
        if data:
            return safe_jsonify({"success": True, "data": data})
        else:
            return safe_jsonify({"success": False, "error": "数据不存在"})
    except Exception as e:
        return safe_jsonify({"success": False, "error": str(e)})

2. 添加可视化组件

// frontend/static/js/custom_viz.js
function renderCustomChart(data) {
    // 使用Chart.js或D3.js创建自定义图表
    const ctx = document.getElementById('customChart').getContext('2d');
    new Chart(ctx, {
        type: 'bar',
        data: {
            labels: data.labels,
            datasets: [{
                label: '自定义数据',
                data: data.values,
                backgroundColor: 'rgba(54, 162, 235, 0.5)'
            }]
        }
    });
}

🤝 贡献指南

我们欢迎任何形式的贡献!请遵循以下流程:

1. 提交问题

  • 使用GitHub Issues报告bug
  • 详细描述问题复现步骤
  • 提供错误日志和系统环境信息

2. 功能请求

  • 在Issues中详细描述新功能需求
  • 说明功能的使用场景和价值
  • 提供功能设计建议

3. 代码贡献

# 1. Fork项目
git clone https://github.com/your-username/city_traffic_system.git

# 2. 创建功能分支
git checkout -b feature/amazing-feature

# 3. 提交更改
git commit -m 'Add some amazing feature'

# 4. 推送分支
git push origin feature/amazing-feature

# 5. 创建Pull Request

4. 代码规范

  • 遵循PEP 8 Python代码规范
  • 添加适当的注释和文档字符串
  • 确保所有测试通过
  • 更新相关文档

📄 许可证

本项目采用 MIT 许可证。详情请参阅 LICENSE 文件。

📞 联系方式

  • 项目维护者: [开发团队]
  • 技术支持: [support@ctims.com]
  • 项目仓库: [GitHub Repository]
  • 文档中心: [Documentation Site]

🎉 致谢

特别感谢以下项目和团队:


🚀 让城市交通更智能,让出行更便捷!

Made with ❤️ by CTIMS Team

关于
14.4 GB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

©Copyright 2023 CCF 开源发展委员会
Powered by Trustie& IntelliDE 京ICP备13000930号