ホームページ バックエンド開発 Python チュートリアル Gemini Flash を使用したビデオ インサイト ジェネレーターの構築

Gemini Flash を使用したビデオ インサイト ジェネレーターの構築

Nov 26, 2024 pm 08:24 PM

ビデオの理解やビデオに関する洞察は、多面的な利点があるため、さまざまな業界やアプリケーションにわたって重要です。メタデータの自動生成、コンテンツの分類、ビデオの検索性の向上により、コンテンツの分析と管理が強化されます。さらに、ビデオの洞察は、意思決定を促進し、ユーザー エクスペリエンスを向上させ、さまざまな分野にわたる業務効率を向上させる重要なデータを提供します。

Google の Gemini 1.5 モデルは、この分野に大きな進歩をもたらしました。このモデルは、言語処理における目覚ましい改善に加えて、最大 100 万トークンという膨大な入力コンテキストを処理できます。その機能をさらに高めるために、Gemini 1.5 はマルチモーダル モデルとしてトレーニングされ、テキスト、画像、オーディオ、ビデオをネイティブに処理します。さまざまな入力タイプと広範なコンテキスト サイズの強力な組み合わせにより、長いビデオを効果的に処理するための新たな可能性が開かれます。

この記事では、Gemini 1.5 を活用して貴重なビデオに関する洞察を生成し、さまざまなドメインにわたるビデオ コンテンツの理解と利用方法を変革する方法について詳しく説明します。

はじめる

目次

  • Gemini 1.5 とは
  • 前提条件
  • 依存関係のインストール
  • Gemini API キーのセットアップ
  • 環境変数の設定
  • ライブラリのインポート
  • プロジェクトを初期化しています
  • アップロードされたファイルの保存
  • ビデオから洞察を生成する
  • ファイル API にビデオをアップロードします
  • ファイルを取得
  • 応答の生成
  • ファイルを削除
  • ステージの結合
  • インターフェースの作成
  • streamlit アプリの作成

ジェミニ1.5とは

Google の Gemini 1.5 は、AI のパフォーマンスと効率における大幅な進歩を表しています。広範な研究とエンジニアリングの革新に基づいて構築されたこのモデルは、新しい専門家混合 (MoE) アーキテクチャを特徴としており、トレーニングとサービスの効率の両方を向上させます。パブリック プレビューで利用可能な Gemini 1.5 Pro と 1.5 Flash は、Google AI Studio と Vertex AI を通じて 100 万トークンという驚異的なコンテキスト ウィンドウを提供します。

Building a video insights generator using Gemini Flash

Google Gemini のアップデート: Flash 1.5、Gemma 2、Project Astra (blog.google)
Gemini ファミリに新しく追加された 1.5 フラッシュ モデルは、大量かつ高頻度のタスク向けに最も高速かつ最適化されています。コスト効率を重視して設計されており、要約、チャット、画像やビデオのキャプション付け、広範なドキュメントや表からのデータ抽出などのアプリケーションに優れています。これらの進歩により、Gemini 1.5 は AI モデルのパフォーマンスと多用途性の新しい標準を設定します。

