Rumah >pembangunan bahagian belakang >Tutorial Python >Membina penjana cerapan video menggunakan Gemini Flash

Membina penjana cerapan video menggunakan Gemini Flash

DDD
DDDasal
2024-11-26 20:24:13758semak imbas

Pemahaman video atau cerapan video adalah penting merentasi pelbagai industri dan aplikasi kerana faedahnya yang pelbagai rupa. Mereka meningkatkan analisis dan pengurusan kandungan dengan menjana metadata secara automatik, mengkategorikan kandungan dan menjadikan video lebih mudah dicari. Selain itu, cerapan video menyediakan data kritikal yang mendorong pembuatan keputusan, meningkatkan pengalaman pengguna dan meningkatkan kecekapan operasi merentas pelbagai sektor.

Model Gemini 1.5 Google membawa kemajuan yang ketara kepada bidang ini. Di sebalik peningkatan yang mengagumkan dalam pemprosesan bahasa, model ini boleh mengendalikan konteks input yang besar sehingga 1 juta token. Untuk melanjutkan keupayaannya, Gemini 1.5 dilatih sebagai model multimodal, memproses teks, imej, audio dan video secara asli. Gabungan hebat jenis input yang pelbagai dan saiz konteks yang luas ini membuka kemungkinan baharu untuk memproses video panjang dengan berkesan.

Dalam artikel ini, kami akan menyelami cara Gemini 1.5 boleh dimanfaatkan untuk menjana cerapan video yang berharga, mengubah cara kami memahami dan menggunakan kandungan video merentas domain yang berbeza.

Bermula

Jadual kandungan

  • Apakah itu Gemini 1.5
  • Prasyarat
  • Memasang kebergantungan
  • Menyediakan kunci API Gemini
  • Menyediakan pembolehubah persekitaran
  • Mengimport perpustakaan
  • Memulakan projek
  • Menyimpan fail yang dimuat naik
  • Menjana cerapan daripada video
  • Muat naik video ke API Fail
  • Dapatkan Fail
  • Penjanaan Respons
  • Padam Fail
  • Menggabungkan peringkat
  • Mencipta antara muka
  • Membuat apl strim

Apakah Gemini 1.5

Gemini 1.5 Google mewakili lonjakan ketara dalam prestasi dan kecekapan AI. Membina penyelidikan dan inovasi kejuruteraan yang meluas, model ini menampilkan seni bina Campuran Pakar (MoE) baharu, meningkatkan kecekapan latihan dan perkhidmatan. Tersedia dalam pratonton awam, Gemini 1.5 Pro dan 1.5 Flash menawarkan tetingkap konteks token 1 juta yang mengagumkan melalui Google AI Studio dan Vertex AI.

Building a video insights generator using Gemini Flash

Kemas kini Google Gemini: Flash 1.5, Gemma 2 dan Project Astra (blog.google)
Model 1.5 Flash, tambahan terbaharu kepada keluarga Gemini, adalah yang paling pantas dan paling dioptimumkan untuk tugasan volum tinggi, frekuensi tinggi. Ia direka bentuk untuk kecekapan kos dan cemerlang dalam aplikasi seperti ringkasan, sembang, kapsyen imej dan video serta mengekstrak data daripada dokumen dan jadual yang luas. Dengan kemajuan ini, Gemini 1.5 menetapkan standard baharu untuk prestasi dan serba boleh dalam model AI.

