Communitygithub.com

Gemini 文件 API

通过可执行脚本上传和管理 Google Gemini 文件 API 中的文件。支持图片、音频、视频、PDF 等文件类型,包括上传、状态检查和文件管理。触发词:'上传文件'、'文件 API'、'上传图片'、'上传 PDF'、'上传视频'、'文件管理'。

Gemini 文件 API 是什么?

该技能提供了一个基于脚本的界面,用于与 Google Gemini 文件 API 进行交互。用户可以通过 CLI 上传图片、音频、视频和 PDF 等文件,并管理其生命周期。它支持上传、状态轮询(使用 `--wait` 参数)以及通过 API 调用引用已上传的文件。该技能非常适合为 Gemini 模型准备多模态输入,并能无缝集成其他 Gemini 技能(如 gemini-text 用于分析)以及批量操作。它还能自动处理文件状态(PROCESSING、ACTIVE、FAILED)并提供错误处理和性能优化等最佳实践指南。

兼容平台✓Claude Code~Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/majiayu000/claude-skill-registry/tree/HEAD/skills/ai-llm/gemini-files-akrindev-google-studio-skills

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

Gemini 文件 API 是做什么的?

通过可执行脚本上传和管理用于 Gemini 模型的文件,支持图片、音频、视频、PDF 等文件类型。

何时使用此技能

当您需要执行以下操作时,请使用此技能:

  • 上传图片用于多模态分析
  • 上传视频用于内容处理
  • 上传 PDF 用于文档分析
  • 上传音频用于转录或处理
  • 预上传文件用于批量操作
  • 检查文件处理状态
  • 列出和管理已上传的文件
  • 与其他 Gemini 技能(文本、图片等)配合使用文件

可用脚本

scripts/upload.py

用途:上传文件至 Gemini 文件 API

使用场景:

  • 上传任何文件供 Gemini 处理
  • 准备用于多模态生成的文件
  • 上传文档供分析
  • 批量文件准备

关键参数:

参数描述示例
path文件路径(必填)image.jpg
--name, -n显示名称"my-document"
--wait, -w等待处理完成标志位

输出:文件名、URI 和状态信息

工作流程

工作流程 1:基本文件上传

python scripts/upload.py image.jpg
  • 适用场景:快速上传、简单文件
  • 输出:文件名和供 API 使用的 URI
  • 状态:PROCESSING 或 ACTIVE

工作流程 2:使用自定义名称上传

python scripts/upload.py document.pdf --name "2026 年第四季度报告"
  • 适用场景:组织文件、跟踪上传
  • 何时使用:原始文件名不够描述性
  • 显示名称会出现在文件列表中

工作流程 3:上传并等待处理

python scripts/upload.py video.mp4 --wait
  • 适用场景:大文件、视频、音频
  • 等待文件变为 ACTIVE 状态
  • 何时使用:上传后需要立即使用文件

工作流程 4:上传图片供分析

# 1. 上传图片
python scripts/upload.py photo.png --name "产品照片"

# 2. 与 gemini-text 配合用于分析
python skills/gemini-text/scripts/generate.py "描述这张图片" --image photo.png
  • 适用场景:图片分析、生成字幕、视觉问答
  • 结合使用:gemini-text 用于多模态处理

工作流程 5:上传 PDF 用于内容提取

# 1. 上传 PDF
python scripts/upload.py research-paper.pdf --name "AI-研究论文" --wait

# 2. 使用 gemini-text 提取内容
python skills/gemini-text/scripts/generate.py "提取本文档的关键发现" --image research-paper.pdf
  • 适用场景:文档处理、内容提取
  • 结合使用:gemini-text 用于分析

工作流程 6:批量上传多个文件

# 1. 上传多个文件
for file in *.jpg; do
    python scripts/upload.py "$file"
done

# 2. 使用已上传的文件创建批处理作业(gemini-batch 技能)
  • 适用场景:准备用于批处理的文件
  • 结合使用:gemini-batch 用于批量操作

工作流程 7:上传音频用于转录

# 1. 上传音频
python scripts/upload.py interview.mp3 --name "采访-001" --wait

# 2. 使用 gemini-text 处理(如果支持转录)
python skills/gemini-text/scripts/generate.py "转录并总结此音频" --image interview.mp3
  • 适用场景:音频处理、转录、播客分析
  • 结合使用:gemini-text 用于音频分析

工作流程 8:上传视频用于内容分析