前提条件

  • Python 3.9 (https://www.python.org/downloads)
  • google-generativeai
  • ストリームライト

依存関係のインストール

  • 次のコマンドを実行して仮想環境を作成し、有効化します。
python -m venv venv
source venv/bin/activate #for ubuntu
venv/Scripts/activate #for windows
ログイン後にコピー
ログイン後にコピー
  • pip を使用して、google-generativeai、streamlit、python-dotenv ライブラリをインストールします。 Generativeai が動作するには Python 3.9 バージョンが必要であることに注意してください。
pip install google-generativeai streamlit python-dotenv
ログイン後にコピー
ログイン後にコピー

Gemini API キーのセットアップ

Gemini API にアクセスしてその機能を使い始めるには、Google AI Studio に登録して無料の Google API キーを取得できます。 Google が提供する Google AI Studio は、Gemini API と対話するためのユーザーフレンドリーなビジュアルベースのインターフェイスを提供します。 Google AI Studio 内では、直感的な UI を通じて生成モデルをシームレスに操作でき、必要に応じて、制御とカスタマイズを強化するための API トークンを生成できます。

次の手順に従って Gemini API キーを生成します。

  • プロセスを開始するには、リンク (https://aistudio.google.com/app) をクリックして Google AI Studio にリダイレクトするか、Google でクイック検索を実行して見つけます。
  • 利用規約に同意し、[続行] をクリックします。
  • サイドバーから「API キーを取得」リンクをクリックし、「新しいプロジェクトで API キーを作成」ボタンをクリックしてキーを生成します。
  • 生成された API キーをコピーします。

Building a video insights generator using Gemini Flash

環境変数の設定

まず、プロジェクト用に新しいフォルダーを作成します。プロジェクトの目的を反映した名前を選択してください。
新しいプロジェクト フォルダー内に、.env という名前のファイルを作成します。このファイルには、Gemini API キーを含む環境変数が保存されます。
.env ファイルを開き、次のコードを追加して Gemini API キーを指定します:

GOOGLE_API_KEY=AIzaSy......
ログイン後にコピー
ログイン後にコピー

ライブラリのインポート

プロジェクトを開始し、必要なツールがすべて揃っていることを確認するには、次のようにいくつかの主要なライブラリをインポートする必要があります。

import os
import time
import google.generativeai as genai
import streamlit as st
from dotenv import load_dotenv
ログイン後にコピー
ログイン後にコピー
  • google.generativeai as genai: Gemini API と対話するための Google Generative AI ライブラリをインポートします。
  • streamlit as st: Web アプリを作成するために Streamlit をインポートします。
  • from dotenv import load_dotenv: .env ファイルから環境変数をロードします。

プロジェクトの初期化

プロジェクトを設定するには、API キーを設定し、アップロードされたファイルの一時ファイル ストレージ用のディレクトリを作成する必要があります。

メディア フォルダーを定義し、必要な設定を初期化して Gemini API キーを構成します。次のコードをスクリプトに追加します:

python -m venv venv
source venv/bin/activate #for ubuntu
venv/Scripts/activate #for windows
ログイン後にコピー
ログイン後にコピー

アップロードしたファイルの保存

アップロードされたファイルをメディア フォルダーに保存し、そのパスを返すには、save_uploaded_file というメソッドを定義し、次のコードをそれに追加します。

pip install google-generativeai streamlit python-dotenv
ログイン後にコピー
ログイン後にコピー

ビデオから洞察を生成する

動画から分析情報を生成するには、アップロード、処理、応答の生成など、いくつかの重要な段階が必要です。

1. ファイル API にビデオをアップロードする

Gemini API はビデオ ファイル形式を直接受け入れます。ファイル API は最大 2 GB のサイズのファイルをサポートし、プロジェクトごとに最大 20 GB のストレージを許可します。アップロードされたファイルは 2 日間利用可能であり、API からダウンロードすることはできません。

GOOGLE_API_KEY=AIzaSy......
ログイン後にコピー
ログイン後にコピー

2. ファイルの取得

ファイルをアップロードした後、files.get メソッドを使用して、API がファイルを正常に受信したことを確認できます。このメソッドを使用すると、API キーにリンクされたクラウド プロジェクトに関連付けられているファイル API にアップロードされたファイルを表示できます。ファイル名と URI のみが一意の識別子です。

import os
import time
import google.generativeai as genai
import streamlit as st
from dotenv import load_dotenv
ログイン後にコピー
ログイン後にコピー

3. 応答の生成

ビデオがアップロードされた後、ファイル API URI を参照する GenerateContent リクエストを行うことができます。

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)
ログイン後にコピー

4. ファイルの削除

ファイルは 2 日後に自動的に削除されます。または、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
ログイン後にコピー

5. ステージを組み合わせる

get_insights というメソッドを作成し、次のコードをそれに追加します。 print() の代わりに、streamlit write() メソッドを使用して、Web サイト上のメッセージを確認します。

video_file = genai.upload_file(path=video_path)
ログイン後にコピー

インターフェースの作成

Streamlit アプリ内でビデオをアップロードして分析情報を生成するプロセスを合理化するには、app という名前のメソッドを作成します。このメソッドは、アップロード ボタンを提供し、アップロードされたビデオを表示し、そこから分析情報を生成します。

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)
ログイン後にコピー

ストリームリットアプリの作成

ユーザーがビデオをアップロードし、Gemini 1.5 Flash モデルを使用して分析情報を生成できる、完全で機能的な Streamlit アプリケーションを作成するには、すべてのコンポーネントを app.py という名前の 1 つのファイルに結合します。

最終的なコードは次のとおりです:

# 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)
ログイン後にコピー

アプリケーションの実行

次のコードを実行してアプリケーションを実行します。

genai.delete_file(video_file.name)
ログイン後にコピー

コンソールに表示されるリンクを開いて出力を確認できます。

