本页目录

📗 第 8 章 · Features of the AI

所属课程:课程 004 Building with the the AI API
官方章节名:Features of the AI
课时数:9
CCAR-F 主命中领域:D5 15% + D3
归档日期:2026-10-15


📋 本章课时清单

本章序 全课序 类型 课时 lesson ID 直链 精译
1 51 🎬 视频 Extended thinking 287773 直链 ✅
2 52 🎬 视频 Image support 287778 直链 ✅
3 53 🎬 视频 PDF support 287768 直链 ✅
4 54 🎬 视频 Citations 287771 直链 ✅
5 55 🎬 视频 Prompt caching 287772 直链 ✅
6 56 🎬 视频 Rules of prompt caching 287770 直链 ✅
7 57 🎬 视频 Prompt caching in action 287774 直链 ✅
8 58 🎬 视频 Code execution and the Files API 287777 直链 ✅
9 59 📝 测验 Quiz on features of the AI 289124 直链 ⬜ 待补

🎯 本章考点提示

D5(15%)+ D3,9 课时。extended thinking、图像、PDF、citations、prompt caching(3 课时)、代码执行与 Files API。

考场辨析(据精译反推,待官方 Quiz 验证):

  • 何时开启扩展思考:先用提示评估优化提示词;只有准确率仍不达标时才开启,并接受额外成本与延迟。
  • 缓存何时命中:断点之前(含断点)的内容必须完全一致;哪怕改动一个词,缓存都会失效。
  • 缓存何时有收益:同一内容被反复发送时才有收益;只发送一次的内容放进缓存没有意义。
  • Files API 与代码执行:容器没有网络,数据进出都要经由 Files API;生成的文件通过 code_execution_output 块中的文件 ID 下载。

    ⭐ Prompt caching 三连(Prompt caching / Rules of prompt caching / Prompt caching in action)是 D5 降本降延迟的正面考点,对应官方 What You'll Learn 第 9 条("Implement prompt caching strategies to optimize API usage and reduce latency")。 ⭐ 第 8 条("Utilize the AI's extended features including extended thinking mode, image analysis, PDF processing, and citation generation")覆盖本章前四课:扩展思考、图片、PDF、引用。


📖 逐课精译

课时 1 · Extended thinking

🎯 本课学习目标(据精译反推)

  1. 能说出扩展思考(extended thinking)的定义:模型在作答前先做推理,推理过程以思考块的形式返回。
  2. 能说出开启的代价(思考 token 计费、延迟增加、响应处理更复杂)与"先优化提示、再开启思考"的使用顺序。
  3. 能说出签名(signature)与脱敏块(redacted)的作用,并知道 thinking_budget 与 max_tokens 的约束关系。

