如何在Azure AI Search技能集中为文档分块添加原文件元数据?
问题解答
能否直接在现有技能集中实现分块的originalFile元数据添加,取决于你调用的Azure OpenAI预处理作业的能力:
情况1:预处理作业支持附加自定义元数据
你当前的技能集已经将原始文档的filename(/document/filename)作为输入参数传递给了Web API。如果该预处理作业支持接收此参数,并将其值设置为生成的分块Blob的originalFile元数据字段,那么无需额外处理层,仅需调整预处理作业的逻辑,让它将传入的filename写入分块的元数据即可,技能集本身的配置无需大幅修改。
情况2:预处理作业不支持直接添加元数据
这种情况下需要额外处理层,最直接的方案是使用Azure Function + Blob Storage触发器:
- 创建一个Azure Function,配置为监听
ai-product-chunks容器的Blob创建事件 - 当分块Blob被写入时,Function触发执行:
- 从分块Blob的命名规则中解析原始文件名(如果预处理作业生成的分块名称包含原始文件名信息)
- 或者如果预处理作业会将原始filename写入Blob的系统元数据(如
x-ms-meta-filename),直接读取该值 - 通过Blob Storage SDK为分块Blob添加
originalFile元数据字段,值为原始文件名(如file_name.pdf)
补充说明
如果你的最终需求是让分块在导入Azure AI Search索引后带有originalFile字段,也可以在索引器配置中,将Blob的元数据(后续添加的originalFile)或原始文档的filename映射到索引的对应字段,但这和给分块Blob本身添加元数据是不同的场景。
内容的提问来源于stack exchange,提问作者Vlad
相关产品推荐
相关产品推荐

