You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何向OpenAI助手线程上传用途为vision的图片文件并限制其不被code_interpreter或file_search使用

如何向OpenAI助手线程上传用途为vision的图片文件并限制其不被code_interpreter或file_search使用

嘿,这个问题的核心其实就在文件上传时的用途指定上,OpenAI的API已经内置了明确的参数来控制文件能被哪些工具访问,我给你把具体操作拆解得明明白白:

关键原理

OpenAI对不同用途的文件做了权限隔离:当你上传文件时指定purpose="vision",这个文件就会被标记为仅用于视觉任务,code_interpreter和file_search工具会自动忽略它——因为这两个工具只会处理标记为"code_interpreter"、"file_search"或通用"assistants"的文件。

具体操作步骤

  • 上传图片并指定Vision用途
    用OpenAI客户端上传图片时,务必设置purpose参数为"vision",示例代码(Python):

    from openai import OpenAI
    
    client = OpenAI(api_key="your_api_key")
    
    # 上传目标图片,明确用途为vision
    uploaded_file = client.files.create(
        file=open("your_image.png", "rb"),  # 替换为你的本地图片路径
        purpose="vision"
    )
    
  • 将图片添加到线程消息中
    把上传好的文件ID关联到线程消息里,同时在附件中明确指定工具类型为vision,进一步锁定用途:

    # 向目标线程添加包含图片的用户消息
    thread_message = client.beta.threads.messages.create(
        thread_id="your_target_thread_id",  # 替换为你的目标线程ID
        role="user",
        content="请帮我分析这张图片里的内容",
        attachments=[
            {
                "file_id": uploaded_file.id,
                "tools": [{"type": "vision"}]
            }
        ]
    )
    

额外注意事项

  • 格式兼容性:确保你的图片是Vision支持的格式(JPG、PNG、WEBP等),同时文件大小和分辨率符合OpenAI的限制(比如单张图片不超过20MB,分辨率不超2048x2048)。
  • 不要混用通用用途:如果之前上传文件时用了purpose="assistants",那这个文件可能会被多个工具识别,所以一定要严格指定"vision"才能实现隔离。

这样操作后,你的图片就只会被Vision模型调用,code_interpreter和file_search完全不会去碰它,完美满足你的需求~

备注:内容来源于stack exchange,提问作者times29

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 13:29:29