Building a video insights generator using Gemini Flash

この記事をお読みいただきありがとうございます!!

この記事が気に入ったら、ハートボタン ♥ をクリックして共有し、他の人が記事を見つけられるようにしてください。

このチュートリアルの完全なソース コードはここにあります

GitHub - codemaker2015/video-insights-generator

以上がGemini Flash を使用したビデオ インサイト ジェネレーターの構築の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Python:ゲーム、GUIなど Python:ゲーム、GUIなど Apr 13, 2025 am 12:14 AM

PythonはゲームとGUI開発に優れています。 1)ゲーム開発は、2Dゲームの作成に適した図面、オーディオ、その他の機能を提供し、Pygameを使用します。 2)GUI開発は、TKINTERまたはPYQTを選択できます。 TKINTERはシンプルで使いやすく、PYQTは豊富な機能を備えており、専門能力開発に適しています。

Python vs. C:曲線と使いやすさの学習 Python vs. C:曲線と使いやすさの学習 Apr 19, 2025 am 12:20 AM

Pythonは学習と使用が簡単ですが、Cはより強力ですが複雑です。 1。Python構文は簡潔で初心者に適しています。動的なタイピングと自動メモリ管理により、使いやすくなりますが、ランタイムエラーを引き起こす可能性があります。 2.Cは、高性能アプリケーションに適した低レベルの制御と高度な機能を提供しますが、学習しきい値が高く、手動メモリとタイプの安全管理が必要です。

Pythonと時間:勉強時間を最大限に活用する Pythonと時間:勉強時間を最大限に活用する Apr 14, 2025 am 12:02 AM

限られた時間でPythonの学習効率を最大化するには、PythonのDateTime、時間、およびスケジュールモジュールを使用できます。 1. DateTimeモジュールは、学習時間を記録および計画するために使用されます。 2。時間モジュールは、勉強と休息の時間を設定するのに役立ちます。 3.スケジュールモジュールは、毎週の学習タスクを自動的に配置します。

Python vs. C:パフォーマンスと効率の探索 Python vs. C:パフォーマンスと効率の探索 Apr 18, 2025 am 12:20 AM

Pythonは開発効率でCよりも優れていますが、Cは実行パフォーマンスが高くなっています。 1。Pythonの簡潔な構文とリッチライブラリは、開発効率を向上させます。 2.Cのコンピレーションタイプの特性とハードウェア制御により、実行パフォーマンスが向上します。選択を行うときは、プロジェクトのニーズに基づいて開発速度と実行効率を比較検討する必要があります。

Python Standard Libraryの一部はどれですか:リストまたは配列はどれですか? Python Standard Libraryの一部はどれですか:リストまたは配列はどれですか? Apr 27, 2025 am 12:03 AM

PythonListSarePartOfThestAndardarenot.liestareBuilting-in、versatile、forStoringCollectionsのpythonlistarepart。

Python:自動化、スクリプト、およびタスク管理 Python:自動化、スクリプト、およびタスク管理 Apr 16, 2025 am 12:14 AM

Pythonは、自動化、スクリプト、およびタスク管理に優れています。 1)自動化:OSやShutilなどの標準ライブラリを介してファイルバックアップが実現されます。 2)スクリプトの書き込み:Psutilライブラリを使用してシステムリソースを監視します。 3)タスク管理:スケジュールライブラリを使用してタスクをスケジュールします。 Pythonの使いやすさと豊富なライブラリサポートにより、これらの分野で優先ツールになります。

Pythonの学習:2時間の毎日の研究で十分ですか? Pythonの学習:2時間の毎日の研究で十分ですか? Apr 18, 2025 am 12:22 AM

Pythonを1日2時間学ぶだけで十分ですか?それはあなたの目標と学習方法に依存します。 1)明確な学習計画を策定し、2)適切な学習リソースと方法を選択します。3)実践的な実践とレビューとレビューと統合を練習および統合し、統合すると、この期間中にPythonの基本的な知識と高度な機能を徐々に習得できます。

Python vs. C:重要な違​​いを理解します Python vs. C:重要な違​​いを理解します Apr 21, 2025 am 12:18 AM

PythonとCにはそれぞれ独自の利点があり、選択はプロジェクトの要件に基づいている必要があります。 1)Pythonは、簡潔な構文と動的タイピングのため、迅速な開発とデータ処理に適しています。 2)Cは、静的なタイピングと手動メモリ管理により、高性能およびシステムプログラミングに適しています。

See all articles