Azure OpenAI向量存储文件Attributes(元数据)无法保存问题求助
解决Azure OpenAI向量存储文件Attributes未保存问题
问题场景
使用Azure OpenAI API(2025-04-01-preview版本)+ Python SDK上传文件到向量存储,目标为文件添加title、source_url等元数据。上传时设置purpose="assistants",调用client.vector_stores.files.create()传入attributes参数后,返回结果中attributes始终为null;但直接调用REST API执行相同操作,元数据可正常保存。
核心原因分析
- Python SDK参数传递bug:当前版本的OpenAI Python SDK存在参数遗漏问题,针对
purpose="assistants"的文件上传场景,未将attributes参数正确传递至后端API。 - 无特殊权限限制:REST API可正常操作说明,Azure OpenAI对
purpose="assistants"的文件元数据设置没有额外限制,问题出在SDK层面。
可行解决方案
方案1:临时改用REST API调用
直接通过HTTP请求完成文件上传与元数据设置,示例代码如下:
import requests import os api_key = os.getenv("AZURE_OPENAI_API_KEY") endpoint = "你的Azure OpenAI服务端点" vector_store_id = "目标向量存储ID" url = f"{endpoint}/openai/vector_stores/{vector_store_id}/files?api-version=2025-04-01-preview" headers = { "api-key": api_key, } form_data = { "purpose": "assistants", "attributes": '{"title": "示例文档标题", "source_url": "文档来源地址"}' } files = { "file": open("本地文件路径", "rb") } response = requests.post(url, headers=headers, data=form_data, files=files) print(response.json())
方案2:升级至最新预览版SDK
检查当前openai包版本:
pip show openai
若版本不是最新预览版,执行升级命令:
pip install --upgrade openai --pre
新版本SDK大概率已修复attributes参数传递的bug。
方案3:分两步完成文件上传与元数据更新
若升级SDK后问题仍存在,可拆分操作流程:
- 先上传文件(不设置元数据):
from openai import AzureOpenAI client = AzureOpenAI( azure_endpoint="你的Azure OpenAI服务端点", api_key="你的API密钥", api_version="2025-04-01-preview" ) upload_result = client.vector_stores.files.create( vector_store_id="目标向量存储ID", file=open("本地文件路径", "rb"), purpose="assistants" ) target_file_id = upload_result.id
- 单独调用更新接口设置元数据:
update_result = client.vector_stores.files.update( vector_store_id="目标向量存储ID", file_id=target_file_id, attributes={"title": "示例文档标题", "source_url": "文档来源地址"} ) print(update_result.attributes)
内容的提问来源于stack exchange,提问作者Luke
相关产品推荐
相关产品推荐

