欧盟合规
生产级人工智能治理和欧盟人工智能法案评估平台,具有确定性策略引擎、受控审查工作流、第一方MCP服务器、审计包导出和双运行时兼容性 OpenRouter 和 Ollama.
如果您想进行非技术性演练,请从这里开始:
目录
指南手册
有关带有示例的简单分步使用手册,请参阅:
简短摘要
EU Comply是为欧盟人工智能法案准备就绪背后的真实工作流程而设计的。
该平台存储了一个 真实的案件档案,吸收证据,提取结构化事实,评估这些事实 通过确定性规则包传递事实,通过人类传递敏感结果 审查并导出保存证据、评估、, 例如决策时使用的工作流状态和策略上下文。
此存储库是作为产品构建的,而不是一次性演示:
- FastAPI控制平面公开案例、评估、报告、运行时和集成API
- Next.js分析师工作台在后端操作实时案例
- LangGraph协调受管理的评估工作流程和审查门
- 第一方MCP服务器通过流式HTTP公开策略、档案和评估表面
- 包括Docker打包、组合部署、基准测试工具和迁移
目前的实施已经是主要产品的端到端 表面。重要的诚实提示是,确定性法律内容是 仍处于基线覆盖层,而不是《人工智能法案》的完整条款 编纂。平台架构为生产级;法律规则 图书馆有意扩建。
当前已验证快照
| 信号 | 值 |
|---|---|
| API测试套件 | 37 passing tests |
| 基准情景 | 5 |
| 基线包中的确定性规则 | 3 |
| 政策来源已播种 | 3 |
| 策略快照已播种 | 1 |
| 正常化的法律碎片被播种 | 5 |
| 安装的MCP服务器 | 3 |
| 运行时提供者 | 2 (OpenRouter, Ollama) |
| 撰写服务 | 5 (postgres, redis, minio, api, web) |
| Alembic迁徙 | 9 |
| Docker镜像构建 | verified |
深度介绍
这个项目解决了什么问题
如果一个组织想在欧洲推出或继续运营人工智能系统, 最难的部分通常不是阅读《人工智能法案》的摘要。最难的部分是 将一个混乱的现实世界人工智能系统变成治理团队可以评估的东西 和防守。
这通常意味着要同时回答所有这些问题:
- 这个系统到底是什么
- 谁充当提供者、部署者、进口商或分销商
- 我们有什么证据,从哪里来的
- 涉及哪些义务
- 冲突或缺失的事实在哪里
- 谁审查了结果
- 我们如何证明后来的决定
大多数“AI Act分类器”项目停止得太早。他们做法律检索 文本,给出一个整洁的答案,然后称之为完成。这很有用 原型,但这不是企业合规计划实际运作的方式。
欧盟合规是围绕监管决策支持应该着眼于 更像是一个内部治理系统,而不是聊天机器人。
用简单的英语来说这意味着什么
思考平台的最简单方法是:
- 一个团队为人工智能系统创建了一个案例
- 他们填写一份结构化的档案并上传证据
- 平台将这些文件解析成块并提取事实
- 确定性引擎根据策略规则评估案例
- LangGraph决定结果是否可以继续或需要人工审查
- 审阅者批准或拒绝机器建议
- 平台导出报告和审计包
- 以后的变化可能会引发重新评估
这就是“回答法律问题的应用程序”和 “支持真正治理过程的产品。”
为什么RAG不是核心
该存储库不将检索视为法律决策者。
- 策略快照和规范化片段提供结构化的法律上下文
- 确定性规则包决定当前机器的结果
- 提取的事实被存储为显式数据,而不仅仅是提示上下文
- 审查决定与机器输出分开保存
- 审计导出是基于存储的记录构建的,而不是基于短暂的聊天历史
LLM在这里仍然很重要, 总结和未来的解释流程。法律结果仍然存在 确定性和可追溯性。
整个系统解释
1.产品表面
EU Comply是一种具有三个连接表面的产品:
- FastAPI控制平面 用于案例、工件、评估、审查、报告、运行时控制、连接器、策略访问和健康/指标
- Next.js分析师工作台 供操作员和审查人员管理实时人工智能治理案例
- 安装的MCP服务器 用于可互操作的机器访问策略、档案和评估上下文
2.高层架构
flowchart LR
W[Next.js Analyst Workbench] --> API[FastAPI Control Plane]
API --> DB[(Postgres)]
API --> REDIS[(Redis)]
API --> OBJ[(MinIO / Artifact Storage)]
API --> POLICY[Policy Snapshot Service]
API --> ASSESS[Deterministic Assessment Engine]
API --> REPORTS[Report And Audit-Pack Service]
API --> CONNECT[Connector And Reassessment Services]
API --> MON[Readiness And Metrics]
ASSESS --> GRAPH[LangGraph Workflow]
ASSESS --> RULES[Rule Pack Evaluation]
API --> RUNTIME[LLM Runtime Gateway]
RUNTIME --> OLLAMA[Ollama]
RUNTIME --> OPENROUTER[OpenRouter]
API --> MCP1[Policy MCP]
API --> MCP2[Dossier MCP]
API --> MCP3[Assessment MCP]3.案例生命周期
flowchart TD
A[Create Case] --> B[Attach Structured Dossier]
B --> C[Upload Evidence]
C --> D[Parse And Chunk Artifacts]
D --> E[Extract Facts]
E --> F[Run Deterministic Assessment]
F --> G{Review Required?}
G -- No --> H[Completed Workflow]
G -- Yes --> I[Human Review Decision]
I --> J[Approved Or Needs Changes]
H --> K[Export Report / Audit Pack]
J --> K
K --> L[Connector Event Or Manual Trigger]
L --> M[Reassessment]4.评估案件时会发生什么
在技术层面上,评估流程目前是这样运作的:
- 案件档案提供了初步的结构化事实
- 处理后的工件有助于提取事实
- 相互矛盾的事实被明确标记,并可能迫使
needs_more_information - 规则包服务评估合并的事实模型
- 匹配规则中的义务标签被映射到审阅者面临的义务中
- 工作流层将禁止或事实冲突的结果升级为审查要求状态
- 审阅者可以记录批准或请求的更改
- 报告导出和ZIP审核包是从持久记录生成的
5.确定性策略引擎
当前的确定性引擎在广度上故意简单,但在广度上却很强大 形状。
基线规则包目前涵盖了以下方面的代表性规则:
- 公共空间执法中禁止的实时远程生物识别
- 高风险就业决策支持
- 聊天机器人交互的透明度义务
这意味着该架构已经适合企业级监管 决策,而法律图书馆仍处于早期覆盖层 可以扩展到更广泛的文章和附件覆盖范围。
6.政策知识模型
策略层存储为:
- 政策来源 有来源类型和出处
- 策略快照 与某个时间点相关
- 标准化片段 带有引用、标题、演员范围和标签
种子基线快照目前包括:
Regulation (EU) 2024/1689- 委员会常见问题指南
- 委员会标准化指南
这为平台提供了足够的结构来参考引文和出口政策 每个受控结果的上下文。
7.文档智能层
工件目前支持以下解析:
txtmdjsonpdfdocxxlsx
已实施的管道:
- 存储上传的工件
- 从支持的文件类型解析文本
- 将内容分块
- 生成提取的候选事实
- 使用来源元数据保存提取的事实
- 标记冲突,而不是默默地覆盖它们
目前,提取逻辑是启发式的,并且故意保守。 这是目前正确的权衡,因为它在保持系统可解释性的同时 更广泛的规则和证据图在增长。
8.受控工作流层
LangGraph在这里用于编排,而不是用于自由形式的法律 推理。
当前工作流行为:
- 运行确定性评估
- 检查结果
- 路线
prohibited或needs_more_information进入明确的审查要求状态 - 将工作流状态与评估运行分开保存
这种分离很重要。机器决策状态和治理编排 如果系统应该是可审计的,则不应将状态混为一谈。
9.审查、批准和可审计性
人工审核是一流的产品表面,而不是附加在评论框上的 LLM回答。
当前平台已经存在:
- 评估运行
- 工作流运行
- 审查决定
- 批准的结果
- 报告导出
- ZIP审核包
- 重新评估触发因素
- 连接器同步历史记录
审计包捆绑了当前工作区快照、报告工件和策略 上下文,因此治理记录可以离开正在运行的系统,而不会变成 无法追踪。
10.MCP层
该应用程序安装了三个第一方MCP服务器:
policy-corpus-mcpsystem-dossier-mcpassessment-mcp
这些为以下内容提供了可流式传输的HTTP表面:
- 列出和读取策略快照
- 搜索归一化片段
- 阅读案例工作区
- 列出工件、评估、工作流和评审
- 触发确定性评估和受控工作流
- 导出报告和审核包
- 创建重新评估触发器
这使得该平台不仅可用作人工操作的网络产品,而且 作为机器可访问的合规基础设施。
11.LLM运行时兼容性
通过设计避免了提供商锁定。
运行时层支持:
- 开放路由 用于托管推理
- 奥拉玛 用于本地或自托管推理
运行时控制是组织范围的,包括:
- 提供者发现
- 模型发现
- 默认聊天模式选择
- 默认嵌入提供程序/模型选择
这很重要,因为一个严肃的治理平台不应该只需要一个供应商 路径只是为了操作。
12.监测和释放表面
后端包括:
- 活性终点
- 准备就绪终点
- 经过身份验证的组织范围指标输出
- 基准CLI
- 策略种子CLI
- Alembic迁徙
- API和web的Dockerfiles
- 适用于本地或自托管部署的全栈Docker Compose
- 备份和还原脚本
- 部署和发布文档
当前产品范围
此存储库中已经存在的内容
- 跨案例、工件、评估、审查、报告、运行时、连接器和策略表面的真正FastAPI API
- 连接到后端的实时Next.js分析控制台
- 持续的病例、档案、人工制品、提取的事实、评估、工作流程、审查、连接器和重新评估记录
- 基于义务映射的确定性规则评估
- 通过LangGraph管理工作流路由
- 安装在主应用程序内运行的MCP服务器
- JSON、Markdown和ZIP审计包导出
- 基准执行和操作健康表面
- 应用程序映像和组合构建的Docker构建验证
今天有意设定的基线是什么
仍然需要深入研究的主要领域是编纂法律覆盖范围的广度。
现在,该平台证明了端到端的产品形态和受控的执行 具有基线策略快照和代表性基线规则包的模型。 这与POC不同。POC通常缺乏生产表面。这 存储库已经有了产品表面。接下来扩展的是法律 内容和基准深度。
当前结果类别
out_of_scopeprohibitedhigh_risktransparency_onlygpai_relatedminimal_riskneeds_more_information
仓库布局
eu-comply/
apps/
api/ FastAPI control plane, services, migrations, tests
web/ Next.js analyst workbench
fixtures/
policies/ Seeded policy snapshot fixture
rule_packs/ Deterministic rule-pack fixture
packages/
evaluation/ Golden-case benchmark fixture
ops/
docker/ Full-stack compose definition
scripts/ Backup, restore, and verification helpers
docs/
architecture.md
deployment.md
release-checklist.md
verification.md
PROGRESS.md
HANDOFF.md
DECISIONS.md
CLAUDE.md Working memory / continuity file详细的本地设置
先决条件
- python
3.13 uv- Node.js
22 - Docker桌面或其他Docker守护进程
1.安装依赖项
uv sync --directory apps/api --extra dev
npm --prefix apps/web install2.启动基础设施
docker compose -f ops/docker/compose.full.yml up -d postgres redis minio3.准备数据库
uv run --directory apps/api alembic upgrade head
uv run --directory apps/api python -m eu_comply_api.tools.seed_policy4.运行API
uv run --directory apps/api uvicorn eu_comply_api.main:app --reload --app-dir src5.运行分析师工作台
npm --prefix apps/web run dev6.登录控制台
默认情况下,分析控制台需要以下配置的引导凭据 API环境。当前的开发流程使用种子引导 在应用程序启动期间创建的组织和管理员帐户。
控制台还接受以下任一选项:
- 主机上的API URL,例如
http://127.0.0.1:8001 - 或完整的API前缀,例如
http://127.0.0.1:8001/api/v1
详细部署指南
发布打包已在此存储库中实现。
构建个人图像
docker build -f apps/api/Dockerfile -t eu-comply-api:latest .
docker build -f apps/web/Dockerfile -t eu-comply-web:latest .构建完整堆栈
docker compose -f ops/docker/compose.full.yml build运行整个堆栈
docker compose -f ops/docker/compose.full.yml up -d如果默认的localhost端口已被占用,则compose文件现在支持 通过环境变量进行端口重写,例如:
$env:EU_COMPLY_API_PORT='8001'
docker compose -f ops/docker/compose.full.yml up -d包括部署资产
apps/api/Dockerfileapps/web/Dockerfileops/docker/compose.full.ymlapps/api/.env.exampleapps/web/.env.exampleops/scripts/backup.ps1ops/scripts/restore.ps1
验证和质量
已验证的命令
uv run --directory apps/api ruff check .
uv run --directory apps/api pytest
uv run --directory apps/api python -m eu_comply_api.tools.run_benchmarks
$env:EU_COMPLY_DATABASE_URL='sqlite+aiosqlite:///D:/Mehul-Projects/AI Act Risk Classifier Agent with MCP + LangGraph/apps/api/alembic-verify.db'
uv run --directory apps/api alembic upgrade head
uv run --directory apps/api python -m eu_comply_api.tools.seed_policy
npm --prefix apps/web run lint
npm --prefix apps/web run build
docker build -f apps/api/Dockerfile -t eu-comply-api:verify .
docker build -f apps/web/Dockerfile -t eu-comply-web:verify .
docker compose -f ops/docker/compose.full.yml build
docker compose -f ops/docker/compose.full.yml config电流验证读数
- API皮棉道次
- API测试通过
36 passed - 基准CLI通过
accuracy = 1.0论回购黄金时段 - Alembic干净地升级
009_connector_reassessment - 策略种子CLI在干净的验证数据库上成功
- 网棉绒通过
- web生产构建通过
- API Docker镜像构建通过
- web Docker镜像构建过程
- 编写构建过程
- 使用上可访问的API验证完整的本地主机堆栈部署
8001以及可在上访问的web应用程序3000
当前基准意味着什么
目前的基准还不足以要求广泛的法律覆盖。 它确实表明了确定性引擎、夹具结构和 回归工具已到位且可重复。
这种区别很重要。质量声明应保持诚实。
开发说明
核心决策
- 法律决策保持确定性和可追溯性
- LLM的使用与提供者无关
Ollama对于本地和自主机部署来说是一流的OpenRouter对于托管部署来说是一流的- MCP是一个产品接口,而不是一个辅助实验
- 通过将机器运行、工作流运行和人工审批分开来保持可审计性
为什么这个仓库不是玩具演示
即使有基线规则覆盖,存储库也已经包含了这些系统 玩具演示通常会跳过:
- 迁移
- 身份验证和租户边界
- 伪影持久性
- 实时操作员界面
- 受控编排
- 审计包导出
- MCP服务器
- 运行时抽象
- 基准
- 健康和指标
- Docker打包
- 部署就绪打包
诚实的下一条扩张之路
如果此项目继续超出当前验证的版本,则最高值 接下来的步骤是:
- 将策略快照和规则包扩展到更广泛的《人工智能法案》文章和附件中
- 深化提取事实本体论与证据冲突处理
- 扩大基准和对抗性评价语料库
- 添加更丰富的审阅者工作流状态、通知和企业连接器