类型:🎬 视频 | lesson ID:287773 | 官方直链

  • 精译状态:✅ 已精译(2026-10-27,用户粘贴讲稿)
  • 官方原句:
  • Extended thinking is the AI's advanced reasoning feature that gives the model time to work through complex problems before generating a final response.
  • Think of it as the AI's "scratch paper" - you can see the reasoning process that leads to the answer, which helps with transparency and often results in better quality responses.
  • Important Note: Extended Thinking is not compatible with some other features, notable message pre-filling and temperature.
  • The decision is straightforward: use your prompt evaluations. Run your prompts without thinking first, and if the accuracy isn't meeting your requirements after you've already optimized your prompt, then consider enabling extended thinking.
  • The signature is a cryptographic token that ensures you haven't modified the thinking text.
  • 精译:
  • 是什么:扩展思考(Extended thinking)是 the AI 的高级推理功能,让模型在生成最终回答之前有时间逐步处理复杂问题。可以把它理解为 AI 的"草稿纸":你能看到得出答案的推理过程,这既有助于透明度,也常让回答质量更高。
  • 响应结构:启用后,回复从单一文本块变为结构化的两部分:推理过程(思考块)与最终答案。
  • 优点:复杂任务的推理能力更强;难题上的准确率更高;推理过程更透明。
  • 代价:成本更高(思考 token 同样计费);延迟增加(思考需要时间);代码中的响应处理更复杂。
  • 使用时机(考点):先用提示词评估来决定是否开启。先关闭思考运行提示词;只有在提示词已充分优化、准确率仍不达标时,才考虑开启。它是标准提示工程不够用时的工具,不是默认配置。
  • 签名(signature):思考块附带一个密码学令牌,用来确认思考文本没有被修改。这防止开发者篡改 AI 的推理过程,而篡改可能把模型引向不安全的方向。
  • 脱敏思考(redacted thinking):通常发生在思考过程被内部安全系统标记时,你收到的是脱敏块而不是可读文本。脱敏内容以加密形式保存了真实思考;你可以把完整消息原样传回给模型,后续对话不会丢失上下文。
  • 实现要点:聊天函数增加两个参数,thinking(布尔值,默认 False)和 thinking_budget(默认 1024)。thinking_budget 是模型用于推理的 token 上限,最小值 1024,且 max_tokens 必须大于该预算。开启时在请求参数中加入 thinking 配置,调用方式为 chat(messages, thinking=True)。
  • 测试脱敏响应:可以用一个特定触发字符串强制模型返回脱敏块,验证应用能否优雅地处理它而不崩溃。
  • 本章新生词:已回灌 30-单词表/04- 第 8 章速查分组(课时 1,8 条)
  • 考点映射:映射表把本课标为 D1 1.1(思考作为 Orient/Plan 环节)⭐,次命中 D3。
  • ⚠️ 核对项:讲稿示例把预算参数写作 budget,而我所知的官方 Messages API 字段名是 budget_tokens。实际编码前需以官方文档为准。
  • ⚠️ 限制:启用思考与修改 temperature、消息预填(pre-filling)不兼容,完整清单见讲稿中的兼容性链接。

课时 2 · Image support

🎯 本课学习目标(据精译反推)

  1. 能说出单次请求的图片限制:数量、单图大小、像素上限(单图 8000px,多图 2000px)与 token 公式。
  2. 能写出图片块与文本块并列的消息结构,并说出 base64 与 URL 两种传入方式。
  3. 能用分步分析、单样本示例改进简单提问的准确率。

