大規模言語モデル(LLM)とセマンティック サーチを活用した、YouTube の文字起こしおよび要約サービスを構築します。
ユースケース: Gen AI
業種: メディア
製品: MongoDB Atlas、MongoDB Atlas Vector Search
パートナー: LgChuin
ソリューション概要
即時性が求められる現代においては、大量の情報をすばやく要約することが不可欠です。YouTube のようなプラットフォーム上には膨大な情報コンテンツが存在するため、関連する動画を素早く見つけ、文字起こしし、そして何より要約できる能力は、知識習得のスピードを大きく高める可能性があります。本記事では、これらすべてを実現する生成系 AI を活用したソリューションについて解説します。
YouTube は、主要な無料・オープンな動画プラットフォームであり、特定のサービス、製品、またはアプリケーションに関連するコンテンツは、企業制作の動画からインフルエンサーによる解説やレビュー動画まで多岐にわたります。企業は、社内外の視聴者が必要なコンテンツを見つけ、重要なポイントを迅速に把握できるよう、生成系 AI を活用した動画要約アプリを通じて支援することができます。
このソリューションを使って、生成系 AI サービスを構築します。このサービスは、LLMとベクトル埋め込みを組み合わせ、Atlas Vector Search を用いて、高度な動画からテキストへの変換や、意味的に類似した動画の検索を実現します。
その他の該当する業種とユースケース
ソフトウェア開発と IT: Stack Overflow の開発者レポートによると、60% の開発者がオンライン動画を学習に活用しています。そのため、開発者、アーキテクト、その他の IT プロフェッショナルは、生成系 AI の動画要約ソリューションを利用することで、生産性を向上させ、新しい技術をより早く学ぶことができます。
小売:世界中でますます多くの人々がモバイルや接続されたデバイスを通じて生活やビジネスを行う中で、電気通信はエッジと IoT の中心に位置しています。
B2B 営業を行うあらゆる業界の企業: 特にヘルスケア業界は、IoT の影響を最も強く受けている主要産業の 1 つとなっています。ウェアラブル機器や接続されたデバイスは、医療機関内だけでなく、患者の自宅や個人デバイス上でもケアを提供する上で非常に重要です。また、他の分野においてもその役割は拡大しています。
参照アーキテクチャ
データソース: 動画メタデータおよびトランスクリプトを処理した YouTube リンク。
OCR と AI を活用したリアルタイムのコード分析
この目的のために、本アプリケーションは光学文字認識(OCR)と人工知能(AI)を統合し、動画のフレームからリアルタイムでコード分析を実行します。この高度な機能は、従来のメタデータやトランスクリプトを超え、動画内に表示されているコードに対して実用的なインサイトを提供します。コードがチュートリアル、録画された会議、あるいはその他の技術プレゼンテーションの一部であっても、このレイヤーにより、テキストベースで検索可能な形式と、AI による解説が付加され、動画リソースをこれまで以上に包括的かつ理解しやすいものにします。
処理レイヤー: トランスクリプトを取得して要約するための Python スクリプト。
オーケストレーション レイヤー: 一般的なソフトウェアシステムでは、複数のサービスやモジュール、コンポーネント間の連携が必要となることが多く、より複雑なタスクを実行するために調整処理が求められます。オーケストレーション レイヤーは、この調整役として機能し、より大きなアプリケーション フローの一部である複数の処理を管理するために必要なロジックを仲介役として担いますこのレイヤーは、マイクロサービス アーキテクチャにおいて特に有効であり、モノリシックまたはモジュラー型のアーキテクチャにおいても活用されます。当社のインテリジェントな動画処理システムにおいては、オーケストレーション レイヤーが重要な役割を果たします。ここでは、VideoServiceFacade クラスを中心的なオーケストレーターとして概念化しており、VideoService、SearchService、MongoDbRepository などの異なるサービス間を仲介する構造としています。
出力:動画のメタデータ、完全なトランスクリプト、AI が生成した要約を含む JSON ファイル。
MongoDB を使用せずに
図 1. MongoDB を使用しないリファレンス アーキテクチャ
MongoDB で
図 2. MongoDB を使用したリファレンス アーキテクチャ
データモデルアプローチ
{ "videoURL": "https://youtu.be/exampleID", "metadata":{ "Title": "How to use GO with MongoDB", "Author": "MongoDB", "PublishDate": "2023-01-24", "ViewCount": 1449, "Length": "1533s", "Thumbnail": "https://exmpl.com/thumb.jpg" }, "transcript": "Full transcript…", "summary": "Tutorial on using Go with MongoDB.", "code_analysis": [ "Main function in Go initializes the MongoDB client.", "Imports AWS Lambda package for serverless architecture." ] }
各 YouTube 動画から抽出されたデータは、以下の要素で構成されています。
動画 URL: YouTube動画への直接リンク。
メタデータ: タイトル、投稿者、日付などの動画に関する詳細情報。
トランスクリプト:ビデオで話された内容をテキストで表現したものです。
要約: トランスクリプトを AI で要約・抽出した簡潔な内容。
コード分析リスト: 動画から抽出され、AI によって分析されたプログラミング言語のコード一覧。
これらのデータは最終的に JSON 形式で保存され、さまざまなアプリケーションにおける柔軟な活用を可能にします。
ソリューションを構築する
このソリューションのコードは、この GitHub リポジトリで入手できます。
環境の設定: 必要なライブラリがすべてインストールされていることを確認してください。これには、LangChain、Json、pymongo のほか、その他のドメインまたはサービス固有のライブラリも含まれます。
構成:ApplicationConfiguration を使用して、サービスプロバイダーと MongoDB 接続の詳細をロードします。
YouTube 動画の読み込み: 各動画リンク(MONGODB_YOUTUBE_VIDEO_LINKS)に対して、YouTubeLoader がメタデータとトランスクリプトを取得します。
トランスクリプトの要約:大規模なビデオのトランスクリプト用の LLM は、コンテンツを凝縮します。要約プロセスには、モデルがコンテキストが豊富な要約を生成するのに役立つ会話プロンプトの設定が含まれます。
エラーの処理: 要約処理中にエラーが発生した場合、そのエラーは検出され、該当動画の summary フィールドに記録されます。
データをローカルに保存: コンパイルされたデータ(動画の要約を含む)は、JSON 形式にシリアライズされ、video_transcript_<index>.json という名前の個別ファイルとして保存されます。
ベクトル検索を使用した MongoDB Atlas へのデータの保存:
要約されたトランスクリプトをベクトル検索用の埋め込みに変換します。Voyage AI を使用して、埋め込みモデルを構築することができます。
これらの埋め込みを MongoDB Atlas に保存します。MongoDB Atlas の Vector Search を使用することで、埋め込みをインデックス化し、要約済みコンテンツを高性能な近似最近傍探索(ANN)アルゴリズムによって簡単に検索可能にできます。
ベクトル検索インデックスを作成し、埋め込みを検索可能な状態にする必要があります。Atlas Vector Search では、次元数(最大 4096)、類似度検索の種類、近傍数(K)など、いくつかのパラメーターを選択することができます。以下のスクリーンショットは、この設定例を示しています。詳細については、Docs もご参照ください。
ベクトル検索の力を活用すれば、ユーザーはフレーズや文による検索で、関連する動画の要約をすばやく検索でき、コンテンツの発見性が向上します。
『MongoDB Atlas Vector Search』ドキュメントでは、さらに詳しい情報をご確認いただけます。『Atlas Vector Search クイックスタートガイド』にアクセスし、数分で最初のインデックスを作成できます。

図3。ベクトル検索を使用した MongoDB Atlas へのデータの保存
アプリケーションの中核にオーケストレーション レイヤーを作成: そのロールは、各種サービスを調整し、複雑なワークフローを管理しながら、シームレスな体験を提供することです。VideoServiceFacade クラスは、このレイヤー内でオーケストレーターとして機能し、ばらばらな処理を効果的に統合します。
VideoServiceFacade: VideoService、SearchService、およびMongoDbRepositoryのコーディネーターとして機能します。
VideoProcessResult: 処理された動画結果をカプセル化したもので、メタデータ、想定されるアクション、検索クエリの条件(オプション)などを含みます。
システムがトリガーされると(通常はメイン関数または API エンドポイントから)、VideoServiceFacade が処理を引き継ぎます。ユーザーのプロンプトや AI による提案に基づいて、さまざまな処理がトリガーされます。これには、文字起こしの生成や要約、保存された動画要約内でのテキストベース検索などが含まれます。
以下は、それらすべてがどのように統合されるかの流れです。
使用した技術と製品
MongoDB 開発者データ プラットフォーム
提携技術
重要な検討事項
Atlas Vector Search におけるベクトル検索インデックスの作成と保存。
LLM から埋め込みと出力を生成し、それらを MongoDB Atlas に保存。
人気の AI フレームワークである LangChain を活用した、生成系 AI アプリケーションの構築支援。
完全一致のキーワードがなくても、関連データを取得するためのセマンティック検索の実行。
アプリケーション内で複数の AI 搭載サービスを統合的に制御。
著者
Fabio Falavinha, MongoDB
David Macias, MongoDB