Maison >développement back-end >Tutoriel Python >Créer un générateur d'informations vidéo à l'aide de Gemini Flash
La compréhension vidéo ou les informations vidéo sont cruciales dans divers secteurs et applications en raison de leurs avantages multiformes. Ils améliorent l'analyse et la gestion du contenu en générant automatiquement des métadonnées, en catégorisant le contenu et en rendant les vidéos plus consultables. De plus, les informations vidéo fournissent des données critiques qui orientent la prise de décision, améliorent l'expérience des utilisateurs et améliorent l'efficacité opérationnelle dans divers secteurs.
Le modèle Gemini 1.5 de Google apporte des avancées significatives dans ce domaine. Au-delà de ses améliorations impressionnantes en matière de traitement du langage, ce modèle peut gérer un énorme contexte d'entrée allant jusqu'à 1 million de jetons. Pour étendre ses capacités, Gemini 1.5 est formé comme un modèle multimodal, traitant nativement le texte, les images, l'audio et la vidéo. Cette puissante combinaison de types d'entrée variés et d'une taille de contexte étendue ouvre de nouvelles possibilités pour traiter efficacement de longues vidéos.
Dans cet article, nous verrons comment Gemini 1.5 peut être exploité pour générer des informations vidéo précieuses, transformant ainsi la façon dont nous comprenons et utilisons le contenu vidéo dans différents domaines.
Gemini 1.5 de Google représente un bond en avant significatif en termes de performances et d'efficacité de l'IA. S'appuyant sur de nombreuses innovations en matière de recherche et d'ingénierie, ce modèle présente une nouvelle architecture de mélange d'experts (MoE), améliorant à la fois la formation et l'efficacité du service. Disponibles en version préliminaire publique, Gemini 1.5 Pro et 1.5 Flash offrent une impressionnante fenêtre contextuelle d'un million de jetons via Google AI Studio et Vertex AI.
Mises à jour Google Gemini : Flash 1.5, Gemma 2 et Project Astra (blog.google)
Le modèle 1.5 Flash, le dernier-né de la famille Gemini, est le plus rapide et le plus optimisé pour les tâches à volume élevé et à haute fréquence. Il est conçu pour être rentable et excelle dans des applications telles que le résumé, le chat, le sous-titrage d'images et de vidéos, ainsi que l'extraction de données à partir de documents et de tableaux volumineux. Grâce à ces avancées, Gemini 1.5 établit une nouvelle norme en matière de performances et de polyvalence dans les modèles d'IA.
python -m venv venv source venv/bin/activate #for ubuntu venv/Scripts/activate #for windows
pip install google-generativeai streamlit python-dotenv
Pour accéder à l'API Gemini et commencer à utiliser ses fonctionnalités, vous pouvez acquérir une clé API Google gratuite en vous inscrivant auprès de Google AI Studio. Google AI Studio, proposé par Google, fournit une interface visuelle conviviale pour interagir avec l'API Gemini. Dans Google AI Studio, vous pouvez interagir en toute transparence avec les modèles génératifs via son interface utilisateur intuitive et, si vous le souhaitez, générer un jeton API pour un contrôle et une personnalisation améliorés.
Suivez les étapes pour générer une clé API Gemini :
Commencez par créer un nouveau dossier pour votre projet. Choisissez un nom qui reflète le but de votre projet.
Dans votre nouveau dossier de projet, créez un fichier nommé .env. Ce fichier stockera vos variables d'environnement, y compris votre clé API Gemini.
Ouvrez le fichier .env et ajoutez le code suivant pour spécifier votre clé API Gemini :
GOOGLE_API_KEY=AIzaSy......
Pour démarrer votre projet et vous assurer de disposer de tous les outils nécessaires, vous devez importer plusieurs bibliothèques de clés comme suit.
import os import time import google.generativeai as genai import streamlit as st from dotenv import load_dotenv
Pour configurer votre projet, vous devez configurer la clé API et créer un répertoire pour le stockage temporaire des fichiers téléchargés.
Définissez le dossier multimédia et configurez la clé API Gemini en initialisant les paramètres nécessaires. Ajoutez le code suivant à votre script :
python -m venv venv source venv/bin/activate #for ubuntu venv/Scripts/activate #for windows
Pour stocker les fichiers téléchargés dans le dossier multimédia et renvoyer leurs chemins, définissez une méthode appelée save_uploaded_file et ajoutez-y le code suivant.
pip install google-generativeai streamlit python-dotenv
La génération d'informations à partir de vidéos implique plusieurs étapes cruciales, notamment le téléchargement, le traitement et la génération de réponses.
L'API Gemini accepte directement les formats de fichiers vidéo. L'API File prend en charge des fichiers d'une taille maximale de 2 Go et permet un stockage jusqu'à 20 Go par projet. Les fichiers téléchargés restent disponibles pendant 2 jours et ne peuvent pas être téléchargés depuis l'API.
GOOGLE_API_KEY=AIzaSy......
Après avoir téléchargé un fichier, vous pouvez vérifier que l'API l'a bien reçu en utilisant la méthode files.get. Cette méthode vous permet de visualiser les fichiers téléchargés sur l'API File qui sont associés au projet Cloud lié à votre clé API. Seuls le nom du fichier et l'URI sont des identifiants uniques.
import os import time import google.generativeai as genai import streamlit as st from dotenv import load_dotenv
Une fois la vidéo téléchargée, vous pouvez effectuer des requêtes GenerateContent faisant référence à l'URI de l'API de fichier.
MEDIA_FOLDER = 'medias' def __init__(): # Create the media directory if it doesn't exist if not os.path.exists(MEDIA_FOLDER): os.makedirs(MEDIA_FOLDER) # Load environment variables from the .env file load_dotenv() # Retrieve the API key from the environment variables api_key = os.getenv("GEMINI_API_KEY") # Configure the Gemini API with your API key genai.configure(api_key=api_key)
Les fichiers sont automatiquement supprimés après 2 jours ou vous pouvez les supprimer manuellement à l'aide de files.delete().
def save_uploaded_file(uploaded_file): """Save the uploaded file to the media folder and return the file path.""" file_path = os.path.join(MEDIA_FOLDER, uploaded_file.name) with open(file_path, 'wb') as f: f.write(uploaded_file.read()) return file_path
Créez une méthode appelée get_insights et ajoutez-y le code suivant. Au lieu de print(), utilisez la méthode streamlit write() pour voir les messages sur le site Web.
video_file = genai.upload_file(path=video_path)
Pour rationaliser le processus de téléchargement de vidéos et de génération d'informations dans une application Streamlit, vous pouvez créer une méthode nommée app. Cette méthode fournira un bouton de téléchargement, affichera la vidéo téléchargée et générera des informations à partir de celle-ci.
import time while video_file.state.name == "PROCESSING": print('Waiting for video to be processed.') time.sleep(10) video_file = genai.get_file(video_file.name) if video_file.state.name == "FAILED": raise ValueError(video_file.state.name)
Pour créer une application Streamlit complète et fonctionnelle qui permet aux utilisateurs de télécharger des vidéos et de générer des informations à l'aide du modèle Flash Gemini 1.5, combinez tous les composants dans un seul fichier nommé app.py.
Voici le code final :
# Create the prompt. prompt = "Describe the video. Provides the insights from the video." # Set the model to Gemini 1.5 Flash. model = genai.GenerativeModel(model_name="models/gemini-1.5-flash") # Make the LLM request. print("Making LLM inference request...") response = model.generate_content([prompt, video_file], request_options={"timeout": 600}) print(response.text)
Exécutez le code suivant pour exécuter l'application.
genai.delete_file(video_file.name)
Vous pouvez ouvrir le lien fourni dans la console pour voir le résultat.
Merci d'avoir lu cet article !!
Si vous avez apprécié cet article, veuillez cliquer sur le bouton cœur ♥ et partager pour aider les autres à le trouver !
Le code source complet de ce tutoriel peut être trouvé ici,
GitHub - codemaker2015/video-insights-generator
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!