File
索引内容
File 连接器把一个或多个文件上传到 OpenCore 管理的存储,并把每个可识别文件索引为文档。它是 load-state 连接器,没有计划刷新,也没有可轮询的源系统。
常规管理后台流程接受多个文件,并且浏览器不设置文件扩展名筛选。因此,字节上传成功并不保证连接器会产生已索引文档。
元数据处理时序会影响文档 ID。.onyx_metadata.json 提供的 id 会在选择文档 ID 前处理,因此可以设置文档 ID。首行 inline ONYX_METADATA 在文档 ID 已固定后才提取,所以 inline id 不会替换 ZIP 提供或自动生成的文档 ID。
前置条件
- 准备使用受支持扩展名的文件,并验证其内容与扩展名匹配。
- 对加密 PDF,需要注意常规管理后台 File 流程会创建空的内部凭据,且不提供 PDF 密码字段。除非部署另有受支持的摄取路径,否则请使用未加密副本。
- 对 ZIP 元数据,请在 archive 根目录放置且只放置一个
.onyx_metadata.json,JSON 可以按文件名作为 key,也可以使用每项都包含filename的列表。 - 确保 file store 与 indexing worker 可以保存并处理上传内容。File 上传 handler 不执行连接器专属字节大小限制。当前
MAX_FILE_SIZE_BYTES索引检查只会在构造出的文档超过配置值时记录日志;不会拒绝上传,也不会跳过该文档。 - 根据部署环境设置适当的 ingress、storage、memory 与 worker 限制,并在广泛使用前测试有代表性的大 PDF、spreadsheet、图片与 archive。
凭据
不要把 access token、private key 或源系统凭据作为普通内容上传。File 连接器用于索引内容,不会把文件当作认证凭据使用。
在 OpenCore 中配置
- 在管理后台打开连接器,选择 File,并填写易识别的连接器名称。
- 选择一个或多个文件。ZIP 默认会被展开;一次上传最多包含一个 ZIP。
- 如果需要元数据,请在受支持的纯文本文件首行使用
ONYX_METADATAprotocol marker,或在 archive 根目录使用.onyx_metadata.json。ONYX_METADATA是 legacy protocol field,不是产品品牌;为保持兼容,必须保留此准确拼写。
会解析的 protocol field 为 id、connector_type、link、file_display_name、title、primary_owners、secondary_owners 与 doc_updated_at。如果需要稳定文档 ID,请把 id 放在 .onyx_metadata.json 中;inline id 解析得太晚,不能更改文档 ID。
ZIP 元数据先应用。对 source type、owner、更新时间、display name、title 与 link,只有非空 inline 值会覆盖已有值,因为连接器使用 fallback(or)选择;空 inline 值不能清除 ZIP 值。Inline 自定义 tag 会更新同名 ZIP 自定义 tag。
自定义 tag 只包含保留排除列表以外的 key。保留字段 document_id、time_updated、doc_updated_at、link、primary_owners、secondary_owners、filename、file_display_name、title、connector_type、pdf_password 与 mime_type 不会进入自定义 tag。document_id 与 time_updated 不是 id 与 doc_updated_at 的解析 alias。在当前兼容 parser 中,id 本身不在自定义 tag 排除列表中,即使 ZIP 级 id 同时也能设置文档 ID。
- 受限文件应选择 OpenCore 私有群组。仅当每个 OpenCore 账号都可以搜索连接器中的全部文件时才选择公开。
- 创建连接器。UI 会上传文件、创建连接器和内部空凭据、按所选访问范围关联它们,并启动一次索引。
- 如需修改现有 File 连接器,请在其管理视图添加或移除文件。必须至少保留一个文件;新增会触发 update indexing,移除会触发 pruning。
权限
文件内容与 ONYX_METADATA owner field 不会创建源 ACL。primary_owners 与 secondary_owners 只是文档元数据。当前管理后台访问选择器不把 File 作为自动同步权限源。
搜索访问仅由连接器的 OpenCore 私有群组或公开模式控制。任何能访问连接器的用户都可以搜索该 File 连接器产生的全部文档。受众不同时,应把文件拆到不同连接器。
文件管理授权与搜索访问相互独立。三个 File 管理端点都先要求 curator 或 admin session。上传在该角色 gate 后执行;列出文件还会检查 connector access;更新文件还会检查 editable access。Global curator 对 Public File 连接器有特殊更新许可,但不能因此更新无关的 Private 连接器。普通 connector 用户不能只因为能够搜索该连接器,就通过这些 Admin endpoint 列出或更新文件。这些管理规则不会创建逐文档搜索权限。
验证
- 创建后,确认上传返回已存储文件名,且 indexing attempt 完成。
- 搜索同一批次中每种受支持文件类型的独特标题和句子。
- 确认用于测试的不受支持扩展名文件不存在,即使上传存储已接受它。
- 对 CSV、TSV、XLSX 或 XLSM,检查提取后的表格;如果部署使用 code-interpreter staging,再测试 raw-file analysis。
- 对 ZIP,把提取文件名与 archive 对账。确认隐藏路径条目与
.onyx_metadata.json没有被作为文档索引。 - 使用 ZIP 元数据验证
id会设置文档 ID。再测试一个只含 inlineid的文件:其文档 ID 必须保持自动生成,而当前 parser 可以把id保留为自定义 tag。同时验证title、link、owner metadata、doc_updated_at、一个非保留自定义 tag,以及保留字段没有进入自定义 tag。请使用非敏感值。 - 测试每个已分配 OpenCore 群组和一个群组外用户。Metadata owner 不应改变结果。
- 在现有连接器中新增一个文件并移除一个文件,然后验证新文档出现,旧文档被 prune。