Matrix-ops77/dont-lie
GitHub: Matrix-ops77/dont-lie
一个为 AI API 调用生成 Ed25519 签名哈希链回执的本地代理,用于满足合规审计对防篡改记录的需求。
Stars: 0 | Forks: 0
# Don't-Lie
[](LICENSE)
[](https://www.python.org)
[](#benchmarks)
[](#how-it-works)
[](#how-it-works)
[](#philosophy)

```
pip install dontlie
dontlie demo
```
就这样。只需 30 秒。无需 API 密钥。你会得到一个带签名的回执链,你可以随意篡改它,以验证它是否真的能检测出篡改。
## 这是什么
一个本地优先的代理,它将每一次 AI 请求和响应捕获到一个**带签名的、哈希链接的回执链**中。采用 Ed25519 签名。SHA-256 链。支持离线验证。便携式数据包。没有虚假声明。
```
# 之前
openai.api_base = "https://api.openai.com/v1"
# 之后(单行)
openai.api_base = "http://localhost:8080/v1"
```
你的客户端不需要改变。你的提供商不需要改变。现在,每次调用都会生成一份你可以直接交给审计员的回执。
## 它能证明什么 —— 以及不能证明什么
| 能证明 | 不能证明 |
|---|---|
| 回执由文档记录的密钥签名 | 模型答案是否正确 |
| 从第一份回执开始的链是完整无缺的 | 上游提供商是否为所声称的那一家 |
| 数据包与你移交的回执相匹配 | 哪个人或哪个组织持有签名密钥 |
| 每份回执都绑定了你发送和接收的确切字节 | 字节之外的内容语义 |
其核心价值在于诚实。我们不声称 AI 是真实的。我们声称记录是防篡改的。
## 功能特性
- **Ed25519 签名的回执** — 保存在本地,不向外部发送数据
- **哈希链接链 (v2)** — 每份回执通过 SHA-256 链接至上一份
- **OpenAI 兼容代理** — 可直接替换 OpenAI、Anthropic、MiniMax、LangChain、LlamaIndex
- **便携的签名数据包** — 可在干净的机器上离线验证
- **HTML 证明报告** — 独立完整,排版精美
- **敏感信息脱敏** — API 密钥、电子邮件、社会安全号码 (SSN)、信用卡、JWT
- **兼容 200 多种模型** — OpenAI、Anthropic、MiniMax、Gemini、Llama、Mistral、任何本地模型
- **30 秒安装** — 无需 Docker、无需云平台、无需注册账户
- **MIT 许可证** — 全部代码
- **信任分数** — 根据现有保险库状态生成的 0-100 的数值,提供用于 CI 的 JSON 格式
- **NDJSON 流** — 使用 `dontlie tail --follow --json` 接入 Splunk / Datadog / ELK / Sumo
- **Web UI** — 使用 `dontlie web` 供非工程师审计员使用(基于标准库 HTTP,无 JS 依赖)
- **TUI 浏览器** — 使用 `dontlie ui` 通过 SSH 浏览回执
- **一行代码的 agent SDK** — `import dontlie_agent; dontlie_agent.install()`
- **针对不同合规体系的备忘录** — `docs/compliance/` 中包含 HIPAA、SOC 2、EU AI Act、NY DFS
## 工作原理

1. 将任何兼容 OpenAI 的客户端指向 `http://localhost:8080/v1`
2. Don't-Lie 转发请求并捕获确切的请求/响应
3. 每份回执都会被计算 SHA-256 哈希、进行 Ed25519 签名,并与上一份链接
4. 使用 `dontlie verify` 进行离线验证
5. 使用 `dontlie export --bundle` 导出便携式数据包
6. 生成 HTML 证明报告(演示脚本会自动执行此操作;该辅助工具也可通过 `python3 -m dontlie.demo.render_report` 调用)
### 随处验证

## 使用场景
**事件响应** — 你的客户问“AI 到底说了什么?”在 30 秒内生成一份单页证明报告,而无需费力翻找日志。
**合规与审计** — SOC 2、GDPR、EU AI Act:向审计员提供一份能够抵御任何本地机器更改的签名证据链。
**客户信任** — 向你的客户准确展示他们的数据变成了什么样,证明你没有篡改过它,以及是哪个提供商给出了回答。支持独立验证。
**提供商迁移** — 从 OpenAI 切换到 Anthropic,再到本地模型,而不会丢失你的审计历史记录。
**取证调试** — 每一个 prompt、每一次响应、每一个字节、每一个签名。篡改一个字节,验证就会失败。
## 安装
```
pip install dontlie
```
验证安装:
```
dontlie --version
dontlie demo # offline proof: 3 signed receipts, tamper + restore
dontlie demo --port 9879 # same demo on a non-default proxy port
```
30 秒离线演示:
```
dontlie demo
```
这将运行一个本地 mock provider,捕获 3 份回执,进行验证,篡改其中一份,并向你准确展示哪里出了问题。
使用 MiniMax 进行实时演示:
```
export DONTLIE_UPSTREAM_BASE_URL=https://api.minimax.io/v1
export DONTLIE_UPSTREAM_API_KEY="$MINIMAX_API_KEY"
dontlie proxy --port 8080 &
export OPENAI_BASE_URL=http://127.0.0.1:8080/v1
export OPENAI_API_KEY=dontlie-local
# 与任何 OpenAI-compatible 客户端通信。Receipts 会自动写入。
```
## 架构
```
dontlie/
├── storage.py # SQLite vault, chain v2, append
├── sign.py # Ed25519 signing, key management
├── proxy.py # OpenAI-compatible HTTP proxy
├── verify.py # Offline verification, bundle export
├── render_report.py # HTML proof report
├── redaction.py # Secret detection and redaction
├── encryption.py # Encrypted-at-rest vault option
├── groundtruth/ # Receipt ↔ source bytes reconciliation
├── anchor/ # External timestamp anchoring
├── clients/ # SDK adapters (LangChain, LlamaIndex)
├── demo/ # Offline + live runbooks
├── site/ # Landing, demo, explorer, checkout
└── tests/ # 356 tests, < 60s
```
## 模板
- [🏠 `site/index.html`](site/index.html) — 落地页
- [🎬 `site/demo.html`](site/demo.html) — 30 秒交互式验证
- [🔍 `site/RECEIPT_EXPLORER.html`](site/RECEIPT_EXPLORER.html) — 回执表格 UI
- [💳 `site/CHECKOUT.html`](site/CHECKOUT.html) — 套餐结账
## 定价
| 套餐 | 价格 | 受众 |
|---|---|---|
| 免费 · 本地版 | $0 | 独立开发者、OSS 维护者 |
| 开发者版 | $19/月 | 独立开发者、自由职业者 |
| 团队版 | $299/月 | 正在交付 agent 的小型团队 (5–25人) |
| 企业版 | $25K+/年 | 受监管的团队 (50–500人) |
**免费版永远不会在完整性验证、签名器、提供商或链式验证上进行限制。** 这是我们的核心价值。
## 基准测试
在 Apple M 系列硬件上测量,单线程:
| 操作 | 吞吐量 |
|---|---|
| 签名 + 存储 | ~300 份回执/秒 |
| 验证 | ~1,900 份回执/秒 |
| 打包导出 | ~2,400 份回执/秒 |
| HTML 报告生成 | ~80 份回执/秒 |
完整记录请见:[demo/output/BENCHMARK.md](demo/output/BENCHMARK.md)
## 文档
- [LAUNCH.md](LAUNCH.md) — 面向客户的发布说明
- [competitive.md](competitive.md) — 公开的行业格局与市场定位
- [PRIVACY.md](PRIVACY.md) — 隐私承诺
- [SECURITY.md](SECURITY.md) — 威胁模型与报告
- [PLDG.md](PLDG.md) — 绝不外联承诺(由 `test_phone_home.py` 强制执行)
- [company/BRAND.md](company/BRAND.md) — 风格指南
- [company/PRIVACY_POLICY.md](company/PRIVACY_POLICY.md)
- [company/TERMS_OF_SERVICE.md](company/TERMS_OF_SERVICE.md)
- [company/DPA.md](company/DPA.md) — 数据处理协议
## 部署
此代码库是 CLI 和已部署站点的**单一事实来源**。
这台机器上没有第二个 `site/` 的副本。
### 部署静态站点
`site/` 文件夹是在 [queued-inlet-pmqa.here.now](https://queued-inlet-pmqa.here.now/) 上运行的内容。
由于此开发机器上未安装 `herenow` CLI,因此部署是通过手动拖放完成的:
1. `dontlie backup` — 首先为实时保险库创建快照(安全防范机制)
2. 在浏览器中打开 [here.now 上传页面](https://here.now/upload)
3. 将整个 `site/` 文件夹拖到上传区域
4. 使用 `view-source:https://queued-inlet-pmqa.here.now/` 验证部署的 URL 是否渲染正常
5. 打开 `https://queued-inlet-pmqa.here.now/#v=` 以确认可分享的验证 URL 流程仍然有效
`site/` 文件夹是自包含的:不获取 CDN、不包含分析脚本、不包含第三方字体。请参阅 [PLDG.md](PLDG.md) 了解该承诺以及在 CI 中运行的强制执行测试。
### 部署见证公证节点
支持 `witness-attest` 和 `witness-coverage` 的 Cloudflare Worker 位于
[`projects/dontlie/witness-worker/`](projects/dontlie/witness-worker/)。
使用以下命令部署:
```
cd projects/dontlie/witness-worker
wrangler deploy
```
然后将 worker URL 传递给 `dontlie witness-coverage --url https://your-worker.workers.dev`。
### 单一位置规则
如果你发现自己在该代码库之外的任何地方编辑 `site/` 或 `dontlie` 文件夹,**请停止** — 那些是过时的副本。从两个位置合并到一个位置的操作是在提交 `50dd58c` (v0.3.3) 中完成的。位于 `~/orca projects/dontlie/` 的旧工作区已被删除;请勿重新创建。
## 理念
Don't-Lie 是一个公证员,而不是法官。我们记录模型说了什么。我们并不声称它是正确的。这种更狭义的声明在法庭、审计以及你客户的安全审查中都是经得起推敲的。
## 安全性
请参阅 [SECURITY.md](SECURITY.md)。如需报告漏洞:security@dontlie.dev。
## 许可证
MIT。由 Don't-Lie 团队构建。
## 链接
- [GitHub](https://github.com/Matrix-ops77/dontlie)
- [文档](https://dontlie.dev)
- [演示](https://dontlie.dev/demo.html)
- [回执浏览器](https://dontlie.dev/RECEIPT_EXPLORER.html)
- [定价](https://dontlie.dev#pricing)
- [联系我们](mailto:hello@dontlie.dev)
标签:Python, Zenmap, 审计日志, 密码学签名, 数据完整性, 无后门, 本地代理, 程序员工具, 逆向工具