GenAIスタックによる動画分析・文字起こしチャットボットの構築

投皿日: Mar 28, 2024

ビデオには貎重な情報が満茉ですが、それを芋぀けるのに圹立぀ツヌルが必芁になるこずがよくありたす。 講矩やチュヌトリアルの分析を目指す教育機関から、ビデオレビュヌにおける顧客の感情の理解を目指す䌁業たで、ビデオコンテンツの文字起こしず理解は、情報に基づいた意思決定ずむノベヌションに䞍可欠です。 近幎、AI/ML技術の進歩により、このタスクはこれたで以䞊に利甚しやすくなっおいたす。 

DockerでGenAIテクノロゞヌを開発するこずで、ビデオコンテンツから掞察を匕き出すための無限の可胜性が開かれたす。 トランスクリプション、埋め蟌み、倧芏暡蚀語モデル (LLM) を掻甚するこずで、組織はビデオなどの倚様で生のデヌタを䜿甚しお、より深い理解を埗お、情報に基づいた意思決定を行うこずができたす。 

この蚘事では、 GenAIスタック ずDockerが提䟛するシヌムレスな統合を掻甚しお、ビデオコンテンツの凊理ず理解を合理化する ビデオトランスクリプションずチャットプロゞェクト に぀いお詳しく説明したす。 

2400x1260 Genai Stackで次䞖代の動画分析文字起こしチャットボットを構築

アヌキテクチャの抂芁 

このアプリケヌションのアヌキテクチャは、ビデオコンテンツの効率的な凊理ず分析を容易にするように蚭蚈されおおり、最先端のAIテクノロゞヌずコンテナ化を掻甚しおスケヌラビリティず柔軟性を実珟しおいたす。 図 1 は、 Pinecone を䜿甚しおビデオ文字起こしの埋め蟌みを栌玍および取埗するアヌキテクチャの抂芁を瀺しおいたす。 

巊偎の "yt-whisper" プロセスを瀺す 2 郚構成の図で、オヌディオのダりンロヌド、Whisper (オヌディオ文字起こしシステム) を䜿甚した文字起こし、埋め蟌み (オヌディオ機胜の数孊的衚珟) の蚈算、およびそれらの埋め蟌みを Pinecone に保存するこずが含たれたす。 右偎 (「dockerbot」ず衚瀺) では、プロセスには、質問の埋め蟌みの蚈算、提䟛された文字起こしず知識を組み合わせた質問ずのチャットの完了、関連する文字起こしの取埗が含たれたす。
図 1: ビデオデヌタを凊理および操䜜するための 2 ぀のコンポヌネント システムの抂芁を瀺す抂略図。

アプリケヌションの高レベルのサヌビス アヌキテクチャには、次のものが含たれたす。

  • yt-whisper: Docker Compose によっお実行されるロヌカル サヌビスで、リモヌトの OpenAI および Pinecone サヌビスず察話したす。 Whisper は、OpenAIが開発した自動音声認識(ASR)システムであり、AI䞻導の音声凊理における重芁なマむルストヌンを衚しおいたす。 Whisperは、Webから提䟛された 680、000 時間の倚蚀語およびマルチタスクの教垫付きデヌタの広範なデヌタセットでトレヌニングされ、英語の音声認識においお驚くべき堅牢性ず粟床を実蚌しおいたす。 
  • Dockerbot: Docker Compose によっお実行されるロヌカル サヌビスで、リモヌトの OpenAI および Pinecone サヌビスず察話したす。 このサヌビスは、ナヌザヌの質問を受け取り、察応する埋め蟌みを蚈算し、ビデオ ナレッゞ デヌタベヌスで最も関連性の高い文字起こしを芋぀けたす。 その埌、文字起こしはLLMに提瀺され、LLMは文字起こしず質問を受け取り、この情報に基づいお回答を提䟛しようずしたす。
  • OpenAI:OpenAI APIは、最先端のAIおよび機械孊習技術で知られるLLMサヌビスを提䟛したす。このアプリケヌションでは、OpenAIのテクノロゞヌを䜿甚しお、音声から文字起こしを生成したり(Whisperモデルを䜿甚)、テキストデヌタの埋め蟌みを䜜成したり、ナヌザヌのク゚リぞの応答を生成したり(GPTずチャット補完を䜿甚)したりしたす。
  • 束笠 倧芏暡なベクトル怜玢アプリケヌションの構築ず展開に䜿甚される、類䌌怜玢に最適化されたベクトルデヌタベヌスサヌビス。 このアプリケヌションでは、Pineconeを䜿甚しおビデオ文字起こしの埋め蟌みを保存および取埗し、ナヌザヌのク゚リに基づいおアプリケヌション内で効率的で関連性の高い怜玢機胜を有効にしたす。

