我的 AI 副项目会在欧盟 AI 法案审计中不合格——我如何修复它
Source: Dev.to
我一直在构建一个小型 AI 应用——一个基于 LangChain 的工具,用于摘要法律文档。没有什么花哨的,只是我周末玩耍的副项目。
随后在一次 GitHub 讨论中,有人问我:“你的应用符合欧盟 AI 法案吗?”
我诚实的回答是 “我太小了,这不重要。” 结果,我错了。
欧盟人工智能法案不在乎贵公司的规模
自 2025 年 2 月开始适用(全面执行将在 2026 年 8 月),该条例覆盖 在欧盟市场上提供的任何 AI 系统。这包括:
- 拥有 10 名用户的 SaaS
- 在 GitHub 上的开源工具
- 若处理欧盟公民数据的内部工具
对核心透明度要求 没有“小开发者豁免”。如果你在生产环境中使用 AI 模型,就必须履行相应义务。
我之所以知道,是因为我阅读了实际的法规文本(整整 144 页——不建议在周五晚上阅读)。
Source: …
我扫描了自己的项目
我对自己的仓库使用了合规扫描器。我的项目结构如下:
├── app.py # LangChain pipeline
├── requirements.txt # langchain, openai
├── prompts/
│ └── summarizer.py # System prompts
└── README.md # "A tool that summarizes stuff"
扫描结果检测到:
- LangChain 框架(通过
requirements.txt) - OpenAI API 使用(通过
app.py中的导入)- 风险类别:受限(文本生成系统)
以下是我遗漏的三件事,我用了总计 35 分钟来修复。
1. 缺少透明度披露
欧盟《人工智能法案》第 50 条要求用户知道他们正在与 AI 生成的内容交互。我的应用返回的摘要没有任何机器生成的提示。
之前
def summarize(document: str) -> str:
return chain.invoke({"document": document})
之后
from datetime import datetime
def summarize(document: str) -> dict:
result = chain.invoke({"document": document})
return {
"summary": result,
"ai_disclosure": (
"This summary was generated by an AI system "
"(OpenAI GPT‑4 via LangChain)."
),
"model": "gpt-4",
"generated_at": datetime.utcnow().isoformat(),
}
耗时:5 分钟。API 响应现在明确告知用户内容的生成来源。
2. 缺少技术文档
即使是受限风险系统,拥有文档也是“我们认真对待合规”和“审计时临时想办法”之间的区别。
我原本只有三行的 README。下面是我新增的 AI_COMPLIANCE.md 内容:
# AI Compliance Documentation
系统概述
- Purpose: 使用 LangChain + OpenAI GPT‑4 对法律文件进行摘要。
- Architecture: 简单的 FastAPI 端点,接收文档,将其传递给 LangChain 链,并返回包含摘要和披露元数据的 JSON 负载。
Data Flow
- 用户上传文档(纯文本或 PDF)。
- 文档通过 HTTPS 发送到后端。
- 后端调用 OpenAI API。
- 响应被包装在披露字段中并返回给用户。
风险评估
- 风险等级:有限(文本生成)。
- 缓解措施:
- 透明度披露(参见
app.py)。 - 在请求生命周期之外不存储原始用户数据。
- 限流以防止滥用。
- 透明度披露(参见
透明度措施
- 每个响应都包含
ai_disclosure、model和generated_at字段。 - UI 显示横幅:“此摘要由 AI 生成。”
维护与更新
- 依赖项在
requirements.txt中已固定。 - 安全补丁在发布后 7 天内应用。
- 合规扫描通过 CI 每周运行。
联系
- Developer: Arkforge (@arkforge‑ceo)
- Email: security@example.com
### 3. (Placeholder for the third fix)
*You can continue adding the remaining two items in the same structured format.*
AI 系统文档
- 目的:快速审阅法律文档的摘要
- 模型:通过 LangChain 使用 OpenAI GPT‑4
- 训练数据:无(使用 API 调用的预训练模型)
- 风险类别:受限(AI 生成文本,Article 50)
- 透明度:所有输出均包含 AI 披露声明
- 局限性:可能遗漏复杂法律语言中的细微差别。不适合作为法律建议。
- 人工监督:摘要仅作为审阅辅助
- 数据保留:会话结束后不存储用户数据
输入/输出审计
import logging
import uuid
logger = logging.getLogger("ai_audit")
def summarize_with_audit(document: str) -> dict:
request_id = uuid.uuid4().hex[:8]
logger.info(f"[{request_id}] Input length: {len(document)} chars")
result = chain.invoke({"document": document})
logger.info(f"[{request_id}] Output length: {len(result)} chars")
return {
"summary": result,
"request_id": request_id,
"ai_disclosure": "Generated by AI (OpenAI GPT‑4)"
}
耗时:10 分钟 – 现在每个请求都有可追溯记录。
让我惊讶的地方
- 修复工作 很容易 – 总共约 35 分钟。
- 困难的部分是 意识:了解需要做哪些工作。
- 我的项目最终被归类为 受限风险,而非高风险。大多数开发者工具都属于此类,主要义务集中在透明度和文档上。
自动合规检查(GitHub Action)
# .github/workflows/ai-compliance.yml
name: EU AI Act Compliance Check
on: [push, pull_request]
jobs:
compliance:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Detect AI frameworks
run: |
echo "=== Scanning for AI frameworks ==="
FOUND=$(grep -rl "import openai\|from langchain\|import anthropic\|import transformers" \
--include="*.py" . 2>/dev/null | wc -l)
echo "Files with AI imports: $FOUND"
if [ "$FOUND" -gt 0 ]; then
echo "AI frameworks detected — checking compliance..."
fi
- name: Verify transparency disclosure
run: |
DISCLOSURES=$(grep -rl "ai_disclosure\|AI-generated\|generated by AI" \
--include="*.py" . 2>/dev/null | wc -l)
if [ "$DISCLOSURES" -eq 0 ]; then
echo "::warning::No AI transparency disclosure found in code"
else
echo "Transparency disclosures found in $DISCLOSURES files"
fi
- name: Check compliance documentation
run: |
if [ ! -f "AI_COMPLIANCE.md" ]; then
echo "::warning::No AI_COMPLIANCE.md found"
echo "Consider adding AI system documentation"
else
echo "AI compliance documentation found"
fi
耗时:10 分钟 – 能捕获最明显的合规要点。
若需更深入的扫描(检测 16 种 AI 框架并映射到 EU AI Act 的具体义务),我使用免费的 MCP compliance scanner。
给过去的自己的建议
- 在第 1 天就添加
AI_COMPLIANCE.md– 大约需要 20 分钟,并迫使你思考所构建系统的细节。 - 为每个 AI 输出打标签 – 在响应模式中加入
ai_disclosure字段即可满足最简易的合规要求。 - 了解自己的风险类别 – 大多数副项目属于“受限”或“最小”风险,义务相对轻松。
- 记录请求 ID – 对合规和调试 LLM 输出都至关重要。
EU AI 法案并非要扼杀独立项目;它的目标是让人们知道何时 AI 参与了影响他们的决策。随着 2026 年 8 月的强制执行期限临近,现在开始准备可以避免以后手忙脚乱。
