Communitygithub.com

majiayu000/claude-skill-registry - Gemini 文件 API 技能

通过脚本使用 Google Gemini File API 上传和管理文件。支持图片、音频、视频、PDF 等文件类型,并提供文件上传、状态检查和文件管理功能。

claude-skill-registry - Gemini 文件 API 技能 是什么?

该技能通过可执行脚本与 Google Gemini File API 集成,主要面向使用 Gemini 模型进行多模态分析和批量处理的开发者。支持上传图片、音频、视频、PDF 和文本文件,并提供文件状态监控(PROCESSING/ACTIVE/FAILED)、自定义显示名称、批量上传等操作。核心脚本 `scripts/upload.py` 包含 --wait 标志,可等待文件处理完成后再进行后续操作(适用于大中型文件)。技能内置工作流示例,涵盖图片分析、PDF 内容提取、音频转录、视频内容分析等场景,并与 gemini-text、gemini-image、gemini-batch、gemini-embeddings 等技能协同工作。同时提供参数参考(如 MIME 类型、文件大小限制、处理时间)和最佳实践(如并行上传、文件生命周期管理)。支持 Cursor、Codex 等 AI 代理平台,可通过 CLI 或 Python 脚本调用。

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

在你喜欢的 AI 中提问

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

文档

Gemini 文件 API

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

何时使用此技能

在以下场景中使用此技能:

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

可用脚本

scripts/upload.py

用途:上传文件至 Gemini File API

使用场景:

  • 上传任意文件供 Gemini 处理
  • 准备多模态生成所需的文件
  • 上传文档进行分析
  • 批量文件准备

关键参数:

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

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

工作流

工作流 1:基本文件上传

python scripts/upload.py image.jpg
  • 最佳场景:快速上传、简单文件
  • 输出:文件名和 URI,供 API 使用
  • 状态: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 "product-shot"

# 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-Research-Paper" --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 "interview-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 "demo-video" --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 <uploaded-file-path>

常见问题

“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 管理文件:

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"状态: {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

Upload and manage files using Google Gemini File API via scripts/. Use for uploading images, audio, video, PDFs, and other files for use with Gemini models. Supports file upload, status checking, and file management. Triggers on "upload file", "file API", "upload image", "upload PDF", "upload video", "file management".

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

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

相关技能