类型:🎬 视频 | lesson ID:287778 | 官方直链

  • 精译状态:✅ 已精译(2026-10-27,用户粘贴讲稿)
  • 官方原句:
  • the AI's vision capabilities let you include images in your messages and ask the AI to analyze them in countless ways.
  • Each image counts as tokens based on its dimensions: tokens = (width px × height px) / 750
  • Simple prompts often lead to poor results. For example, asking "How many marbles are in this image?" might return an incorrect count.
  • Using one-shot or multi-shot examples
  • Rather than a simple prompt like "provide a fire risk score," a well-structured prompt breaks down the analysis into specific steps.
  • 精译:
  • 能力:视觉能力让你可在消息中附带图片,要求 AI 以多种方式分析:描述内容、比较多张图、计数,或做复杂的视觉分析。
  • 限制(考点):单个请求中所有消息合计最多 100 张图;单图最大 5MB;单张图高宽上限 8000px,多张图时上限 2000px;图片可用 base64 编码或 URL 传入;图片 token 数按公式计算:tokens = (宽 px × 高 px) / 750。
  • 消息结构:用户消息中,图片块(type: image,source 为 base64,带 media_type)与文本块并列。图片块在前、文本块在后是示例写法,不是强制顺序。
  • 消息流:与纯文本一样,服务端发送含图片块与文本块的用户消息,模型以文本块回复分析结果。
  • 提示技巧(核心):图像任务同样适用文本的提示工程方法。简单提问容易出错(例:问"这张图里有几颗弹珠"可能数错),常用手段有三类:提供详细的指导与分析步骤;使用单样本或多样本示例;把复杂任务拆成小步骤。
  • 分步分析:把问题改为方法论,例如先逐个识别并编号,再从左下角开始逐行左到右复核,最后给出经验证的确切数字。
  • 单样本示例:在消息里先放一张已知答案的图和正确答案,再放目标图片,为模型提供分析类型的参照。
  • 实战案例(火灾风险评估):保险公司用卫星图评估住宅火灾风险,而不是派人逐户勘察。好的提示词把任务拆成五步:先定位主住宅(最大的有顶结构、车道连接、与车库/棚屋/泳池区分);再检查树冠对屋顶的覆盖比例(0–25%、25–50%、50–75%、75%+);评估火灾脆弱点(余烬着落点、连续燃料路径、烟囱和通风口的邻近度);检查防御空间(树冠是否连成一片、是否存在燃料梯);最后按 1–4 级评级。每一步写一句结论,最终回复只给数字评级。
  • 要点:同样的提示技巧适用于文本与图片。想要可靠结果,就写结构化的详细提示,而不是依赖简单提问。
  • 本章新生词:已回灌 30-单词表/04- 第 8 章速查分组(课时 2,见下方统计)
  • 考点映射:映射表标 D3 支撑(多模态输入处理);本课与 D3 3.1(结构化提示)的分步写法直接相关。
  • ⚠️ 核对项:讲稿中的 add_user_message 与 chat 是课程示例的自定义辅助函数,不是官方 SDK 的函数名,实际编码时以官方 SDK 为准。
  • ⚠️ 核对项:讲稿给出的图片限制(100 张、5MB、8000px / 2000px、/750 计算公式)来自课程原文,实际使用前请以官方文档为准,因为这些数字可能随版本变化。

课时 3 · PDF support

🎯 本课学习目标(据精译反推)

  1. 能说出从图片代码改为 PDF 代码需要改的四处:扩展名、变量名、内容块类型、媒体类型。
  2. 能说出 PDF 处理能覆盖的内容:文字、图表、表格与文档结构。

类型:🎬 视频 | lesson ID:287768 | 官方直链

  • 精译状态:✅ 已精译(2026-10-27,用户粘贴讲稿)
  • 官方原句:
  • the AI can read and analyze PDF files directly, making it a powerful tool for document processing.
  • This capability works similarly to image processing, but with a few key differences in how you structure your code.
  • the AI's PDF processing capabilities go beyond simple text extraction.
  • Text content throughout the document / Images and charts embedded in the PDF / Tables and their data relationships / Document structure and formatting
  • 精译:
  • 能力:模型可以直接读取并分析 PDF 文件,是文档处理的有力工具。它的用法与图片处理相似,区别在于代码结构上的几处细节。
  • 代码改动(核心):在图片代码的基础上做四处修改。文件扩展名由 .png 改为 .pdf;变量名由 image_bytes 改为 file_bytes,以求清晰;内容块类型由 "image" 改为 "document";媒体类型由 "image/png" 改为 "application/pdf"。
  • 消息结构:用户消息中,文档块(type: document,source 为 base64,media_type 为 application/pdf)与文本块并列,示例文本为"用一句话总结这份文档"。
  • 能力范围:不止于抽取纯文本。模型可以理解整份文档的文字内容、嵌入的图片与图表、表格及其数据关系,以及文档结构与排版。
  • 适用场景:摘要、数据分析、特定内容抽取,都可以用同一套方法完成。
  • 示例:讲稿演示的是把一篇维基百科"地球"条目存成 PDF 后,用一句话完成总结。
  • 本章新生词:已回灌 30-单词表/04- 第 8 章速查分组(课时 3,见下方统计)
  • 考点映射:映射表标 D3 支撑(多模态输入处理);本课与第 2 课图片的消息结构相同,是同一类多模态输入。
  • ⚠️ 核对项:讲稿中的 add_user_message 与 chat 仍是课程示例的自定义辅助函数,不是官方 SDK 函数名,实际编码时以官方 SDK 为准。
  • ⚠️ 核对项:讲稿说"Images and charts embedded in the PDF"与"Tables"等能力是课程的描述,PDF 的页数上限、体积上限等限制讲稿未提及,实际使用前请查官方文档。

