API Gemini File
Téléchargez et gérez des fichiers destinés aux modèles Gemini via des scripts exécutables, prenant en charge les images, l'audio, les vidéos, les PDF et d'autres types de fichiers.
Quand utiliser cette compétence
Utilisez cette compétence lorsque vous avez besoin de :
- Télécharger des images pour une analyse multimodale
- Télécharger des vidéos pour le traitement de contenu
- Télécharger des PDF pour l'analyse de documents
- Télécharger de l'audio pour la transcription ou le traitement
- Pré-télécharger des fichiers pour des opérations par lots
- Vérifier l'état de traitement des fichiers
- Lister et gérer les fichiers téléchargés
- Utiliser des fichiers avec d'autres compétences Gemini (texte, image, etc.)
Scripts disponibles
scripts/upload.js
Objectif : Télécharger des fichiers vers l'API Gemini File
Quand l'utiliser :
- Pour télécharger tout fichier destiné au traitement Gemini
- Pour préparer des fichiers pour la génération multimodale
- Pour télécharger des documents à analyser
- Pour la préparation par lots de fichiers
Paramètres clés :
| Paramètre | Description | Exemple |
|---|---|---|
path | Chemin du fichier (obligatoire) | image.jpg |
--name, -n | Nom d'affichage | "mon-document" |
--wait, -w | Attendre le traitement | Drapeau |
Sortie : Nom du fichier, URI et informations de statut
Workflows
Workflow 1 : Upload de fichier basique
node scripts/upload.js image.jpg
- Idéal pour : Uploads rapides, fichiers simples
- Sortie : Nom du fichier et URI pour l'utilisation API
- État : PROCESSING ou ACTIVE
Workflow 2 : Upload avec nom personnalisé
node scripts/upload.js document.pdf --name "Rapport trimestriel Q4 2026"
- Idéal pour : Organiser les fichiers, suivre les uploads
- Utiliser quand : Le nom de fichier d'origine n'est pas assez descriptif
- Le nom d'affichage apparaît dans les listes de fichiers
Workflow 3 : Upload et attente du traitement
node scripts/upload.js video.mp4 --wait
- Idéal pour : Fichiers volumineux, vidéos, audio
- Attend que le fichier soit à l'état ACTIVE
- Utiliser quand : Vous devez utiliser le fichier immédiatement après l'upload
Workflow 4 : Upload d'image pour analyse
# 1. Télécharger l'image
node scripts/upload.js photo.png --name "photo-produit"
# 2. Utiliser avec gemini-text pour l'analyse
node skills/gemini-text/scripts/generate.js "Décris cette image" --image photo.png
- Idéal pour : Analyse d'image, légendage, questions-réponses visuelles
- Combine avec : gemini-text pour le traitement multimodal
Workflow 5 : Upload de PDF pour extraction de contenu
# 1. Télécharger le PDF
node scripts/upload.js article-recherche.pdf --name "Article-IA" --wait
# 2. Extraire le contenu avec gemini-text
node skills/gemini-text/scripts/generate.js "Extrais les résultats clés de ce document" --image article-recherche.pdf
- Idéal pour : Traitement de documents, extraction de contenu
- Combine avec : gemini-text pour l'analyse
Workflow 6 : Upload de plusieurs fichiers pour traitement par lots
# 1. Télécharger plusieurs fichiers
for file in *.jpg; do
node scripts/upload.js "$file"
done
# 2. Créer une tâche par lots en utilisant les fichiers téléchargés (compétence gemini-batch)
- Idéal pour : Préparer des fichiers pour un traitement par lots
- Combine avec : gemini-batch pour les opérations en masse
Workflow 7 : Upload d'audio pour transcription
# 1. Télécharger l'audio
node scripts/upload.js entretien.mp3 --name "entretien-001" --wait
# 2. Traiter avec gemini-text (si la transcription est disponible)
node skills/gemini-text/scripts/generate.js "Transcris et résume cet audio" --image entretien.mp3
- Idéal pour : Traitement audio, transcription, analyse de podcast
- Combine avec : gemini-text pour l'analyse audio
Workflow 8 : Upload de vidéo pour analyse de contenu
# 1. Télécharger la vidéo (peut prendre du temps)
node scripts/upload.js demo-produit.mp4 --name "video-demo" --wait
# 2. Analyser avec gemini-text
node skills/gemini-text/scripts/generate.js "Analyse cette vidéo de démonstration produit" --image demo-produit.mp4
- Idéal pour : Analyse vidéo, résumé de contenu
- Remarque : Les vidéos peuvent nécessiter un temps de traitement important
Référence des paramètres
Types de fichiers pris en charge
| Type | Extensions | Taille max | Temps de traitement |
|---|---|---|---|
| Images | jpg, jpeg, png, gif, webp | 20 Mo | Secondes |
| Audio | mp3, wav, aac, flac | 25 Mo | Secondes à minutes |
| Vidéo | mp4, mov, avi, webm | 2 Go | Minutes à heures |
| Documents | pdf, txt | 50 Mo | Secondes à minutes |
Types MIME
Le script détecte automatiquement en fonction de l'extension :
- Images : image/jpeg, image/png, image/gif, image/webp
- Audio : audio/mpeg, audio/wav
- Vidéo : video/mp4, video/quicktime, video/webm
- Documents : application/pdf, text/plain
États des fichiers
| État | Description | Prêt à l'emploi |
|---|---|---|
PROCESSING | Le fichier est en cours d'analyse | Non |
ACTIVE | Le fichier est prêt | Oui |
FAILED | Le traitement a échoué | Non |
Interprétation de la sortie
Réponse d'upload
Upload de photo.png...
Téléchargé : files/abc123...
URI : gs://generation-tmp/abc123...
État : PROCESSING
- Nom du fichier : Utilisé dans les appels API
- URI : Référence interne Google Cloud Storage
- État : PROCESSING = attendre, ACTIVE = prêt
Avec le flag --wait
Upload de video.mp4...
Téléchargé : files/xyz789...
URI : gs://generation-tmp/xyz789...
État : PROCESSING
Attente du traitement...
Toujours en cours de traitement...
Fichier prêt !
- Le script interroge jusqu'à ce que l'état soit ACTIVE
- Utilisez pour les fichiers volumineux nécessitant un traitement
- Peut prendre plusieurs minutes pour les vidéos
Utilisation des fichiers téléchargés
Une fois téléchargé, référencez le fichier par son nom :
# Avec gemini-text
node skills/gemini-text/scripts/generate.js "Analyse" --image <chemin-du-fichier-uploadé>
Problèmes courants
"google-genai not installed"
npm install @google/genai@latest dotenv@latest
"File not found"
- Vérifiez que le chemin du fichier est correct
- Utilisez des chemins absolus si les chemins relatifs échouent
- Vérifiez que l'extension correspond aux types pris en charge
"File too large"
- Vérifiez les limites de taille pour le type de fichier
- Compressez les images/vidéos si possible
- Divisez les fichiers volumineux en parties plus petites
"Unsupported file type"
- Vérifiez les extensions prises en charge
- Convertissez au format pris en charge si possible
- Images : jpg, png, gif, webp
- Vidéos : mp4, mov, avi, webm
"Processing failed"
- Vérifiez que le fichier n'est pas corrompu
- Essayez de ré-uploader le fichier
- Vérifiez que le format du fichier est valide
- Vérifiez les limites de quota API
"File still processing" (sans --wait)
- L'état du fichier est PROCESSING, pas ACTIVE
- Utilisez le flag
--waitou vérifiez le statut plus tard - Les fichiers volumineux (surtout les vidéos) prennent du temps
- Le traitement peut prendre de quelques minutes à plusieurs heures
Bonnes pratiques
Stratégie d'upload
- Utilisez
--waitpour les fichiers que vous utiliserez immédiatement - Ignorez
--waitpour les uploads par lots afin de gagner du temps - Utilisez des noms
--namedescriptifs pour l'organisation - Gardez une trace des noms de fichiers pour une utilisation ultérieure
Organisation des fichiers
- Utilisez des conventions de nommage cohérentes
- Incluez des dates ou des versions dans les noms
- Regroupez les fichiers connexes ensemble
- Documentez les noms de fichiers dans votre code
Conseils de performance
- Uploadez plusieurs fichiers en parallèle (processus séparés)
- Pré-uploader les fichiers pour les opérations par lots
- Vérifiez l'état du fichier avant de l'utiliser dans les appels API
- Supprimez les anciens fichiers pour gérer le stockage
Gestion des erreurs
- Vérifiez l'état de retour après l'upload
- Réessayez les uploads échoués
- Vérifiez l'intégrité du fichier avant l'upload
- Enregistrez les noms de fichiers pour les pistes d'audit
Intégration avec d'autres compétences
- gemini-text : Analyse multimodale, traitement de documents
- gemini-image : Générer des images basées sur une référence téléchargée
- gemini-batch : Utiliser les fichiers téléchargés dans des tâches par lots
- gemini-embeddings : Créer des embeddings à partir du contenu du fichier
Cycle de vie des fichiers
- Upload → PROCESSING → ACTIVE → Utilisation dans l'API
- Supprimez les anciens fichiers pour libérer du stockage
- Les fichiers peuvent expirer après une certaine période
- Téléchargez les fichiers importants pour sauvegarde
Compétences associées
- gemini-text : Analyser les fichiers téléchargés avec génération de texte
- gemini-image : Créer des images basées sur des références téléchargées
- gemini-batch : Utiliser les fichiers téléchargés dans le traitement par lots
- gemini-embeddings : Générer des embeddings à partir du contenu du fichier
Référence rapide
# Upload basique
node scripts/upload.js image.jpg
# Avec nom personnalisé
node scripts/upload.js document.pdf --name "Mon Document"
# Attendre le traitement
node scripts/upload.js video.mp4 --wait
# Plusieurs fichiers
for file in *.jpg; do node scripts/upload.js "$file"; done
API de gestion des fichiers
Bien que non présent dans les scripts, vous pouvez également gérer les fichiers via JavaScript :
import { GoogleGenAI } from "@google/genai";
const client = new GoogleGenAI({ apiKey: process.env.GEMINI_API_KEY });
// Lister tous les fichiers
for await (const file of client.files.list()) {
console.log(`${file.name} : ${file.displayName} (${file.state})`);
}
// Obtenir les informations d'un fichier
const file = await client.files.get({ name: "files/abc123..." });
console.log(`État : ${file.state}`);
// Supprimer un fichier
await client.files.delete({ name: "files/abc123..." });
Référence
- Obtenir une clé API : https://aistudio.google.com/apikey
- Documentation : https://ai.google.dev/gemini-api/docs/file-upload
- API Fichier : https://ai.google.dev/gemini-api/docs/files
- Formats pris en charge : Images, audio, vidéo, documents (voir tableau ci-dessus)