第 68 页 / 共 100 页 / 飞书修订版 8

8.Code execution and the Files API

此文档由 学习AI的1000天 翻译制作(抖音,B站,YouTube)

邮箱: szqshan@gmail.com | 微信: szqshan
网址: www.xueai.org

==================================================

HOSkbSjuioOveCx31XvcV9u3nib.csv
R7EYb1ofxoyP6dxxHSDcWWFLnSS.bin

Anthropic API 提供了两个强大的功能,它们结合使用效果非常出色:Files API 和代码执行。虽然乍看之下它们似乎是独立的功能,但将它们结合起来为委托 Claude 处理复杂任务开辟了一些非常有趣的可能性。

Files API

Files API 提供了处理文件上传的另一种方式。您无需在消息中直接将图像或 PDF 编码为 base64 数据,而是可以提前上传文件并在后续引用它们。

image1.jpeg

工作原理如下:

  • 通过单独的 API 调用将您的文件(图像、PDF、文本等)上传到 Claude
  • 接收包含唯一文件 ID 的文件元数据对象
  • 在后续消息中引用该文件 ID,而不是包含原始文件数据
image2.jpeg

当您想要多次引用同一个文件,或者处理较大的文件(在每个请求中包含这些文件会很麻烦)时,这种方法特别有用。

Code Execution Tool

代码执行是一个基于服务器的工具,不需要您提供实现。您只需在请求中包含预定义的工具模式,Claude 就可以选择性地在隔离的 Docker 容器中执行 Python 代码。

image3.jpeg

代码执行环境的关键特征:

  • 在隔离的 Docker 容器中运行
  • 无网络访问权限(无法进行外部 API 调用)
  • Claude 可以在单次对话中多次执行代码
  • 执行结果会被 Claude 捕获并解释,用于生成最终响应

结合 Files API 和代码执行功能

真正的威力来自于将这些功能结合使用。由于 Docker 容器没有网络访问权限,Files API 成为了向执行环境传入和传出数据的主要方式。

image4.jpeg

以下是典型的工作流程:

  1. 使用 Files API 上传您的数据文件(如 CSV 文件)
  2. 在消息中包含一个容器上传块,并提供文件 ID
  3. 要求 Claude 分析数据
  4. Claude 编写并执行代码来处理您的文件
  5. Claude 可以生成输出(如图表),您可以下载这些输出

Practical Example

让我们看一个使用流媒体服务数据的真实示例。CSV 文件包含用户信息,包括订阅层级、观看习惯,以及他们是否已经流失(取消订阅)。

image5.jpeg

首先,使用辅助函数上传文件:

file_metadata = upload('streaming.csv')

然后创建一条消息,既包含上传的文件,也包含分析请求:

messages = []

add_user_message(

messages,

[

{

"type": "text",

"text": """运行详细分析以确定客户流失的主要驱动因素。

你的最终输出应该包含至少一个详细的图表来总结你的发现。"""

},

{"type": "container_upload", "file_id": file_metadata.id},

],

)

chat(

messages,

tools=[{"type": "code_execution_20250522", "name": "code_execution"}]

)

理解响应

当Claude使用代码执行时,响应包含多种类型的块:

  • 文本块 - Claude的分析和解释
  • 服务器工具使用块 - Claude决定运行的实际代码
  • 代码执行工具结果块 - 运行代码的输出
image6.jpeg

Claude 可能在单个响应过程中多次执行代码,迭代构建其分析结果。每个执行周期都包含代码及其运行结果。

下载生成的文件

最强大的功能之一是 Claude 能够生成文件(如图表或报告)并使其可供下载。当 Claude 创建可视化内容时,它会存储在容器中,您可以使用 Files API 下载这些文件。

在响应中查找类型为 "code_execution_output" 的块 - 这些块包含生成内容的文件 ID:

download_file("file_id_from_response")

image7.jpeg

最终结果是一个包含专业可视化图表的综合分析,如果手动编码实现这些功能将需要大量工作。

超越数据分析

虽然数据分析是自然的应用场景,但 Files API 与代码执行的结合开启了许多可能性:

  • 图像处理和操作
  • 文档解析和转换
  • 数学计算和建模
  • 自定义格式的报告生成

关键在于,你可以将复杂的计算任务委托给Claude,同时通过Files API保持对输入和输出的控制。这创造了一个强大的工作流程,Claude成为你的编程助手,能够实际执行和迭代解决方案。

==================================================



此文档由 学习AI的1000天 翻译制作(抖音,B站,YouTube)
邮箱: szqshan@gmail.com | 微信: szqshan
网址: www.xueai.org