[RFC] OpenViking 内容解析插件化架构 #1142
MaojiaSheng
started this conversation in
Ideas
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
[RFC] OpenViking 内容解析插件化架构
1. 概述
OpenViking 需要一个灵活的插件化架构,以支持:
2. 当前架构分析
2.1 现有解析系统结构
2.2 现有扩展机制
当前系统提供了两种扩展方式:
CustomParserProtocol- 基于协议的自定义解析器CallbackParserWrapper- 回调函数包装器这些机制允许在运行时动态添加解析器,但缺乏:
3. 插件化架构设计
3.1 核心概念
插件类型
插件元数据
每个插件需要提供以下元数据:
{ "name": "medical-document-parser", "version": "1.0.2", "author": "OpenViking Team", "description": "解析医学文档格式,提取结构化数据", "type": "local", "entry_point": "medical_parser:MedicalDocumentParser", "supported_extensions": [".med", ".medical"], "dependencies": ["pydicom>=2.0", "nltk>=3.8"], "config_schema": { "ocr_enabled": {"type": "boolean", "default": true}, "entity_extraction": {"type": "string", "default": "basic"} } }3.2 架构层次
4. 插件管理命令
4.1 核心命令
4.2 配置目录结构
5. 插件接口规范
5.1 解析器接口(本地插件)
所有本地插件必须继承
BaseParser并实现以下接口:6. 解析器匹配钩子机制
6.1 设计目标
结合
ov add-resource的输入参数(path,reason,instruction)设计一个表现良好的钩子机制,支持:6.2 钩子机制架构
6.3 内置钩子实现
6.3.1 URL 模式匹配钩子
6.3.2 语义匹配钩子(基于大模型)
6.3.3 文件类型匹配钩子
6.3.4 关键词匹配钩子(匹配 reason 和 instruction)
6.4 钩子配置系统
6.5 钩子管理命令
6.6 匹配流程优化
6.7 使用示例
6.7.1 微信公众号文章的匹配过程
6.7.2 医学文档的匹配过程(基于关键词匹配)
6.7.3 技术文档的匹配过程(综合匹配)
7. 真实用例:微信公众号解析插件
7.1 插件实现
7.2 使用流程
7.2.1 安装和配置
7.2.2 钩子配置示例
在
~/.openviking/config/plugins.toml中应该自动添加以下配置:7.2.3 使用插件
7.2.4 测试钩子匹配
系统行为:
匹配流程:
8. 远程插件 API 示例
8.1 请求格式
8.2 响应格式
{ "success": true, "result": { "root": { "type": "root", "title": "患者诊断报告", "children": [...] }, "parser_name": "medical-document-parser", "parser_version": "1.0.2", "parse_time": 2.5 }, "warnings": [] }8. 安全性考虑
8.1 本地插件安全
8.2 远程插件安全
9. 结论
OpenViking 内容解析插件化架构将提供:
这个架构将使 OpenViking 能够适应不断增长的内容解析需求,并成为一个强大的内容理解平台。
Beta Was this translation helpful? Give feedback.
All reactions