课时 4 · Citations

🎯 本课学习目标(据精译反推)

  1. 能说出启用引用的两个字段(title 与 citations.enabled),并说出引用的五项信息。
  2. 能区分 PDF 来源(按页码定位)与纯文本来源(按字符位置定位)。

类型:🎬 视频 | lesson ID:287771 | 官方直链

  • 精译状态:✅ 已精译(2026-10-27,用户粘贴讲稿)
  • 官方原句:
  • When the AI answers questions based on documents you provide, users might assume it's just drawing from its training data.
  • Citations solve this transparency problem by creating a clear trail from the AI's response back to your source material.
  • The title field gives your document a readable name, while citations: {"enabled": True} tells the AI to track where it finds information.
  • With plain text sources, instead of page numbers, you'll get character positions that pinpoint exactly where in the text the AI found each piece of information.
  • By implementing citations, you transform the AI from a "black box" that provides answers into a transparent research assistant that shows its work.
  • 精译:
  • 为什么需要:当 AI 基于你提供的文档回答时,用户可能以为它只是在调用训练数据。引用(citations)让 AI 指出每条信息具体来自原文的哪一部分,从而在回答与原始材料之间建立可追溯的证据链。
  • 启用方式(核心):在文档块中增加两个字段。title 给文档一个可读的名字;citations: {"enabled": True} 告诉模型记录每条信息的来源位置。
  • 引用结构:启用后,回复从纯文本变为结构化数据,每条陈述附带引用信息。每条引用包含五项:cited_text(支持该陈述的原文)、document_index(引用的是哪份文档,多文档时有用)、document_title(你设定的标题)、start_page_number(引文起始页)、end_page_number(引文结束页)。
  • 界面价值:引用的真正价值在前端。用户可以把鼠标悬停在引用标记上,看到信息的确切出处。由此,用户能确认回答有据可依、核对原文,并了解每条事实的上下文。
  • 纯文本来源:引用不限于 PDF。文本来源用 source.type: "text",media_type: "text/plain",同样设置 title 与 citations。区别在于定位方式:纯文本没有页码,引用会给出字符位置,精确指出每条信息在文本中的位置。
  • 适用场景:用户需要核对准确性;文档本身权威、用户需要引用它;应用对信息来源的透明度要求高;用户想进一步了解某个事实的背景。
  • 意义:有了引用,AI 不再是"黑箱",而是能展示推理依据的研究助手。这既建立用户信任,也方便用户深入原始材料。
  • 本章新生词:已回灌 30-单词表/04- 第 8 章速查分组(课时 4,见下方统计)
  • 考点映射:映射表标 D3 3.3(强制引用 <quotes> 抗幻觉)⭐⭐,本课是这一条的主命中课时。
  • ⚠️ 核对项:讲稿中的引用字段名(cited_text、document_index、document_title、start_page_number、end_page_number)与纯文本的字符位置字段,实际 API 返回结构请以官方文档为准。
  • ⚠️ 核对项:True 是 Python 写法;JSON 请求体中应为 true。编码时以官方 SDK 与文档为准。

课时 5 · Prompt caching

🎯 本课学习目标(据精译反推)

  1. 能说出提示词缓存的定义:复用已做过的计算工作,降低成本与延迟。
  2. 能说出缓存的两个前提:内容重复出现,且在一小时的有效期内。