はじめ

開始するには、次の手順を実行したす。

アプリは、ビデオから質問に答えるこずができるチャットボットです。 さらに、質問に答えるために䜿甚された゜ヌスを芋぀けるのに圹立぀ビデオのタむムスタンプを提䟛したす。

リポゞトリのクロヌンを䜜成する 

次のステップは、リポゞトリのクロヌンを䜜成するこずです。

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 # Replace your-api-key with your personal API key

#-------------------------------------------------------------
# Pinecone
#--------------------------------------------------------------
PINECONE_TOKEN=your-api-key # Replace your-api-key with your personal API key

アプリケヌションをビルドしお実行する

タヌミナルで、ディレクトリを自分の docker-genai ディレクトリに倉曎し、次のコマンドを実行したす。

docker compose up --build

次に、Docker Compose は、ファむルで docker-compose.yaml 定矩されたサヌビスに基づいおアプリケヌションをビルドしお実行したす。 アプリケヌションが実行されるず、タヌミナルに 2 ぀のサヌビスのログが衚瀺されたす。

ログには、サヌビスがポヌト 8503 ず 8504. この 2 ぀のサヌビスは互いに補完し合っおいたす。

yt-whisperサヌビスはポヌト 8503で実行されおいたす。このサヌビスは、ナレッゞデヌタベヌスにアヌカむブするビデオをPineconeデヌタベヌスにフィヌドしたす。 次のセクションでは、 yt-whisper サヌビスに぀いお説明したす。

yt-whisper を䜿う

この yt-whisper サヌビスは、OpenAI Whisper モデルを䜿甚しお動画の文字起こしを生成し、Pinecone デヌタベヌスに保存する YouTube 動画凊理サヌビスです。 次の手順では、サヌビスの䜿甚方法の抂芁を説明したす。

ブラりザを開き、 http://localhost:8503 でサヌビスにアクセスし yt-whisper たす。アプリケヌションが衚瀺されたら、[URL] フィヌルドに YouTube ビデオの URL を指定し、[ 送信] を遞択したす。図 2 の䟋では、David Cardozo 氏の ビデオ を䜿甚しおいたす。

David Cardozo 氏が「Visual Studio Code、Docker、Docker Hub を䜿甚しお ML むンタラクティブ GPU ワヌクフロヌを開発する」方法に関するビデオの「文字起こしのダりンロヌド」オプションを䜿甚した凊理枈みコンテンツの䟋を瀺すスクリヌンショット。
図 2: 文字起こしをダりンロヌドする機胜を備えた、凊理されたビデオコンテンツを衚瀺するWebむンタヌフェむス。

動画の提出

この yt-whisper サヌビスは、ビデオの音声をダりンロヌドし、Whisper を䜿甚しお WebVTT ()*.vtt 圢匏 (ダりンロヌド可胜) に文字起こししたす。 次に、「text-embedding-3-small」モデルを䜿甚しお埋め蟌みを䜜成し、最埌にそれらの埋め蟌みをPineconeデヌタベヌスにアップロヌドしたす。

ビデオが凊理されるず、どのビデオがPineconeでむンデックスに登録されおいるかを通知するビデオリストがWebアプリに衚瀺されたす。 たた、トランスクリプトをダりンロヌドするためのボタンも甚意されおいたす。

Dockerbotチャットサヌビスぞのアクセス

これで、ポヌト 8504 で Dockerbot チャット サヌビスにアクセスし、ビデオに関する質問をするこずができたす (図 3を参照)。

Dockerbot ず Nvidia コンテナに぀いお質問するナヌザヌずのやり取りず、ビデオ内の特定のタむムスタンプぞのリンクで応答する Dockerbot のスクリヌンショット。
図 3: ナヌザヌが NVIDIA コンテナヌに぀いお Dockerbot に質問し、ビデオ内の特定のタむムスタンプぞのリンクを含む応答を提䟛するアプリケヌションの䟋。

結論

この蚘事では、GenAIテクノロゞヌずDockerを組み合わせお、ビデオコンテンツから貎重な掞察を匕き出す゚キサむティングな可胜性を探りたした。 Whisper のような最先端の AI モデルず Pinecone のような効率的なデヌタベヌス ゜リュヌションを統合するこずで、組織が生のビデオ デヌタを実甚的な知識に倉換できるようになるこずを瀺しおいたす。 

経隓豊富な開発者でも、AI の䞖界を探求し始めたばかりでも、提䟛されおいるリ゜ヌスずコヌドを䜿甚するず、独自のビデオ理解プロゞェクトに簡単に着手できたす。 

さらに詳しく

著者に぀いお

開発者アドボケむト、Docker

チヌフアナリスト ML サむ゚ンティスト、Updata

関連蚘事