abhirupray/complianceos
GitHub: abhirupray/complianceos
一个金融合规调查辅助平台,用基于规则的检测标记可疑案件后,由 AI 代理进行法规调研并起草报告供人工审查,覆盖反洗钱和市场操纵两个领域。
Stars: 0 | Forks: 0
# ComplianceOS
一个小型 AI 系统,旨在协助调查两类金融违规行为:银行业务中的洗钱和交易中的市场操纵。它会读取被标记的案件,查找相关法律,检查过往的类似案例,并撰写一份供人工审查的草拟报告。它绝不会自行提交任何内容或采取任何行动,最终决定始终由人工做出。
[](https://github.com/abhirupray/complianceos/actions)
## 为什么开发这个系统
我曾在 ITC Infotech 工作过几年,参与了一个监管合规平台的开发,该项目旨在为高盛(Goldman Sachs)的委托业务检查日终交易数据是否符合数十项监管规定。那个系统运行良好,但每次出现异常标记时,分析师仍然必须手动查阅相关法规,了解类似案件是如何处理的,并从头开始撰写报告。
这个项目是我尝试构建的一个升级版本,由 AI 协助完成调研和撰写工作,而实际的决定权仍然掌握在人手中。我最初只做了银行业务部分,后来增加了第二个领域,即交易中的市场滥用检测,目的是看看底层系统是否能在不重写代码的情况下支持多种类型的案件。事实证明它可以,这背后的设计决策已详细记录在 [`ARCHITECTURE.md`](./ARCHITECTURE.md) 中。
## 实际包含的功能
- 两类检测:银行业务(结构化拆分、高风险国家、异常账户活动、资金循环流转)和交易业务(虚假报单、洗售交易、分层下单、内幕交易,以及多个账户之间的环形交易)。
- 检测规则本身是纯代码,不涉及任何 AI。只有在某个行为已经被标记之后,AI 才会介入,对其进行调研并起草报告。
- 第二重独立审查:专门审查 AI 撰写的报告草稿,质疑其推理过程是否真正合理,这独立于检查引用的真实性之外。
- 一种可以同时纵览多个案件并排查其中部分案件是否存在关联的方法。
- 一个简单的搜索框,你可以直接输入关于案件的普通英文问题,而无需在菜单中层层点击。
- 一个使用 React 构建的小型控制面板,你可以在上面提交案件,并对其进行批准、驳回或升级处理。
- 对系统执行的每一步操作进行记录,如果有人试图悄悄篡改过去的记录,这种记录方式能使其轻易暴露。
- 一些基础防御机制,用于防范有人试图通过反复测试系统来推断出精确的检测阈值。
- 那些试图故意让系统出错的测试,而不仅仅是检查它在正常使用时能否工作。
我已在文档中如实说明了哪些功能是真实且经过测试的,哪些只是已有设计但尚未运行。请参阅 `docs/DETECTION_METHODOLOGY.md` 获取这两者的详细列表。
## 快速开始,无需配置
```
git clone https://github.com/abhirupray/complianceos.git
cd complianceos
./scripts/run_demo.sh
```
这会创建一些示例数据并将其送入系统运行,无需 Docker,无需 Kafka,也无需 API key。如果没有 key,系统会使用明确标记的占位符文本,而不是真实的 AI 生成内容。
**若要改用真实的 Anthropic API key:**
```
cp .env.example .env # then paste your Anthropic API key into .env
./scripts/run_demo.sh
```
**若要运行实际的 API 并在浏览器中查看:**
```
cd services/orchestrator
source .venv/bin/activate
uvicorn app.main:app --reload
# 然后打开 http://localhost:8000
```
**若要运行测试:**
```
python -m pytest services/orchestrator/tests/ -v
```
**若要运行评估脚本:**
```
python eval/run_eval.py
```
## 新手入门?从这里开始
[`docs/COMPLETE_WALKTHROUGH.md`](./docs/COMPLETE_WALKTHROUGH.md) 手把手教你如何在本地计算机上运行此项目,包括克隆代码、运行演示、执行测试和评估脚本,每一步都有详细说明。
## 检测逻辑到底有多可靠
[`docs/DETECTION_METHODOLOGY.md`](./docs/DETECTION_METHODOLOGY.md) 真实地列举了我发现的每一个弱点、我通过实际代码修复的问题,以及那些我无法修复的问题(因为修复它们需要付费的数据源、我目前不具备的法律权限,或者超出了一个作品集项目所能承载的基础设施架构)。
## 各个 AI agent 的权限与限制
[`docs/MODEL_CARDS.md`](./docs/MODEL_CARDS.md) 为每个 agent 提供了一张简短的说明卡,包含其功能、绝对禁止的操作以及已知的弱点。其格式正是银行内部模型审查团队实际期望看到的那种。
## 致产品或项目管理评审者
如果你是从产品或项目管理的角度(而非工程实施角度)来审视这个项目,[`docs/PRODUCT_CASE_STUDY.md`](./docs/PRODUCT_CASE_STUDY.md) 从该视角介绍了同一个项目,包含成功指标、粗略的交付计划、风险清单,以及如果在一个真实团队中我会有什么不同的做法。
## 仓库结构
```
complianceos/
├── services/
│ ├── transaction-service/ # Java, Spring Boot: ingestion and rule checks
│ └── orchestrator/ # Python, FastAPI: the AI investigation pipeline
├── eval/ # Test cases and the scoring script
├── infra/ # Docker setup for the full production style stack
├── scripts/ # run_demo.sh, the quick start script
├── docs/screenshots/ # Dashboard, ticket detail, API, audit log, eval results
├── ARCHITECTURE.md # How it is built and why, with diagrams
└── .github/workflows/ci.yml # Tests run automatically on every push
```
## 截图
| | |
|---|---|
|  |  |
|  |  |
|  |  |
|  |  |
|  |  |
## 评估结果
| 领域 | 案件数 | Precision | Recall | Citation coverage | Invalid citations | Action agreement |
|---|---|---|---|---|---|---|
| AML(零售与商业银行) | 11 | 1.0 | 1.0 | 1.0 | 0 | 1.0 |
| 市场滥用(资本市场) | 5 | 1.0 | 1.0 | 1.0 | 0 | 1.0 |
详细分析:[`eval/eval_report.md`](./eval/eval_report.md)。这两个测试集的规模都很小,仅适用于作品集项目,而非生产系统。在将其应用于任何实际场景之前,请参阅该报告中关于扩充数据集的说明。
## 未来计划
- [x] 使用 React 构建审查面板
- [ ] 将两个测试集的规模扩大到各 100 个以上的标记案例
- [ ] 将目前简单的文本搜索替换为更准确的检索方法
- [ ] 增加第三个领域,以证明共享设计的普适性
- [ ] 支持同时适用多个国家的法规
## 技术栈
Java, Spring Boot, Kafka, Python, FastAPI, Pydantic, scikit learn, Anthropic Claude API, React, Vite, SQLite, Postgres, Docker, GitHub Actions。
## 许可证
MIT,详见 [`LICENSE`](./LICENSE)。
标签:AV绕过, FastAPI, JS文件枚举, React, Syscalls, TCP/UDP协议, 反洗钱, 请求拦截, 逆向工具, 金融合规