类型:🎬 视频 | lesson ID:287772 | 官方直链

  • 精译状态:✅ 已精译(2026-10-27,用户粘贴讲稿)
  • 官方原句:
  • Prompt caching is a feature that speeds up the AI's responses and reduces the cost of text generation by reusing computational work from previous requests.
  • After sending you the response, the AI throws away all this computational work.
  • The cache acts like a lookup table that says "If I ever see this message again, I'll reuse this work I already did."
  • Cache duration: Cached content only lives for one hour.
  • 精译:
  • 定义:提示词缓存通过复用之前请求中的计算工作,加快响应并降低文本生成成本。与其每次请求后丢弃全部处理结果,模型可以在你再次发送相似内容时保存并复用它们。
  • 不用缓存时的流程:模型收到输入后先做大量预处理(分词、为每个词元生成向量、结合上下文分析),然后才生成输出;回复发出后,这些预处理成果全部被丢弃。
  • 问题所在:后续请求若包含同一段内容(例如反复润色同一篇长文的摘要),模型要把刚处理过的预处理再做一遍,效率低。
  • 缓存的工作方式:首次请求时,模型照常预处理,但把结果存入缓存而非丢弃。缓存像一张查找表:如果再次遇到同一内容,就复用已做过的工作。
  • 优势:响应更快(命中缓存的请求执行更快);成本更低(缓存部分按更低费用计);自动优化(首次请求写缓存,后续请求读缓存)。
  • 限制(考点):缓存只保留一小时;只有在反复发送同一内容时才有收益;需要相同内容高频出现,效果才明显。
  • 适用场景:对同一份大文档连续提问的文档分析工作流,或基础内容保持不变、只是反复调整局部的迭代编辑任务。
  • 本章新生词:已回灌 30-单词表/04- 第 8 章速查分组(课时 5,见下方统计)
  • 考点映射:映射表标 D5 5.1(缓存机制)⭐⭐,本课是这一条的概念主课时;与第 6、7 课合成三连。
  • ⚠️ 核对项:讲稿说缓存"只保留一小时"。我知道的官方文档对缓存生命周期的描述是每次命中会续期(约 5 分钟,可续期),两者不一致;实际使用前请以官方文档为准。
  • ⚠️ 核对项:讲稿说"节省成本"但未给比例。我不在本文件里补充折扣数字,以官方定价页为准。

课时 6 · Rules of prompt caching

🎯 本课学习目标(据精译反推)

  1. 能说出缓存断点的放置方法:展开形式的文本块加 cache_control。
  2. 能说出缓存失效的条件(断点之前的内容任何改动)与断点数量上限(4 个)。
  3. 能说出 1024 token 的最小长度门槛,并知道它按所有缓存内容的总和计算。

