Escriba 的底层技术
Escriba 只是把众多优秀的开源项目粘合在一起。完全透明比显得聪明更重要,因此这里确切地说明引擎盖下运行着什么、每个部件做什么,以及 Escriba 在何时——如果有的话——会接触网络。
| 作用 | 项目 | 许可证 |
|---|---|---|
| 核心文档 → Markdown 转换 | Microsoft MarkItDown | MIT |
| Web 框架 / API | FastAPI · Uvicorn | MIT / BSD |
| PDF 解析、页面选择与真正的涂黑遮蔽 | PyMuPDF | AGPL-3.0 / 商业 |
| 高级 PDF 版面提取(可选启用) | OpenDataLoader PDF | 开源 |
| 图像与扫描版 PDF 的 OCR | Tesseract + OCRmyPDF | Apache-2.0 / MPL-2.0 |
| 音频与视频转录 | faster-whisper(OpenAI Whisper) | MIT |
| 文本 → 音频(本地语音) | Piper | MIT |
| 网页与 YouTube 字幕 | yt-dlp | Unlicense |
| PII 检测(匿名化引擎) | OpenAI Privacy Filter | Apache-2.0 |
| 安全的用户自定义正则规则 | google-re2 | BSD-3 |
| Token 计数 | tiktoken | MIT |
| RAG 分块 | semchunk | MIT |
| 导出为 10 种格式 | Pandoc | GPL-2.0+ |
| 实时按模型计价 | OpenRouter(公开 API) | — |
| 速率限制 | 内嵌 Redis | — |
| 预览 HTML 净化(在你的浏览器中) | DOMPurify | Apache-2.0 / MPL-2.0 |
许可证——Escriba 采用 MIT
Section titled “许可证——Escriba 采用 MIT”Escriba 自己的源代码以 MIT 许可证 发布,这是现有最宽松的许可证之一。用大白话说:
你可以做什么
- 将其用于任何用途,包括商业用途。
- 修改源代码并使其适应你的需求。
- 分发它,并重新分发你修改后的版本。
- 私下使用它,并在你自己的产品内部对其进行再许可。
你必须做什么
- 在源代码的副本中保留原始的版权声明和许可证文本。
哪些不在覆盖范围内
- 它按**“原样”提供,不附带任何担保**——作者对其被如何使用不承担责任。
转录模型(Whisper)
Section titled “转录模型(Whisper)”转录使用 faster-whisper——一个针对 OpenAI 的 Whisper 优化过的运行时。
你可以通过 WHISPER_MODEL 选择模型大小——tiny、base(默认)、small、
medium 或 large-v3。更大的模型更准确,但在 CPU 上更笨重、更慢;
关于每种模型的需求,请参见系统需求。
关于匿名化引擎
Section titled “关于匿名化引擎”PII 引擎构建在 OpenAI Privacy Filter (OPF,Apache-2.0)之上,这是一个能检测姓名、组织、地点等信息的 NER 模型。 Escriba 在其外层封装了版面感知的发票字段读取、经过验证的检测器 (信用卡 Luhn 校验、IBAN mod-97 校验),以及运行在 Google RE2 引擎(线性时间、抗 ReDoS)上的你自己的规则。
Escriba 何时会连接互联网?
Section titled “Escriba 何时会连接互联网?”按照设计,转换、OCR、转录和匿名化全部在你自己的服务器上本地运行。 上传的文件在转换后立即被删除,不会存储任何内容。Escriba 唯一会发起对外请求的情形只有以下这些——而且全都由用户主动触发或为可选:
- 你转换一个 URL 或一个 YouTube 链接。 Escriba 会去抓取该页面/字幕(通过 yt-dlp)。这是显然的。
- 你启用了某个 AI 提供商。 只有这时,文本才会发送到你所选择的提供商 (OpenAI、Gemini 或 OpenRouter)。默认是不使用 AI,不会发送任何内容。
- 实时模型计价。 LLM 面板会从 OpenRouter 获取 价格/上下文列表——这是一个公开目录,请求中不含任何文档数据。 它会被缓存,且如果离线,该功能只会什么都不显示。
- 首次运行时的模型下载。 Whisper 和 NER 模型会被下载一次(或 预先烘焙进镜像中),之后便完全离线运行。
这就是完整的清单。除非你明确地让 Escriba 指向某个外部 AI 提供商, 否则你的文档本身永远不会离开你的机器。