# 1. 上传视频(可能需要较长时间)
python scripts/upload.py product-demo.mp4 --name "演示视频" --wait

# 2. 使用 gemini-text 分析
python skills/gemini-text/scripts/generate.py "分析此产品演示视频" --image product-demo.mp4
  • 适用场景:视频分析、内容总结
  • 注意:视频可能需要较长的处理时间

参数参考

支持的文件类型

类型扩展名最大大小处理时间
图片jpg, jpeg, png, gif, webp20MB秒级
音频mp3, wav, aac, flac25MB秒至分钟级
视频mp4, mov, avi, webm2GB分钟至小时级
文档pdf, txt50MB秒至分钟级

MIME 类型

脚本根据扩展名自动检测:

  • 图片:image/jpeg, image/png, image/gif, image/webp
  • 音频:audio/mpeg, audio/wav
  • 视频:video/mp4, video/quicktime, video/webm
  • 文档:application/pdf, text/plain

文件状态

状态描述准备好使用
PROCESSING文件正在分析中否
ACTIVE文件已准备好是
FAILED处理失败否

输出解释

上传响应

Uploading photo.png...
Uploaded: files/abc123...
URI: gs://generation-tmp/abc123...
State: PROCESSING
  • 文件名:用于 API 调用
  • URI:内部 Google Cloud Storage 引用
  • 状态:PROCESSING = 等待,ACTIVE = 就绪

使用 --wait 标志

Uploading video.mp4...
Uploaded: files/xyz789...
URI: gs://generation-tmp/xyz789...
State: PROCESSING
Waiting for processing...
Still processing...
File ready!
  • 脚本轮询直至状态变为 ACTIVE
  • 适用于需要处理的大文件
  • 视频可能需要几分钟

使用已上传的文件

上传后,通过文件名引用文件:

# 与 gemini-text 配合使用
python skills/gemini-text/scripts/generate.py "分析" --image <已上传的文件路径>

常见问题

"google-genai 未安装"

pip install google-genai

"文件未找到"

  • 确认文件路径正确
  • 如果相对路径失败,请使用绝对路径
  • 检查文件扩展名是否属于支持的类型

"文件过大"

  • 检查对应文件类型的大小限制
  • 如有可能,压缩图片/视频
  • 将大文件拆分为多个小部分

"不支持的文件类型"

  • 检查支持的扩展名
  • 如有可能,转换为支持的格式
  • 图片:jpg, png, gif, webp
  • 视频:mp4, mov, avi, webm

"处理失败"

  • 检查文件是否损坏
  • 尝试重新上传文件
  • 确认文件格式有效
  • 检查 API 配额限制

"文件仍在处理中"(未使用 --wait 标志)

  • 文件状态为 PROCESSING,而非 ACTIVE
  • 使用 --wait 标志或稍后检查状态
  • 大文件(尤其是视频)需要时间
  • 处理可能需要几分钟到几小时

最佳实践

上传策略

  • 对将要立即使用的文件使用 --wait
  • 批量上传时跳过 --wait 以节省时间
  • 使用描述性 --name 便于组织
  • 记录文件名以备后续使用

文件组织

  • 使用一致的命名约定
  • 在名称中包含日期或版本号
  • 将相关文件分组
  • 在代码中记录文件名

性能提示

  • 并行上传多个文件(单独进程)
  • 预上传文件用于批量操作
  • 在 API 调用前检查文件状态
  • 删除旧文件以管理存储

错误处理

  • 上传后检查返回状态
  • 重试失败的上传
  • 上传前验证文件完整性
  • 记录文件名以供审计追溯

与其他技能集成

  • gemini-text:多模态分析、文档处理
  • gemini-image:基于上传的参考图片生成图像
  • gemini-batch:在批处理作业中使用已上传的文件
  • gemini-embeddings:从文件内容创建嵌入

文件生命周期

  • 上传 → PROCESSING → ACTIVE → 在 API 中使用
  • 删除旧文件以释放存储空间
  • 文件可能在特定时间后过期
  • 重要文件请下载备份

相关技能

  • gemini-text:分析已上传的文件,进行文本生成
  • gemini-image:基于上传的参考图片创建图像
  • gemini-batch:在批处理中使用已上传的文件
  • gemini-embeddings:从文件内容生成嵌入

快速参考

# 基本上传
python scripts/upload.py image.jpg