类型:🎬 视频 | lesson ID:287770 | 官方直链

  • 精译状态:✅ 已精译(2026-10-27,用户粘贴讲稿)
  • 官方原句:
  • Caching isn't enabled automatically - you need to manually add cache breakpoints to specific blocks in your messages.
  • To add a cache breakpoint, you need to use the longhand form for writing text blocks instead of the shorthand.
  • Even small changes like adding the word "please" will invalidate the cache and force the AI to reprocess everything.
  • You can add up to four cache breakpoints total.
  • There's a minimum threshold for caching: content must be at least 1024 tokens long to be cached.
  • 精译:
  • 总规则:缓存的是消息中已做过的计算工作;它只在重复发送相同内容时有收益,且缓存只保留一小时。
  • 不自动开启(核心):缓存不会自动生效,必须手动在特定块上加上缓存断点(cache breakpoint)。断点之前的全部计算工作会被缓存;后续请求只有在断点之前(含断点)的内容完全相同时,才能命中缓存。
  • 写法:要加断点,文本块必须使用展开形式(longhand),不能用简写(shorthand),因为简写没有放置 cache_control 字段的位置。展开形式中设置 cache_control: {"type": "ephemeral"}。
  • 敏感性:内容哪怕只多一个词(例如加上"please"),缓存都会失效,模型必须全部重算。
  • 跨消息缓存:断点可以跨越多条消息与消息类型。把断点放在较后的消息上,之前的所有消息(用户、助手等)都会被包含在缓存中。这适合要缓存某个点之前全部上下文的对话。
  • 可加断点的位置:系统提示、工具定义、图片块、工具调用与工具结果块。系统提示与工具定义很少在请求间变化,通常是收益最大的缓存对象。
  • 处理顺序:模型按"工具 → 系统提示 → 消息"的顺序处理请求各部分。理解这个顺序,有助于放置断点。
  • 数量上限:一次请求最多 4 个缓存断点。例如,可以先缓存工具,再在对话历史中途加一个断点,使不同部分变化时各自的缓存互不影响。
  • 最小长度(考点):可缓存的内容至少 1024 个 token。这是你想缓存的所有消息与块的总和,而不是单个块的长度。"Hi there!" 这样的短消息达不到门槛;把内容重复 500 次,或使用真正的长提示,才能超过门槛。
  • 核心:找出多次调用之间保持不变的部分,在合适的位置放断点,在最大化复用的同时尽量减少缓存失效。
  • 本章新生词:已回灌 30-单词表/04- 第 8 章速查分组(课时 6,见下方统计)
  • 考点映射:映射表标 D5 5.1 的 ⭐⭐ 条目:前缀一致、1,024 token 门槛、断点位置;本课是 5.1 的规则主课时。
  • ⚠️ 核对项:讲稿中的 cache_control: {"type": "ephemeral"} 与"最多 4 个断点"是课程描述,实际 API 参数与上限以官方文档为准。
  • ⚠️ 核对项:1024 token 门槛为讲稿所述,不同模型的最小长度可能不同,编码前请查官方文档。

课时 7 · Prompt caching in action

🎯 本课学习目标(据精译反推)

  1. 能写出在工具列表最后一个工具上加缓存字段的做法,并说出为何要复制而非直接修改。
  2. 能读懂 cache_creation_input_tokens 与 cache_read_input_tokens 两个用量字段的含义。
  3. 能判断部分缓存命中的情形(只改系统提示时,工具命中、系统提示写入)。

类型:🎬 视频 | lesson ID:287774 | 官方直链

  • 精译状态:✅ 已精译(2026-10-27,用户粘贴讲稿)
  • 官方原句:
  • When you enable prompt caching, the first request writes content to a cache that lives for one hour.
  • Large system prompts (like a 6K token coding assistant prompt) / Complex tool schemas (around 1.7K tokens for multiple tools)
  • The cache is extremely sensitive - changing even a single character in your tools or system prompt invalidates the entire cache for that component.
  • If you change your system prompt but keep the same tools, you'll see a partial cache read (for tools) and a cache write (for the new system prompt).
  • 精译:
  • 总述:开启缓存后,首次请求把内容写入缓存(有效期一小时),后续请求从缓存读取,不必重复处理相同内容。最适合反复发送的内容:大型系统提示(讲稿例:6K token 的编程助手提示)、复杂的工具模式(讲稿例:多个工具约 1.7K token)、重复出现的消息内容。
  • 工具模式缓存(代码要点):在工具列表的最后一个工具上加 cache_control: {"type": "ephemeral"}。讲稿的写法是先复制工具列表与最后一个工具,再在副本上加字段,而不是直接修改原定义,这样之后调整工具顺序时不会出问题。
  • 系统提示缓存(代码要点):系统提示要从纯字符串改写为文本块列表,并在该文本块上设置 cache_control。
  • 用量字段(考点):首次请求返回 cache_creation_input_tokens(写入缓存的 token 数,讲稿例 1772);后续请求返回 cache_read_input_tokens(从缓存读取的 token 数);内容变化时会出现新的写入量。
  • 极度敏感:工具或系统提示中哪怕改一个字符,该部分的整个缓存都会失效。
  • 分段命中:若只改系统提示、工具不变,则工具部分命中读取、新系统提示部分写入。缓存是分段的,只为真正变化的部分付费。
  • 断点顺序:可以在一次请求中设置多个断点,顺序为:工具(若有)→ 系统提示(若有)→ 消息。
  • 适用条件:工具模式跨请求保持一致、系统提示稳定、请求频繁且上下文相似。缓存只保留一小时,适合调用频繁的应用,而不是长期存储。
  • 本章新生词:已回灌 30-单词表/04- 第 8 章速查分组(课时 7,见下方统计)
  • 考点映射:映射表标 D5 5.1(成本与延迟收益)⭐;本课是缓存三连的实操课时,对应用量字段与分段命中。
  • ⚠️ 核对项:讲稿的代码通过 params["tools"]、params["system"] 组装请求,这是课程自己的辅助结构,不是官方 SDK 的参数名,编码时以官方 SDK 为准。
  • ⚠️ 核对项:cache_creation_input_tokens 与 cache_read_input_tokens 是讲稿所示的用量字段名,实际返回结构请以官方文档为准。
  • ⚠️ 核对项:讲稿说"一小时"有效期,与第 5 课的"只保留一小时"一致,但与我知道的"命中时续期、约 5 分钟"的官方描述不一致,请以官方文档为准。

