人工智能AI 技能AI 评测【免费下载链接】skillsPublic repository for Agent Skills项目地址https://gitcode.com/GitHub_Trending/skills3/skills点击查看免费下载导读本文基于GitHub_Trending/skills3/skills仓库中 skills/claude-api/php/claude-api/files-api.md 文档结合 PHP SDK 的 README 与其他语言对照文档系统讲解 Claude Files API 在 PHP 中的完整用法如何上传文件PDF、文本、图片、如何通过file_id在 Messages API 内容块中引用文件、如何管理文件生命周期列出、删除、下载以及当前版本下 beta 命名空间的破坏性变更与迁移注意事项。读完本文你将掌握一次上传、多次引用的高效文件处理模式并能独立实现文档问答、报告解析、图片理解等基于 Claude 的 PHP 应用。Files API 是什么Files API 允许把文件上传到 Anthropic 服务端然后在 Messages API 请求中通过file_id引用这些文件从而避免在多次 API 调用间重复上传同一份内容。上传一次得到的file_id可以反复出现在document或image内容块中配合不同的问题文本实现同一份材料、多轮提问的典型场景。关键事实Key Facts以下是该技能在 TypeScript/Python 文档中明确列出的 Files API 平台级约束PHP 开发者同样需要遵守单文件最大体积500 MB组织级总存储配额100 GB文件在删除之前一直持久化保存上传、列举、删除等文件操作免费只有文件内容实际进入消息被模型消费时才按输入 token 计费Amazon Bedrock 与 Google Vertex AI 上不可用详见 skills/claude-api/shared/platform-availability.md 中 Files API 一行仅第一方 Claude API 为 YesBedrock / Vertex 为 No。当前版本状态已退出 Beta仓库中 skills/claude-api/SKILL.md 的 API Drift 表明确记录Files API / Skills 从client.beta.files.*beta 头files-api-2025-04-14转为已退出 betaclient.files.*、无需 beta 头。在当前 SDK 中client.beta.files相对旧版本有破坏性的形状变更已与稳定版client.files对齐。也就是说新代码应优先使用稳定的$client-files命名空间不要再依赖 beta 头。PHP 文档中的示例写作时间早于该变更使用时需按此迁移说明调整。环境准备与客户端初始化先通过 Composer 安装官方 PHP SDK来自 php/claude-api/README.mdcomposer require anthropic-ai/sdk初始化客户端时从环境变量读取 API Keyuse Anthropic\Client; $client new Client(apiKey: getenv(ANTHROPIC_API_KEY));PHP 参数风格注意SKILL.md 的 API Drift 表特别提醒PHP SDK 顶层命名参数使用 camelCase如maxTokens而非max_tokensSDK 会自行映射为线缆上的 snake_case嵌套数组键则按特性各不相同必须照抄官方示例中的确切键名不要批量转换。上传文件旧版 Beta 用法文档示例现已迁移php/claude-api/files-api.md 给出的原始示例早于退出 beta 的变更$file $client-beta-files-upload( file: fopen(upload_me.txt, r), betas: [files-api-2025-04-14], ); // Reference $file-id as a file content block on -beta-messages-create().要点file参数接收一个可读取的文件流fopen(..., r)betas: [files-api-2025-04-14]是当时的 beta 头声明返回值$file-id就是后续内容块引用的file_id。当前稳定用法迁移后结合 SKILL.md 的迁移指引与原始 HTTP 形状可参考 curl/managed-agents.md 中的POST /v1/files迁移后的稳定写法是去掉beta命名空间与 beta 头$file $client-files-upload( file: fopen(report.pdf, r), // 不再需要 betas: [files-api-2025-04-14] ); echo File ID: . $file-id . PHP_EOL; echo Size: . $file-size_bytes . bytes . PHP_EOL;无论新旧写法返回的文件对象都应包含id如file_011CNha8iCJcU1wXNR6q4V8w与size_bytes等元数据字段——这一点可参考 TypeScript 文档中的console.log(\File ID: ${uploaded.id})与uploaded.size_bytes 用法。在 Messages 请求中引用文件上传完成后把file_id放进用户消息的document或image内容块即可。PDF / 文本文档$message $client-messages-create( model: claude-opus-5, maxTokens: 16000, messages: [ [ role user, content [ [type text, text Summarize the key findings in this report.], [ type document, source [type file, file_id $file-id], title Q4 Report, // 可选 citations [enabled true], // 可选启用引用 ], ], ], ], ); foreach ($message-content as $block) { if ($block-type text) { echo $block-text; } }要点内容块的type必须与文件 MIME 类型匹配PDF/文本用document图片用image此规则在 SKILL.md 的 Document File Input 小节有明确说明citations仅当需要逐句引用原文时启用需在所有document块上统一设置且与结构化输出output_config.format不兼容会返回 400读取响应时必须先判断$block-type text再访问$block-text——如果开启动态思考adaptive thinkingThinkingBlock会排在文本块之前直接取content[0]-text会抛异常。这一点在 php/claude-api/README.md 中有详细警示。图片$imageFile $client-files-upload( file: fopen(photo.png, r), ); $message $client-messages-create( model: claude-opus-5, maxTokens: 16000, messages: [ [ role user, content [ [type text, text Whats in this image?], [ type image, source [type file, file_id $imageFile-id], ], ], ], ], );多轮问答一次上传、反复引用Files API 的核心价值在于避免重复上传。上传一份合同 PDF然后对同一个file_id连续提出多个问题完整端到端模式见 Python 文档 python/claude-api/files-api.md$contract $client-files-upload(file: fopen(contract.pdf, r)); $questions [ What are the key terms and conditions?, What is the termination clause?, Summarize the payment schedule., ]; foreach ($questions as $question) { $response $client-messages-create( model: claude-opus-5, maxTokens: 16000, messages: [ [ role user, content [ [type text, text $question], [ type document, source [type file, file_id $contract-id], ], ], ], ], ); echo Q: {$question} . PHP_EOL; foreach ($response-content as $block) { if ($block-type text) { echo A: {$block-text} . PHP_EOL; break; } } } // 用完清理 $client-files-delete($contract-id);文件生命周期管理除了上传与引用Files API 还提供列举、删除与下载能力。PHP 文档未逐一展开以下对照同一技能内 TypeScript/Python 文档的成熟模式给出 PHP 对应写法方法名与命名空间以迁移后的稳定$client-files为准。列出文件TypeScript 与 Python 文档都展示了自动分页遍历的模式foreach ($client-files-list() as $f) { echo {$f-id}: {$f-filename} ({$f-size_bytes} bytes) . PHP_EOL; }注Python 文档特别提醒迭代list()结果本身即可自动翻页只有需要仅第一页时才取.dataPHP 的形态同理。删除文件$client-files-delete(file_011CNha8iCJcU1wXNR6q4V8w);下载文件需要留意一个限制Python 文档明确说明只有由代码执行工具code execution tool或 skills 产生的文件才能被下载用户自行上传的文件不可下载。原始 HTTP 形状可参考 curl/managed-agents.md 中的GET /v1/files/{file_id}/content。与其他特性的配合与 Tool Runner / 工具循环结合Files API 上传的file_id也可以配合 PHP SDK 的 Tool Runner$client-beta-messages-toolRunner()工具用BetaRunnableTool定义见 php/claude-api/tool-use.md使用在工具执行循环中把用户上传的文件 ID 传给自定义工具让 Claude 基于文件内容迭代处理。与错误处理结合php/claude-api/README.md 展示了APIStatusException的-type属性用于程序化错误分类上传/删除失败时同样适用try { $client-files-upload(file: fopen(upload_me.txt, r)); } catch (\Anthropic\Core\Exceptions\APIStatusException $e) { echo $e-type?-value; // rate_limit_error, overloaded_error, 等 }与 Beta 特性的区别PHP SDK 中betas:参数只存在于$client-beta-messages-create()上普通$client-messages-create()不接受该参数见 php/claude-api/tool-use.md。Files API 已退出 beta因此迁移后的稳定代码使用$client-files 普通messages-create()无需任何 beta 头若仍在迁移过渡期使用旧 beta 代码则需保留betas: [files-api-2025-04-14]并配合-beta-messages-create()引用文件。迁移指引小结命名空间$client-beta-files→$client-files当前 SDK 中 beta 命名空间形状已与稳定版对齐但旧示例语义有破坏性变更需按 skills/claude-api/shared/live-sources.md 中 Files API 一行的迁移步骤操作beta 头移除betas: [files-api-2025-04-14]引用方式不变仍通过source: [type file, file_id $file-id]在document/image内容块中引用平台限制Files API 在 Amazon Bedrock 与 Google Vertex AI 上不可用请优先使用第一方 Claude API。延伸阅读PHP SDK 全量示例与安装php/claude-api/README.md流式输出长回答建议配合使用php/claude-api/streaming.md工具调用与 Tool Runnerphp/claude-api/tool-use.md其他语言对照与端到端示例python/claude-api/files-api.md、typescript/claude-api/files-api.md平台可用性矩阵skills/claude-api/shared/platform-availability.md获取最新官方文档入口skills/claude-api/shared/live-sources.md赞分享人工智能AI 技能AI 评测【免费下载链接】skillsPublic repository for Agent Skills项目地址https://gitcode.com/GitHub_Trending/skills3/skills点击查看免费下载相关推荐Claude Files API 实战PHP 上传文件并用 file_id 在 Messages 中复用RikkaHub 多 LLM 客户端实践Claude Files API 实战PHP 上传文件并用 file_id 在 Messages 中复用RikkaHub 多 LLM 客户端实践 本篇技术人工智能大模型AI 应用移动开发交互助手Claude Files API TypeScript 实战指南上传、引用与管理大文件Claude Files API TypeScript 实战指南上传、引用与管理大文件 本文是围绕 TypeScript Files API 文档 https人工智能AI 技能AI 评测RikkaHub 实战Claude Files API 文件上传与引用完整指南TypeScriptRikkaHub 实战Claude Files API 文件上传与引用完整指南TypeScript 导读 本文围绕 Claude API 的 Files人工智能大模型AI 应用移动开发交互助手上一篇NiceFish美人鱼入门指南5分钟快速搭建Angular前后端分离项目下一篇Method Draw终极免费在线SVG矢量绘图工具完整指南 创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考