本教程演示了如何构建一个对话式应用,让用户能够使用自然语言总结 YouTube 视频并讨论其内容。
前提条件
在开始工作之前,您应先设置以下前提条件:
实现步骤
设置依赖项后,您就可以构建项目了。
1. 设置项目
创建一个目录结构和一个文件来存放源代码。
$ mkdir -p summarize-a-video/src && \ cd summarize-a-video && \ touch src/index.ts
初始化一个新的 TypeScript 项目。
$ npm init -y
安装以下 Genkit 依赖项,以便在项目中使用 Genkit:
$ npm i genkit @genkit-ai/googleai
genkit
提供 Genkit 核心功能。@genkit-ai/googleai
提供对 Google AI Gemini 模型的访问权限。
获取和配置模型 API 密钥
如需使用本教程中使用的 Gemini API,您必须先配置 API 密钥。如果您还没有 API 密钥,请在 Google AI Studio 中创建密钥。
Gemini API 提供较大的免费使用额度,开通时无需信用卡。
创建 API 密钥后,使用以下命令将
GEMINI_API_KEY
环境变量设置为您的密钥:$ export GEMINI_API_KEY=<your API key>
2. 导入所需的依赖项
在您创建的 index.ts
文件中,添加以下代码行以导入此项目所需的依赖项:
import { gemini, googleAI } from '@genkit-ai/googleai';
import { genkit } from 'genkit';
- 第一行从
@genkit-ai/googleai
软件包导入googleAI
插件和gemini
模型加载器函数,以便访问 Google 的 Gemini 模型。
3. 配置 Genkit 和默认模型
添加以下代码行以配置 Genkit 并将 Gemini 2.0 Flash 设置为默认模型。
const ai = genkit({
plugins: [googleAI()],
model: gemini('gemini-2.0-flash'),
});
然后,您可以为代码和错误处理添加框架。
(async () => {
try {
// Step 1: get command line arguments
// Step 2: construct prompt
// Step 3: process video
} catch (error) {
console.error("Error processing video:", error);
}
})(); // <-- don't forget the trailing parentheses to call the function!
4. 解析命令行并获取视频网址
添加代码以读取从命令行传入的视频的网址。
// Step 1: get command line arguments
const videoURL = process.argv[2];
if (!videoURL) {
console.error("Please provide a video URL as a command line argument.");
process.exit(1);
}
5. 设置提示
添加代码以设置提示:
// Step 2: construct prompt
const prompt = process.argv[3] || "Please summarize the following video:";
- 如果用户未从命令行传入自己的提示,此
const
声明会定义一个默认提示。
6. 生成响应
添加以下代码以将多模态提示传递给模型:
// Step 3: process video
const { text } = await ai.generate({
prompt: [
{ text: prompt },
{ media: { url: videoURL, contentType: "video/mp4" } }
],
});
console.log(text);
此代码段会调用 ai.generate
方法,以向模型发送多模态提示。提示由两部分组成:
{ text: prompt }
:这是您之前定义的文本提示。{ media: { url: videoURL, contentType: "video/mp4" } }
:这是您作为命令行参数提供的视频的网址。contentType
设置为video/mp4
,表示网址指向 MP4 视频文件。
ai.generate
方法会返回一个包含生成的文本的对象,然后将该对象记录到控制台。
7. 运行应用
如需运行应用,请在项目的根文件夹中打开终端,然后运行以下命令:
npx tsx src/index.ts https://www.youtube.com/watch\?v\=YUgXJkNqH9Q
片刻之后,系统会显示您提供的视频的摘要。
您还可以传入其他问题。例如:
npx tsx src/index.ts https://www.youtube.com/watch\?v\=YUgXJkNqH9Q "Transcribe this video"