# 使用自定义名称
python scripts/upload.py document.pdf --name "我的文档"

# 等待处理
python scripts/upload.py video.mp4 --wait

# 多个文件
for file in *.jpg; do python scripts/upload.py "$file"; done

文件管理 API

脚本中虽未包含,但您也可以通过 Python SDK 管理文件:

from google import genai

client = genai.Client()

# 列出所有文件
for file in client.files.list():
    print(f"{file.name}: {file.display_name} ({file.state})")

# 获取文件信息
file = client.files.get(name="files/abc123...")
print(f"State: {file.state}")

# 删除文件
client.files.delete(name="files/abc123...")

参考

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

majiayu000/claude-skill-registry

Builds, edit or validate Agent Skill through conversational discovery. Use when the user requests to "Create an Agent", "Optimize an Agent" or "Edit an Agent".

majiayu000/claude-skill-registry

Edit existing BMAD agents while maintaining compliance

majiayu000/claude-skill-registry

Edit existing BMAD agents while maintaining compliance

majiayu000/claude-skill-registry

Edit existing BMAD modules while maintaining coherence

majiayu000/claude-skill-registry

Edit existing BMAD modules while maintaining coherence

majiayu000/claude-skill-registry

Analyzes current state and user query to answer BMad questions or recommend the next workflow or agent. Use when user says what should I do next, what do I do now, or asks a question about BMad

majiayu000/claude-skill-registry

Build AI agents with Google ADK Python (Agent Development Kit). Use for multi-agent systems, workflow agents (sequential/parallel/loop), Vertex AI deployment, tool integration, human-in-the-loop.

majiayu000/claude-skill-registry

Build AI agents with Google ADK Python (Agent Development Kit). Use for multi-agent systems, workflow agents (sequential/parallel/loop), Vertex AI deployment, tool integration, human-in-the-loop.

majiayu000/claude-skill-registry

Portfolio allocation and rebalancing optimizer. Manages asset allocation across stocks/cash/bonds, performs periodic rebalancing, and ensures diversification according to market regime and risk tolerance.

majiayu000/claude-skill-registry

Create a hilarious and ultra-realistic video of an anthropomorphic animal acting like a human vlogger in a real-world setting.

majiayu000/claude-skill-registry

Speech-to-text transcription and translation via OpenAI Audio API -- models, response formats, timestamps, prompting, streaming, chunking, and diarization

majiayu000/claude-skill-registry

BlockRun works with Claude Code and Google Antigravity.

majiayu000/claude-skill-registry

This skill should be used when the user asks about libraries, frameworks, API references, or needs code examples. Activates for setup questions, code generation involving libraries, or mentions of specific frameworks like React, Vue, Next.js, Prisma, Supabase, etc.

majiayu000/claude-skill-registry

小省导购员数字人带货版即梦视频提示词生成系统,基于四大智能体协同(提示词生成师、质量管控师、知识库运维师、跨环节适配师),按照"主体+运动+场景+(镜头语言+光影+氛围)"公式输出中英文双版提示词,适配5s短视频。确保人物一致性、视觉连贯性、情绪连贯性,支持知识库智能复用和跨工具适配(Suno音乐、AI绘画),为数字人带货视频提供高质量提示词生成服务。

majiayu000/claude-skill-registry

CRITICAL: Use for MolyKit AI chat toolkit. Triggers on: BotClient, OpenAI, SSE streaming, AI chat, molykit, PlatformSend, spawn(), ThreadToken, cross-platform async, Chat widget, Messages, PromptInput, Avatar, LLM

majiayu000/claude-skill-registry

AI and machine learning workflow covering LLM application development, RAG implementation, agent architecture, ML pipelines, and AI-powered features.

majiayu000/claude-skill-registry

Analyze images/audio/video with Gemini API (better vision than Claude). Generate images (Imagen 4), videos (Veo 3). Use for vision analysis, transcription, OCR, design extraction, multimodal AI.

majiayu000/claude-skill-registry

Analyze images/audio/video with Gemini API (better vision than Claude). Generate images (Imagen 4), videos (Veo 3). Use for vision analysis, transcription, OCR, design extraction, multimodal AI.

majiayu000/claude-skill-registry

Conduct domain and industry research. Use when the user says "lets create a research report on [domain or industry]

majiayu000/claude-skill-registry

Skill for discovering and researching autonomous AI agents, tools, and ecosystems using the AgentFolio directory.

相关技能