【GenAI】使用GenAI堆栈构建视频分析和转录字幕聊天机器人
@TOC
推荐超级课程:
视频中充满了有价值的信息,但通常需要工具来帮助查找。从寻求分析讲座和教程的教育机构到希望了解视频评论中客户情绪的企业,转录字幕和理解视频内容对于明智的决策和创新至关重要。最近,人工智能/机器学习技术的进步使这项任务比以往任何时候都更加易于实现。
借助Docker开发GenAI技术为从视频内容中解锁见解打开了无限的可能性。通过利用转录字幕、嵌入以及大型语言模型(LLMs),组织可以深入了解并利用视频等多样和原始数据做出明智的决策。
在本文中,我们将深入探讨一个利用GenAI堆栈 的视频转录字幕和聊天项目,以及由Docker提供的无缝集成,以简化视频内容的处理和理解。
高层架构
该应用程序的架构旨在促进视频内容的高效处理和分析,利用尖端人工智能技术和容器化实现可扩展性和灵活性。图1显示了一个架构概述,该架构使用Pinecone 存储和检索视频转录字幕的嵌入。
图1: 概要图表明用于处理和与视频数据交互的双组件系统。
该应用程序的高级服务架构包括以下内容:
- yt-whisper:一个由Docker Compose 运行的本地服务,与远程OpenAI和Pinecone服务进行交互。Whisper 是由OpenAI开发的自动语音识别(ASR)系统,代表了在基于AI的语音处理方面的一个重大里程碑。Whisper在广泛数据集中训练,包括来自网络的680,000小时的多语言和多任务监督数据,表现出英语语音识别的出色鲁棒性和准确性。
- Dockerbot:由Docker Compose运行的本地服务,与远程OpenAI和Pinecone服务进行交互。该服务获取用户的问题,计算相应的嵌入,然后在视频知识库中找到最相关的转录字幕内容。然后,转录字幕内容被呈现给一个LLM,该LLM接收转录字幕内容和问题,并尝试基于这些信息提供答案。
- OpenAI: OpenAI API提供LLM服务,以其尖端的人工智能和机器学习技术而闻名。在本应用中,OpenAI的技术用于从音频生成转录字幕(使用Whisper模型)和为文本数据创建嵌入,同时根据用户查询(使用GPT和聊天完成)生成响应。
- Pinecone: 一个为相似性搜索优化的向量数据库服务,用于构建和部署大规模向量搜索应用。在本应用中,Pinecone被用于存储和检索视频转录字幕的嵌入,从而实现基于用户查询的应用内高效和相关搜索功能。
入门指南
要开始使用,请完成以下步骤:
- 创建一个OpenAI API密钥 。
- 确保您拥有一个Pinecone API密钥 。
- 确保您已安装最新版本的Docker Desktop 。
该应用程序是一个能够回答来自视频的问题的聊天机器人。此外,它提供的时间戳可以帮助您找到用于回答问题的源内容。
克隆存储库
接下来是克隆存储库:
git clone https://github.com/dockersamples/docker-genai.git
该项目包含以下目录和文件:
├── docker-genai/
│ ├── docker-bot/
│ ├── yt-whisper/
│ ├── .env.example
│ ├── .gitignore
│ ├── LICENSE
│ ├── README.md
│ └── docker-compose.yaml
指定您的API密钥
在 /docker-genai
目录中,创建一个名为 .env
的文本文件,并在其中指定您的API密钥。以下代码段显示了 .env.example
文件的内容,您可以参考它作为示例。
#-------------------------------------------------------------
# OpenAI
#-------------------------------------------------------------
OPENAI_TOKEN=your-api-key # 用您的个人API秘钥替换your-api-key
#-------------------------------------------------------------
# Pinecone
#--------------------------------------------------------------
PINECONE_TOKEN=your-api-key # 用您的个人API秘钥替换your-api-key
构建和运行应用程序
在终端中,切换到您的 docker-genai
目录并运行以下命令:
docker compose up --build
接下来,Docker Compose根据 docker-compose.yaml
文件中定义的服务构建和运行应用程序。应用程序运行时,您将在终端中看到两个服务的日志。
在日志中,您将看到服务暴露在 8503
和 8504
端口上。这两个服务相互补充。
yt-whisper
服务运行在 8503
端口上。此服务将视频传输至Pinecone数据库,您可在知识库中存档要保存的视频。下一节将探讨 yt-whisper
服务。
使用yt-whisper
yt-whisper
服务是一个YouTube视频处理服务,使用OpenAI Whisper模型生成视频转录字幕并将其存储在Pinecone数据库中。以下步骤概述了如何使用该服务。
在浏览器中打开并访问 yt-whisper
服务的 http://localhost:8503
。一旦应用程序出现,请在URL字段中指定YouTube视频URL并选择 Submit。图2显示的示例使用了David Cardozo的 一个视频
。
图2: 展示带有下载转录字幕选项的处理视频内容的Web界面。
提交视频
yt-whisper
服务会下载视频的音频,然后使用Whisper将其转录字幕为 WebVTT
(*.vtt
)格式(您可以下载)。接下来,它使用“text-embedding-3-small”模型创建嵌入,最后将这些嵌入上传到Pinecone数据库。
视频处理完成后,网页应用程序中会显示视频列表,告知您哪些视频已在Pinecone中进行了索引。该页面还提供一个按钮以下载转录字幕。
访问Dockerbot聊天服务
现在,您可以在 8504
端口上访问Dockerbot聊天服务,向其询问有关视频的问题,如图3所示。
图3: 用户向Dockerbot询问关于NVIDIA容器的问题,应用程序回复并提供视频中特定时间戳的链接。
结论
在本文中,我们探讨了GenAI技术与Docker集成,以解锁视频内容宝贵见解的激动人心潜力。它展示了如何将尖端AI模型如Whisper与高效的数据库解决方案如Pinecone相结合,使组织能够将原始视频数据转化为可操作的知识。
无论您是经验丰富的开发人员还是刚开始探索AI领域,提供的资源和代码都使您能够简单地开始自己的视频理解项目。