它的“格式支持”分为两个层面:

- 输入文档的解析:如何将各种格式的文档转化为模型可以处理的纯文本。
- 输出结果的格式化:模型处理后的结构化信息以什么格式呈现。
输入格式支持
OpenCLAW 本身并不内置复杂的文档解析器,它通常依赖于强大的第三方库来将不同格式的文件转换为纯文本,然后将文本送入其AI模型进行处理。
常见的支持格式(通过底层库实现)包括:
- 文本格式:
.txt:纯文本,直接支持。.md/.markdown:Markdown格式,可以很好地保留标题、列表等结构。
- 办公文档格式:
.pdf:这是法律文档中最关键和最常见的格式,通常使用PyPDF2、pdfplumber或pymupdf等库进行解析,解析质量取决于PDF本身是文本型PDF(可复制)还是扫描图片型PDF(需要OCR)。.docx:Microsoft Word文档,使用python-docx库可以高质量地提取文本和基础格式。.pptx:PowerPoint演示文稿。.xlsx:Excel电子表格(通常用于提取表格数据)。
- 其他格式:
.html/.htm:网页文件。.rtf:富文本格式。.epub:电子书格式。
关键技术栈: 许多项目会使用 Apache Tika 作为一个统一的、强大的解析接口,Tika 是一个内容分析工具包,可以处理超过一千种文件格式,并提取其中的文本和元数据,OpenCLAW 的预处理管道可以集成 Tika 来作为“格式解析”的通用解决方案。
对于扫描版PDF(图片):
如果PDF是扫描图片,则需要先进行 OCR 才能获取文本,常用工具是 Tesseract OCR,流程会变成:PDF扫描件 -> OCR(Tesseract)-> 文本 -> OpenCLAW模型处理。
输出格式支持
OpenCLAW 模型的核心任务是从法律文本中提取结构化信息,
- 当事人信息
- 案件编号
- 法院名称
- 关键日期
- 诉讼请求
- 法律条款引用
- 判决结果
这些提取出的信息需要以结构化的数据格式输出,方便后续的数据库存储、分析和可视化。
最常用的输出格式是:
- JSON:这是最主要和最灵活的格式,JSON可以清晰地表示嵌套的、层级化的数据结构,非常适合表示法律文档的复杂实体和关系。
{ "document_id": "2023民初12345号", "parties": [ { "type": "原告", "name": "张三", "attributes": {"代理人": "李四律师"} }, { "type": "被告", "name": "XX科技有限公司" } ], "court": "北京市第一中级人民法院", "claims": ["请求判令被告支付合同违约金人民币100万元"], "extracted_articles": ["《中华人民共和国民法典》第五百七十七条"] } - XML:另一种结构化的标记语言,在法律和出版领域有较长的使用历史,但灵活性不如JSON。
- CSV:如果提取的信息是扁平化的(只是简单的实体列表),可以输出为CSV,方便用Excel打开。
- Markdown:有时会将重新整理后的摘要或关键信息以Markdown格式输出,便于阅读和报告生成。
总结与建议
| 层面 | 支持格式 | 说明 |
|---|---|---|
| 输入 | PDF, DOCX, TXT, MD, HTML, PPTX 等 | 依赖于预处理管道,需集成 PyPDF2、python-docx、Apache Tika 或 Tesseract OCR 等库来实现。 |
| 输出 | JSON (首选), XML, CSV, Markdown | 由项目代码控制,模型提取的结构化数据被封装成这些通用格式。 |
给开发者的建议: 如果你想在自己的项目中使用或借鉴 OpenCLAW 的能力来处理法律文档:
- 构建一个强大的预处理管道:针对你的文档来源(如法院网站、内部档案),选择合适的解析库(如
pdfplumber处理可复制PDF,Tesseract处理扫描件),确保高质量地将文档转为文本。 - 聚焦于模型微调:OpenCLAW 的核心是其针对法律领域微调过的语言模型(如基于LLaMA, ChatGLM等),你应该将精力放在如何利用其模型能力上。
- 设计你的输出Schema:根据你的业务需求,定义好最终输出的JSON数据结构,OpenCLAW 的模型需要被引导(通过Prompt或微调)来填充这个结构。
OpenCLAW 为你提供了理解法律文本的“大脑”,而具体的“眼睛”(文档解析)和“手”(结果格式化)需要你根据实际场景,利用成熟的开源工具库来搭建。 在项目的 README 或相关文档中,通常会说明其建议的或已集成的预处理工具链。