搜索
首页后端开发Python教程使用 Gemini Flash 构建视频洞察生成器

视频理解或视频洞察由于其多方面的优势而在各个行业和应用中至关重要。它们通过自动生成元数据、对内容进行分类并使视频更易于搜索来增强内容分析和管理。此外,视频洞察提供了推动决策、增强用户体验并提高不同行业运营效率的关键数据。

Google 的 Gemini 1.5 模型为该领域带来了重大进步。除了在语言处理方面令人印象深刻的改进之外,该模型还可以处理多达 100 万个标记的巨大输入上下文。为了进一步增强其功能,Gemini 1.5 被训练为多模式模型,可以本地处理文本、图像、音频和视频。各种输入类型和广泛的上下文大小的强大组合为有效处理长视频开辟了新的可能性。

在本文中,我们将深入探讨如何利用 Gemini 1.5 生成有价值的视频见解,改变我们跨不同领域理解和利用视频内容的方式。

入门

目录

  • 什么是 Gemini 1.5
  • 先决条件
  • 安装依赖项
  • 设置 Gemini API 密钥
  • 设置环境变量
  • 导入库
  • 初始化项目
  • 保存上传的文件
  • 从视频中生成见解
  • 将视频上传到文件 API
  • 获取文件
  • 响应生成
  • 删除文件
  • 组合各个阶段
  • 创建界面
  • 创建 Streamlit 应用程序

什么是双子座1.5

Google 的 Gemini 1.5 代表了人工智能性能和效率的重大飞跃。该模型建立在广泛的研究和工程创新的基础上,采用新的专家混合 (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)
1.5 Flash 型号是 Gemini 系列的最新成员,对于大容量、高频任务来说速度最快且最优化。它专为实现成本效益而设计,在摘要、聊天、图像和视频字幕以及从大量文档和表格中提取数据等应用中表现出色。凭借这些进步,Gemini 1.5 为 AI 模型的性能和多功能性树立了新标准。

先决条件

  • Python 3.9 (https://www.python.org/downloads)
  • 谷歌生成ai
  • 流线型

安装依赖项

  • 通过执行以下命令创建并激活虚拟环境。
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 AI Studio 由 Google 提供,提供了一个用户友好的、基于视觉的界面,用于与 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:导入 Google Generative AI 库以与 Gemini API 交互。
  • Streamlit as st:导入 Streamlit 用于创建 Web 应用程序。
  • 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. 将视频上传到Files API

Gemini API 直接接受视频文件格式。文件 API 支持最大 2GB 的文件,并允许每个项目最大存储 20GB。上传的文件保留 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 的方法并向其中添加以下代码。使用 Streamlit write() 方法代替 print() 来查看网站上的消息。

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)

创建 Streamlit 应用程序

要创建一个完整且功能齐全的 Streamlit 应用程序,允许用户使用 Gemini 1.5 Flash 模型上传视频并生成见解,请将所有组件组合到一个名为 app.py 的文件中。

这是最终代码:

# 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中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
如何解决Linux终端中查看Python版本时遇到的权限问题?如何解决Linux终端中查看Python版本时遇到的权限问题?Apr 01, 2025 pm 05:09 PM

Linux终端中查看Python版本时遇到权限问题的解决方法当你在Linux终端中尝试查看Python的版本时,输入python...

我如何使用美丽的汤来解析HTML?我如何使用美丽的汤来解析HTML?Mar 10, 2025 pm 06:54 PM

本文解释了如何使用美丽的汤库来解析html。 它详细介绍了常见方法,例如find(),find_all(),select()和get_text(),以用于数据提取,处理不同的HTML结构和错误以及替代方案(SEL)

如何使用TensorFlow或Pytorch进行深度学习?如何使用TensorFlow或Pytorch进行深度学习?Mar 10, 2025 pm 06:52 PM

本文比较了Tensorflow和Pytorch的深度学习。 它详细介绍了所涉及的步骤:数据准备,模型构建,培训,评估和部署。 框架之间的关键差异,特别是关于计算刻度的

如何使用Python创建命令行接口(CLI)?如何使用Python创建命令行接口(CLI)?Mar 10, 2025 pm 06:48 PM

本文指导Python开发人员构建命令行界面(CLIS)。 它使用Typer,Click和ArgParse等库详细介绍,强调输入/输出处理,并促进用户友好的设计模式,以提高CLI可用性。

哪些流行的Python库及其用途?哪些流行的Python库及其用途?Mar 21, 2025 pm 06:46 PM

本文讨论了诸如Numpy,Pandas,Matplotlib,Scikit-Learn,Tensorflow,Tensorflow,Django,Blask和请求等流行的Python库,并详细介绍了它们在科学计算,数据分析,可视化,机器学习,网络开发和H中的用途

在Python中如何高效地将一个DataFrame的整列复制到另一个结构不同的DataFrame中?在Python中如何高效地将一个DataFrame的整列复制到另一个结构不同的DataFrame中?Apr 01, 2025 pm 11:15 PM

在使用Python的pandas库时,如何在两个结构不同的DataFrame之间进行整列复制是一个常见的问题。假设我们有两个Dat...

解释Python中虚拟环境的目的。解释Python中虚拟环境的目的。Mar 19, 2025 pm 02:27 PM

文章讨论了虚拟环境在Python中的作用,重点是管理项目依赖性并避免冲突。它详细介绍了他们在改善项目管理和减少依赖问题方面的创建,激活和利益。

什么是正则表达式?什么是正则表达式?Mar 20, 2025 pm 06:25 PM

正则表达式是在编程中进行模式匹配和文本操作的强大工具,从而提高了各种应用程序的文本处理效率。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境

安全考试浏览器

安全考试浏览器

Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器