Donaldo-Crish/supply-chain-verification-agent

GitHub: Donaldo-Crish/supply-chain-verification-agent

AI 驱动的供应链记录审计与取证分析平台,通过 SHA-256 指纹和 LLM 推理对供应链历史数据进行完整性验证、异常检测和风险评估。

Stars: 0 | Forks: 0

# [NEXUS TRACE](https://nexus-trace.streamlit.app/) | ***供应链取证平台*** [![实时演示](https://img.shields.io/badge/🚀-LIVE_DEMO-00c853?style=for-the-badge)](https://nexus-trace.streamlit.app/) ![Python](https://img.shields.io/badge/Python-3.10+-blue?style=flat-square&logo=python) ![Streamlit](https://img.shields.io/badge/Streamlit-1.58+-red?style=flat-square&logo=streamlit) ![Groq](https://img.shields.io/badge/Groq-LLaMA_3.3_70B-orange?style=flat-square) ![SQLite](https://img.shields.io/badge/SQLite-Ledger-lightgrey?style=flat-square&logo=sqlite) ![SHA-256](https://img.shields.io/badge/Integrity-SHA--256-9cf?style=flat-square) ![License](https://img.shields.io/badge/License-MIT-green?style=flat-square) # 📌 **概述** 现代供应链饱受数据管道碎片化、运输日志不透明以及假冒伪劣产品注入风险日益增加的困扰。传统的审计系统是被动的——它们只能在损害发生后才察觉问题。 **NEXUS TRACE** 是一个 AI 驱动的供应链记录审计和取证分析平台。进入账本的每一条记录都通过 SHA-256 进行加密指纹化,通过模糊匹配的语义映射器进行规范化,并交由具备推理能力的 LLM 处理,该模型会重建模拟的监管链,识别异常情况,并解释为什么某条记录需要进一步调查。 本项目使用带有 SHA-256 完整性验证的 SQLite 支持的账本。虽然它不是区块链实现,但它展示了如何将加密指纹、审计追踪和验证工作流程应用于供应链记录。 架构有意采用了模块化设计,以便日后可以将存储层替换为分布式账本(如 Hyperledger Fabric),而无需重新设计推理层。 ## 🎯 项目范围 本项目侧重于对历史供应链记录进行审计和验证,而非实时运输追踪。 产品记录被摄取到 SQLite 支持的账本中,通过模糊语义映射进行规范化,使用 SHA-256 进行加密指纹化,并由 AI 取证调查员进行分析。 目前的实现展示了供应链审计、异常调查、制造商风险分析、对话式产品分析以及合规性报告。 未来版本可集成 RFID 系统、IoT 传感器、ERP 平台、区块链网络或物流 API,以进行实时事件追踪。 ## 🏗️ 系统架构 ![架构图](https://static.pigsec.cn/wp-content/uploads/repos/cas/7f/7fbd548a25635db2d110374f8d48e2efd853dce8d3a18b3f75e477f0a869e2a9.svg) ### 工作原理 1. **数据摄取** — 通过表单逐一添加产品,或通过 CSV 批量上传。语义映射器 (`thefuzz`) 根据同义词表对每个传入的列进行评分,并建议带有置信度百分比的目标字段;您未映射的任何列都将作为 JSON blob (`extra_data`) 保留,而不是被丢弃。 2. **状态规范化** — 将任意状态字符串(`pass`、`cleared`、`fail`、`hold` 等)规范化为以下三种账本状态之一:`VERIFIED`、`FLAGGED` 或 `PENDING`。 3. **加密指纹化** — 每条记录基于其产品 ID、制造商、批次 ID、位置和状态进行 SHA-256 哈希处理,生成一个唯一的指纹,与该行数据一同存储。 4. **账本存储** — 记录存入已建立索引的 SQLite 表(`product_id`、`status`、`manufacturer`),以便在大规模下进行快速过滤。 5. **取证推理** — 验证产品时会通过 Groq 向 Llama 3.3 70B 发送 prompt。模型接收该记录、模拟的监管链(制造商 → 质量控制 → 运输 → 分销),以及与原始 `products.csv` 导入记录交叉引用的历史事件计数——然后返回一个状态、具体原因、风险等级和一条建议。 6. **制造商模式检测** — SQL 聚合分析可揭示被标记产品计数最高的制造商;同一推理引擎会编写一份关于系统性风险的简短高管摘要。 7. **对话式跟进** — 聊天界面基于特定产品的账本记录、模拟旅程和历史计数,回答关于该产品的自由提问。 8. **审计导出** — 由 ReportLab 生成的 PDF 会捕获产品详情、SHA-256 指纹、监管链表格以及 AI 的发现,以供合规记录保存。 ## 🛠️ 技术栈 | 层级 | 技术 | |---|---| | 后端与逻辑 | Python 3.10+ | | 前端 UI | Streamlit ≥ 1.58 | | 数据库 | SQLite + Pandas ≥ 3.0.3 | | AI / LLM | Groq API — `llama-3.3-70b-versatile` | | 完整性 | SHA-256 (`hashlib`) | | 语义映射 | thefuzz ≥ 0.22.1 (模糊同义词匹配) | | 数据可视化 | Plotly Express ≥ 6.8.0 | | PDF 导出 | ReportLab ≥ 4.5.1 | | 配置 | python-dotenv ≥ 1.2.2 | ## ⚡ 快速开始 ### 1. 克隆仓库 ``` git clone https://github.com/Donaldo-Crish/supply-chain-verification-agent.git cd supply-chain-verification-agent ``` ### 2. 创建并激活虚拟环境 ``` python -m venv venv # Windows venv\Scripts\activate # Mac/Linux source venv/bin/activate ``` ### 3. 安装依赖 ``` pip install -r requirements.txt ``` ### 4. 配置环境变量 在根目录下创建一个 `.env` 文件: ``` GROQ_API_KEY=your_groq_api_key_here ``` 在 [console.groq.com](https://console.groq.com) 获取免费的 API 密钥。如果没有它,应用仍然可以运行并且账本依然有效——AI 分析只会返回一条“未配置”通知,而不是取证报告。 ### 5. 确保 `products.csv` 存在 历史事件查询(同时用于 AI 取证调查员和代理的推理 prompt 中)直接从项目根目录下的 `products.csv` 读取,与实时的 SQLite 账本分开。即使您已经将产品清单摄取到数据库中,也请在项目中保留一份副本。 ### 6. 运行应用 ``` streamlit run app.py ``` ## 📸 截图 ## ![主页](https://static.pigsec.cn/wp-content/uploads/repos/cas/ef/ef2ad90c9af92ca4c560d3f7b7a0799b251fe3b04e75905e86e0412106ef2432.png) ![分析仪表板](https://static.pigsec.cn/wp-content/uploads/repos/cas/a1/a1b183e69c3228ca4b501f9ea6b3429d2036e956962f6764148c40dd3f94bfca.png) ![不可篡改账本](https://static.pigsec.cn/wp-content/uploads/repos/cas/91/91c9b8580efdb388e0135c3660ab993a7155d7089a48d24f8695403056a7d327.png) ![AI 分析器](https://static.pigsec.cn/wp-content/uploads/repos/cas/89/892a9cba4b1260c5fc841158bdc2c781adc26aea14fafbcb57834a40281c004e.png) ![审计报告](https://static.pigsec.cn/wp-content/uploads/repos/cas/79/798e74dae3e86ae0f36e7657b638ef86d7a4635092e30f538e077073579dee42.png) ![注册表操作](https://static.pigsec.cn/wp-content/uploads/repos/cas/d9/d91a2bd74ff9eb603b2828133a8f863e65194933dd324401a7b200d3b74f2226.png) ## 🔑 核心功能 - **🔒 SHA-256 记录指纹化** — 每一条账本记录都会被哈希化(产品 ID + 制造商 + 批次 + 位置 + 状态),并且指纹会同时显示在 UI 和导出的 PDF 中。 - **🧠 取证 AI 推理** — 解释产品*为什么*被标记、挂起或验证,分配 LOW / MEDIUM / HIGH 风险等级,并给出一条可操作的建议。 - **🏭 制造商风险模式检测** — 一键扫描聚合每个制造商的标记率,并让 AI 撰写一份关于最高风险来源的高管摘要。 - **🔍 多产品取证搜索** — 不区分标点符号的逗号分隔搜索(`PRD-9272`、`9272`、`Component-9272` 均可匹配)返回带有实时状态和 SHA-256 验证徽章的匹配产品卡片。 - **💬 针对产品的上下文聊天** — 基于产品的账本记录、模拟监管链和历史事件计数提出后续问题。 - **📄 PDF 审计导出** — 一份由 ReportLab 生成的报告,包含带有颜色编码的状态徽章、加密指纹框、监管链表格以及 AI 的发现。 - **📊 分析仪表板** — 实时指标、异常可视化、制造商风险分析、基于位置的异常追踪、制造时间轴和风险热力图。 - **🔄 语义批量摄取** — 上传任何 CSV 结构;模糊匹配会建议带有置信度分数的列映射,并在您提交前允许对每一列进行手动覆盖。 - **📇 账本浏览器与记录探索器** — 按状态、制造商或位置进行过滤,并带有颜色编码的行。 - **➕ 实时账本管理** — 通过表单添加记录,通过 CSV 批量摄取,或者通过设有确认机制的“危险区”清除账本(必须输入 `DELETE`)。 ## 📁 项目结构 ``` supply-chain-verification-agent/ ├── app.py # Streamlit frontend — all 4 views, sidebar, styling ├── agent.py # Groq reasoning engine, chat, journey simulation, risk patterns ├── database.py # SQLite ledger, SHA-256 hashing, semantic mapper ├── pdf_export.py # ReportLab audit PDF generation ├── architecture-diagram.svg # System architecture diagram (this README) ├── products.csv # Source manifest — also used for historical lookups ├── requirements.txt ├── .env # GROQ_API_KEY (gitignored) ├── .gitignore # Excludes .env, venv, __pycache__, *.db └── README.md # You are here ``` ## 🗺️ 路线图 - [ ] **区块链集成** — 从 SQLite 迁移到实时的去中心化节点(Ethereum / Hyperledger Fabric / Corda Enterprise),以实现密码学上的不可篡改性 - [ ] **多代理推理** — 并行 AI 代理同时处理不同的供应链环节 - [ ] **RFID / IoT 集成** — 实时检查点扫描,直接馈送至验证 pipeline - [ ] **电子邮件 / Webhook 警报** — 检测到高风险产品时的自动通知 - [ ] **基于角色的访问控制** — 为审计员、供应商和管理员提供独立的视图 ## 👤 作者 **Pravin S** 机电一体化工程与自动化 | AI Agent 架构师 *使用通过 Groq API 的 Llama 3.3 70B 构建。* ## 🤝 致谢 本项目的开发得益于 AI 辅助工具的使用,包括 ChatGPT、Claude、Gemini 和 Perplexity 在头脑风暴、调试、文档编写和设计迭代方面的帮助。
标签:DLL 劫持, Kubernetes, SHA-256校验, SQLite, Streamlit, Sysdig, 代码示例, 供应链管理, 大语言模型, 审计追踪, 数据分析, 访问控制, 逆向工具