课时 8 · Code execution and the Files API

🎯 本课学习目标(据精译反推)

  1. 能说出 Files API 与 base64 直接内嵌的区别,以及何时选用文件 ID 引用。
  2. 能说出代码执行工具的三个特点:服务端运行、Docker 隔离、无网络访问。
  3. 能说出响应中三种块(文本、服务端工具调用、代码执行结果)各自的作用,并知道如何找到生成文件的 ID。

类型:🎬 视频 | lesson ID:287777 | 官方直链

  • 精译状态:✅ 已精译(2026-10-27,用户粘贴讲稿)
  • 官方原句:
  • The Files API provides an alternative way to handle file uploads.
  • Code execution is a server-based tool that doesn't require you to provide an implementation.
  • the AI can optionally execute Python code in an isolated Docker container.
  • Since the Docker containers have no network access, the Files API becomes the primary way to get data in and out of the execution environment.
  • Look for blocks with type: "code_execution_output" in the response - these contain file IDs for generated content.
  • 精译:
  • Files API:另一种处理文件上传的方式。不再把图片或 PDF 以 base64 直接塞进消息,而是先单独调用接口上传,拿到含唯一文件 ID 的元数据对象,之后在消息里引用该 ID。适合同一文件被多次引用,或文件较大、每次都内嵌很麻烦的场景。
  • 代码执行工具(核心):服务端工具,无需你提供实现。请求中只需包含预定义的工具模式,模型就可以在隔离的 Docker 容器中执行 Python 代码(可选)。特点:容器隔离;无网络访问(不能发起外部 API 调用);同一会话中可多次执行;执行结果由模型读取并用于最终回答。
  • 两者结合:因为容器没有网络,Files API 成为把数据送入、送出执行环境的主要通道。
  • 典型流程:① 用 Files API 上传数据文件(如 CSV);② 在消息中加入 container_upload 块并附上文件 ID;③ 让模型分析;④ 模型编写并执行代码处理文件;⑤ 模型生成的输出(如图表)可以下载。
  • 案例:流媒体用户数据 CSV,包含订阅等级、观看习惯,以及是否流失(取消订阅)。任务是找出流失的主要驱动因素,并至少生成一张详细图表。
  • 响应结构(考点):使用代码执行时,回复包含多种块:文本块(分析与解释);服务端工具调用块(server_tool_use,即模型决定运行的代码);代码执行工具结果块(代码的输出)。模型可能在一次回复中多次执行,逐步积累分析,每一轮包含代码与结果。
  • 下载生成文件:模型生成的图表或报告会存入容器,可通过 Files API 下载。在响应中查找 type: "code_execution_output" 的块,其中包含生成内容的文件 ID。
  • 更广的用途:图片处理与操作、文档解析与转换、数学计算与建模、带自定义格式的报告生成。
  • 核心理念:把复杂的计算任务交给模型,同时通过 Files API 掌控输入与输出。模型因此成为能真正执行并迭代方案的编程助手。
  • 本章新生词:已回灌 30-单词表/04- 第 8 章速查分组(课时 8,见下方统计)
  • 考点映射:映射表标 D4 4.3(代码执行与 Files API 的工具边界)⭐,次命中 D1 1.1(执行-观察循环)。
  • ⚠️ 核对项:讲稿中的 code_execution_20250522 是版本化的工具类型名,实际以官方文档当前版本为准,版本号会变化。
  • ⚠️ 核对项:讲稿中的 upload(...)、download_file(...)、add_user_message、chat 是课程示例辅助函数,不是官方 SDK 函数名。
  • ⚠️ 核对项:讲稿说容器"无网络访问",实际的网络与运行时限制请以官方文档为准。

