Kartik-Burele/Ai-luminati_AutoBSP
GitHub: Kartik-Burele/Ai-luminati_AutoBSP
一款利用多AI智能体并行分析嵌入式设备树三方差异,自动化解决板级支持包(BSP)迁移冲突的辅助工具。
Stars: 0 | Forks: 1
# AI BSP Merge Copilot 🚀
**AI BSP Merge Copilot** 是一款最先进的、基于 AI 驱动的板级支持包 (BSP) 迁移和三方冲突分析助手。它可自动化分析以下几者之间的差异:
* **Base BSP**(参考 kernel/dts)
* **Silicon Vendor BSP**(新平台升级)
* **Customer BSP**(特定于产品的外设定制)
专为半导体供应商、设备制造商和嵌入式 Linux 平台团队设计,旨在大幅加速硬件移植周期。
## 📌 架构与设计
为了避免顺序检查文件(这会导致严重的 API 延迟并触发速率限制),AI BSP Merge Copilot 在**并行的 agent 阶段**结合**批量 LLM 查询**来处理冲突。它会汇总所有冲突细节,格式化为统一的 payload,并在每个 agent 阶段仅对 Gemini 发起一次查询。
```
Dataset / Uploaded ZIP
│
▼
Dataset Loader
│
▼
FileBundle[]
│
▼
Diff Engine
│
▼
Comparator
│
▼
[AI_REVIEW Candidates Filter]
│
▼
┌─────────────────┼─────────────────┐
│ │ │
Engineer Agent Reviewer Agent PM Agent
(Batch Prompt) (Batch Prompt) (Batch Prompt)
│ │ │
└─────────────────┼─────────────────┘
│
▼
Streamlit Dashboard
(Interactive Inspector)
```
### 三大 Agent 协同:
1. **Engineer Agent**:执行初步代码分析,隔离冲突的节点分配/属性,并建议具体的合并解决方案。
2. **Reviewer Agent**:验证安全性,汇总警告(例如引脚不匹配、如 RMII 与 RGMII 的电气配置问题),并计算验证置信度。
3. **PM (Manager) Agent**:评估业务和硬件系统影响,对复杂度进行评级(LOW/MEDIUM/HIGH),并估算开发者所需的集成时间(小时)。
## 🛠️ 前置条件
* **Python 3.13+**
* [**uv**](https://github.com/astral-sh/uv)(推荐:极速的包和虚拟环境管理器)
## 🚀 设置说明
### 1. 克隆仓库
```
git clone https://github.com/Kartik-Burele/Ai-luminati_AutoBSP.git
cd Ai-luminati_AutoBSP
```
### 2. 配置环境与 API Key
在项目根目录下创建一个 `.env` 文件。请勿将此文件提交至 Git(它已在 `.gitignore` 中被加入黑名单)。
添加你的 Gemini API Key:
```
GEMINI_API_KEY=your_actual_gemini_api_key_here
```
### 3. 安装依赖
如果你安装了 `uv`,当你运行命令时,它会自动引导并安装 `pyproject.toml` 中列出的包。
否则,请手动创建虚拟环境:
```
python -m venv .venv
source .venv/bin/activate # On Windows use: .venv\Scripts\activate
pip install -r pyproject.toml
```
## 💻 运行项目
### A. 运行 CLI 分析
运行主脚本,在预加载的 `complex` 数据集上执行命令行 pipeline:
```
# 使用 uv(推荐)
uv run python main.py
# 使用标准 virtualenv
python main.py
```
### B. 运行 Streamlit 交互式仪表板
启动高级 Web 界面:
```
# 使用 uv(推荐)
uv run streamlit run app.py
# 使用标准 virtualenv
streamlit run app.py
```
在浏览器中打开 `http://localhost:8501` 即可查看应用程序。
## 📊 预加载数据集
仓库包含位于 `datasets/` 目录下的模拟数据集:
1. **`sample`**:用于初步验证的最小设备树配置。
2. **`complex`**:一个贴近现实的平台迁移案例,包含 UART 当前速率、以太网 PHY 模式(RMII 与 RGMII)以及子节点挂载重叠等复杂冲突。
3. **`large`**:包含 10 个 DTS/DTSI 文件的基准测试数据集,用于测试高负载下的批量执行能力。
## 📁 文件夹结构
```
Ai-luminati_AutoBSP/
├── agents/ # Multi-agent layers (Engineer, Reviewer, PM/Manager, Prompts)
├── core/ # Loader, Diff Engine, Comparator, and Pipeline Orchestration
├── datasets/ # Pre-loaded mock BSP datasets for validation
├── models/ # Shared Pydantic/dataclass models
├── utils/ # Debugging and utility modules
├── app.py # Streamlit Web App entry point
├── main.py # CLI Pipeline runner
├── pyproject.toml # Dependency & Project settings
└── README.md # This documentation
```
标签:AI辅助开发, BSP迁移, Kubernetes, Linux设备树, 代码合并, 多智能体, 嵌入式系统, 逆向工具