Code Interpreter 说表格已做好,怎样把容器里的文件真正下载成交付物

2026-10-24

从回复文本annotations中枚举container_file_citation,取得container_id、file_id和filename,再通过容器文件内容接口取回字节,保存为本地交付文件。sandbox路径只是运行环境里的位置,不能直接当成读者可访问的公网下载链接。

文件引用与普通文本分开收集

附件合成响应含两条容器文件引用,它们原名都叫report.csv,但file_id分别是f1与f2。脚本遍历message的content与annotations,不从“文件已生成”字样猜测产物,也不抓Markdown路径假装下载成功。没有文件引用的回答应明确缺少可下载产物,不能据自然语言承诺创建一条不存在的附件链接。

使用容器文件内容路径

官方Code Interpreter指南说明如何根据容器引用取得文件。容器文件与普通Files资源不是一回事,不能把file_id随便塞到另一个下载接口。本包用本地stub根据(container_id,file_id)返回两份原创CSV字节,以便无Key运行;没有访问真实容器,也没有验证远端文件目前仍可取回。真实接入时应记录HTTP结果并在失败时停止交付,不根据本地夹具推断线上存储期限。

同名文件不互相覆盖

程序先清理文件名中不适合本地路径的字符,再用file_id加前缀,得到f1-report.csv与f2-report.csv。artifact-manifest.json保留原名、容器标识、本地名、字节数与摘要,两份合计32字节。读者打开两个CSV应分别看到a,12和b,18。真实下载还应处理安全路径、名字冲突及写入失败,不能把原filename当成任意目录执行。

取不回时交付明确失败

失败命令让stub缺失第二份文件,程序报FileNotFoundError,不能把第一份成功扩展成“全部已下载”。容器失效、权限不足、文件不存在与内容损坏需要保留不同诊断,不能都替换为空文件。摘要相同只能说明本地字节一致,不能证明分析内容正确。此包不执行模型代码,不模拟真实容器保活,也不虚构有效期;它帮助读者把已有产物引用变成可核查的本地交付包。

交付清单可以作为下载完成的核对表:只有字节确实落盘并计算摘要的文件才标保存成功。若某一产物失败,说明哪些已经可用、哪些仍缺失,保留错误诊断;不要生成空占位文件来满足预定的文件数量。

下载与复现

下载完整样例包,解压到一个新文件夹;也可查看全部文件清单和主脚本。使用Python 3.10或更新版本,在解压目录运行。此脚本只使用标准库,无需安装额外包。

python -B run.py
python -B run.py --negative

先查看主要结果,再修改输入重跑;已有输入会保留,结果写回同目录。边界命令可能故意非零退出,也可能输出明确的不适用状态,按正文说明判断,不把所有非零退出都当成安装故障。

依据与延伸阅读

资料核对日期为2026年10月24日。一手资料1:container_file_citation携带container_id、file_id与filename,应取容器文件内容,不将sandbox路径当公网URL。

继续阅读:OpenAI API 接入:API Key 与 Responses API 首次调用;Gemini 代码执行返回图和文字,怎样一起保存成一份可打开的分析包;AI 分析 Notebook 要发给别人,怎样制作不带历史输出和内嵌截图的分享副本。

想系统学会用 AI?报名体系课或加入会员,照着学、照着用。

加微信,把这一页存到手机上

扫码加站长企业微信,会自动把这一页的链接发给你,方便在手机上接着看。AI 落地卡住了,也可以直接问。

去留微信

留言讨论

评论发布后会被人工复核,违规内容将被删除。

    还没有人评论,来说说你的看法

    如果发表没有反应,可以前往联系我们告诉我们。

    这个页面有问题?

    提交时会附带当前页面地址和浏览器信息,帮助我们定位问题。不填联系方式即为匿名。