课时 9 · Quiz on features of the AI

类型:📝 测验 | lesson ID:289124 | 官方直链

  • 精译状态:⬜ 待补(讲稿待贴;本课为测验,题目需登录态)
  • 官方原句:待补
  • 精译:待补
  • 本章新生词:待补(讲稿贴入后回灌 30-单词表/04-)

📝 本章小结

本章 9 个课时里,前 8 课是功能讲解,第 9 课是测验。可以按三组来记:

  1. 多模态输入(课时 2–3):图片与 PDF 都以内容块的形式放进用户消息,与文本块并列;差别在于块类型、媒体类型和限制。
  2. 可追溯输出(课时 4):引用让回答可以指回原文,这是 D3 3.3 抗幻觉的落地方式。
  3. 成本与延迟(课时 5–7):提示词缓存靠断点、前缀一致与最小长度三条规则生效,用量字段可以验证命中情况;工具与系统提示是收益最大的缓存对象。
  4. 执行与文件(课时 1、8):扩展思考让模型先推理再作答;代码执行在无网络的容器中运行,数据经由 Files API 进出。

⚠️ 本章核对项汇总

以下各项在对应课时中已有标注,集中列在这里便于统一核对。

  • 示例辅助函数:add_user_message、chat、upload、download_file、params["tools"]、params["system"] 都是课程示例的自定义函数或结构,不是官方 SDK 的名字,编码时以官方 SDK 为准。
  • 参数与字段名:budget 与官方字段 budget_tokens 的差异(课时 1);引用的五项字段与纯文本的字符位置(课时 4);cache_creation_input_tokens 与 cache_read_input_tokens(课时 7);code_execution_20250522 的版本化名称(课时 8)。
  • 数值与限制:图片的 100 张、5MB、8000px / 2000px 与 /750 公式(课时 2);PDF 的页数与体积上限,讲稿未提及(课时 3);cache_control 与最多 4 个断点、1024 token 门槛(课时 6)。
  • 缓存有效期:讲稿说一小时(课时 5、7),与我知道的“命中时续期、约 5 分钟”的官方描述不一致,需以官方文档为准。
  • 容器网络:讲稿说无网络访问(课时 8),实际运行限制以官方文档为准。
  • 布尔值写法:True 是 Python 写法,JSON 请求体中是 true(课时 4)。

✅ 本章进度

  • [x] 抓取本章讲稿/字幕(课时 1–8 用户粘贴;课时 9 测验讲稿待贴)
  • [x] 逐课精译(8/9 课时,课时 9 为测验,见下)
  • [x] 生词回灌 30-单词表/04-(第 8 章速查分组,课时 1–8)
  • [ ] 章节测验(课时 9,待讲稿)

🔗 关联

输入至少 2 个字符,检索全部课程与单词表