Prasyarat

  • Python 3.9 (https://www.python.org/downloads)
  • google-generativeai
  • meniruskan

Memasang kebergantungan

  • Buat dan aktifkan persekitaran maya dengan melaksanakan arahan berikut.
python -m venv venv
source venv/bin/activate #for ubuntu
venv/Scripts/activate #for windows
  • Pasang pustaka google-generativeai, streamlit, python-dotenv menggunakan pip. Ambil perhatian bahawa generativeai memerlukan versi python 3.9 untuk berfungsi.
pip install google-generativeai streamlit python-dotenv

Menyediakan kunci API Gemini

Untuk mengakses API Gemini dan mula menggunakan fungsinya, anda boleh memperoleh Kunci API Google percuma dengan mendaftar dengan Google AI Studio. Google AI Studio, yang ditawarkan oleh Google, menyediakan antara muka berasaskan visual yang mesra pengguna untuk berinteraksi dengan API Gemini. Dalam Google AI Studio, anda boleh berinteraksi dengan Model Generatif dengan lancar melalui UI intuitifnya, dan jika mahu, jana Token API untuk kawalan dan penyesuaian yang dipertingkatkan.

Ikuti langkah untuk menjana kunci API Gemini:

  • Untuk memulakan proses, anda boleh sama ada mengklik pautan (https://aistudio.google.com/app) untuk diubah hala ke Google AI Studio atau melakukan carian pantas di Google untuk mencarinya.
  • Terima syarat perkhidmatan dan klik pada teruskan.
  • Klik pada Dapatkan pautan kunci API dari bar sisi dan Cipta kunci API dalam butang projek baharu untuk menjana kunci.
  • Salin kunci API yang dijana.

Building a video insights generator using Gemini Flash

Menyediakan pembolehubah persekitaran

Mulakan dengan mencipta folder baharu untuk projek anda. Pilih nama yang menggambarkan tujuan projek anda.
Di dalam folder projek baharu anda, cipta fail bernama .env. Fail ini akan menyimpan pembolehubah persekitaran anda, termasuk kunci API Gemini anda.
Buka fail .env dan tambah kod berikut untuk menentukan kunci API Gemini anda:

GOOGLE_API_KEY=AIzaSy......

Mengimport perpustakaan

Untuk memulakan projek anda dan memastikan anda mempunyai semua alatan yang diperlukan, anda perlu mengimport beberapa perpustakaan utama seperti berikut.

import os
import time
import google.generativeai as genai
import streamlit as st
from dotenv import load_dotenv
  • google.generativeai sebagai genai: Mengimport pustaka AI Generatif Google untuk berinteraksi dengan API Gemini.
  • streamlit as st: Import Streamlit untuk mencipta apl web.
  • daripada import dotenv load_dotenv: Memuatkan pembolehubah persekitaran daripada fail .env.

Memulakan projek

Untuk menyediakan projek anda, anda perlu mengkonfigurasi kunci API dan mencipta direktori untuk storan fail sementara untuk fail yang dimuat naik.

Tentukan folder media dan konfigurasikan kunci API Gemini dengan memulakan tetapan yang diperlukan. Tambahkan kod berikut pada skrip anda:

python -m venv venv
source venv/bin/activate #for ubuntu
venv/Scripts/activate #for windows

Menyimpan fail yang dimuat naik

Untuk menyimpan fail yang dimuat naik dalam folder media dan mengembalikan laluannya, tentukan kaedah yang dipanggil save_uploaded_file dan tambahkan kod berikut padanya.

pip install google-generativeai streamlit python-dotenv

Menjana pandangan daripada video

Menjana cerapan daripada video melibatkan beberapa peringkat penting, termasuk memuat naik, pemprosesan dan penjanaan respons.

1. Muat naik video ke API Fail

API Gemini menerima format fail video secara langsung. API Fail menyokong fail bersaiz sehingga 2GB dan membenarkan penyimpanan sehingga 20GB bagi setiap projek. Fail yang dimuat naik kekal tersedia selama 2 hari dan tidak boleh dimuat turun daripada API.

GOOGLE_API_KEY=AIzaSy......

2. Dapatkan Fail

Selepas memuat naik fail, anda boleh mengesahkan bahawa API telah berjaya menerimanya dengan menggunakan kaedah files.get. Kaedah ini membolehkan anda melihat fail yang dimuat naik ke API Fail yang dikaitkan dengan projek Awan yang dipautkan kepada kunci API anda. Hanya nama fail dan URI ialah pengecam unik.

import os
import time
import google.generativeai as genai
import streamlit as st
from dotenv import load_dotenv

3. Penjanaan Tindak Balas

Selepas video dimuat naik, anda boleh membuat permintaan GenerateContent yang merujuk URI API Fail.

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. Padam Fail

Fail dipadamkan secara automatik selepas 2 hari atau anda boleh memadamkannya secara manual menggunakan 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. Menggabungkan peringkat

Buat kaedah yang dipanggil get_insights dan tambahkan kod berikut padanya. Sebaliknya print(), gunakan kaedah streamlit write() untuk melihat mesej di tapak web.

video_file = genai.upload_file(path=video_path)

Mencipta antara muka

Untuk menyelaraskan proses memuat naik video dan menjana cerapan dalam apl Streamlit, anda boleh membuat kaedah bernama apl. Kaedah ini akan menyediakan butang muat naik, memaparkan video yang dimuat naik dan menjana cerapan daripadanya.

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)

Mencipta apl strim

Untuk mencipta aplikasi Streamlit yang lengkap dan berfungsi yang membolehkan pengguna memuat naik video dan menjana cerapan menggunakan model Gemini 1.5 Flash, gabungkan semua komponen ke dalam satu fail bernama app.py.

Berikut ialah kod akhir:

# 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)

Menjalankan aplikasi

Laksanakan kod berikut untuk menjalankan aplikasi.

genai.delete_file(video_file.name)

Anda boleh membuka pautan yang disediakan dalam konsol untuk melihat output.

Building a video insights generator using Gemini Flash

Terima kasih kerana membaca artikel ini !!

Jika anda menyukai artikel ini, sila klik pada butang hati ♥ dan kongsi untuk membantu orang lain menemuinya!

Kod sumber penuh untuk tutorial ini boleh didapati di sini,

GitHub - codemaker2015/video-insights-generator

Atas ialah kandungan terperinci Membina penjana cerapan video menggunakan Gemini Flash. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn