AI の時代に入り、あらゆるものが前例のないスピードで加速しているようです。生成あれこれ、あらゆるところにデータ過多。皆さんは既に大量の情報で精神的に疲れていると思いますので、本題に入りましょう。
私がやりたいこと:
YouTube 動画 → 一口サイズの情報 → 学習 ✨ + ソーシャルメディアでの共有 🐦
… それでおしまい …
この AI 競争では、すべてがスピードに関するものです。AI を活用して学習を加速できるのであれば、なぜそうしないのでしょうか。家族、友人、フォロワー、またはインフルエンサーとして、ぜひこれを共有してください。
リポジトリ: https://github.com/WorkSmarter-lol/yt2tweets-cli/
このチュートリアルは英語字幕付きの YouTube 動画にのみ適用され、YouTube Shorts には適用されません。
始める前に、 LangChain.js 、 Prompt Engineering 、 OpenAI モデルがどのように機能するかについて基本的な知識を身に付けることが重要です。
私の場合、開発を開始するために yarn を使用しています。スクリプトをテストするためのクイックスタートとして、CLI を使用して簡単な MVP を実行し、プロジェクトを試しました。
簡単に参照でき、わかりやすい名前を付けるために、私はそれを「 yt2tweets
」と名付けました。これは基本的に「 YouTube to Tweets
」を意味します。
$ yt2tweets "https://youtu.be/1-TZqOsVCNM" # Result: # Tweet 1: Introduction ... 🧵👇 (1/X) # Tweet 2: ... 🧵 (2/X) # Tweet 3: ... 🧵 (3/X) # Tweet 4: ... 🧵 (4/X) # Tweet 5: Conclusion ... 🧵 (5/X)
理想的には、AI モデル (この場合は GPT-4o-mini) のコンテキストとしてトランスクリプトを提供して、AI モデルがコンテキストを理解し、指定した出力形式で入力を要約できるようにする必要があります。
物事をうまく機能させるための秘密のソース✨がここにあります。プロンプトエンジニアリングは、仕事を完了するために必要なコアスキルです。
CLI が YouTube 動画を Twitter/X スレッドに変換する方法をカスタマイズするには、私が定義したシンプルで簡単な 3 ステップの設定に従ってください。トーン、長さ、スタイルをニーズに合わせて調整できます。AI をガイドするには、以下の挿入ブロックに従って、スムーズな構成プロセスを実行してください。
アイデンティティと目的のブロックを使用して、AI の役割と目標を設定します。AI の機能と目的を定義して、ニーズと望ましい結果に一致するコンテンツが確実に生成されるようにします。
AI が実行するステップごとのアクションを定義し、コンテンツを生成するための明確で構造化されたアプローチを確保します。
AI がコンテンツを配信する形式を指定します。
例は以下のとおりです。
import { ChatPromptTemplate } from '@langchain/core/prompts'; const prompt = ChatPromptTemplate.fromMessages([ { role: 'system', content: ` # IDENTITY AND PURPOSE {identity} # STEPS {steps} # OUTPUT INSTRUCTIONS {formats} # INPUT INPUT: {input} `, }, ]);
{input}
は、GPT が要約を行うためのすべてのトランスクリプトを入力する場所です。
プロンプトの追加方法については、こちらを参照してください。例を以下に示します。
最後に、これを実行するには、 @langchain/openai
インストールし、OpenAI API キーを準備する必要があります。すべてが整ったら、モデルを開始し、AI にプロンプトとフィードを渡して応答を得ることができます。
import { ChatOpenAI } from '@langchain/openai'; // Instantiate Model const llm = new ChatOpenAI({ modelName: 'gpt-4o-mini', temperature: 0.7, // <-- feel free to adjust temperature here apiKey, }); // ... // add prompts here // ... // Ensure that chain.invoke correctly passes the variables result = await prompt.pipe(llm).invoke({ identity, steps, formats, input, }); // get result console.log('>> result?.content'); // Tweet 1: Introduction ... 🧵👇 (1/X) ...
利便性のため、この関数を CLI としてエクスポートしたので、将来簡単に使用できます。
これを実現するために、私は以下を使用しました。
コードのスニペットを以下に示します (完全なコードは最後にあります)。
import { Command } from 'commander'; import chalk from 'chalk'; import ora from 'ora'; const spinner = ora('Loading...'); // Initialize the command line interface const program = new Command(); // Command to convert a YouTube URL program .argument('<url>') .description('Turn YouTube Videos into Twitter Threads with AI') .action(async url => { const apiKey = readApiKey(); // Read the saved API key // ... spinner.start(); await convertYt2Tweets(url, apiKey); // ... });
https://github.com/WorkSmarter-lol/yt2tweets-cli
繰り返しになりますが、このプロジェクトが皆さんの学習スピードの向上や YouTube コンテンツの理解、あるいは友人、家族、フォロワーとの共有に役立つことを願っています。
UI 対応プロジェクトにアクセスしたい場合は、同じプロジェクトのユーザー インターフェイスを作成しました。以下のリンクをご覧ください。
https://yt2tweets.worksmarter.lol