AI の時代に入り、あらゆるものが前例のないスピードで加速しているようです。生成あれこれ、あらゆるところにデータ過多。皆さんは既に大量の情報で精神的に疲れていると思いますので、本題に入りましょう。 私がやりたいこと: YouTube 動画 → 一口サイズの情報 → 学習 ✨ + ソーシャルメディアでの共有 🐦 … それでおしまい … この AI 競争では、すべてがスピードに関するものです。AI を活用して学習を加速できるのであれば、なぜそうしないのでしょうか。家族、友人、フォロワー、またはインフルエンサーとして、ぜひこれを共有してください。 結果: リポジトリ: https://github.com/WorkSmarter-lol/yt2tweets-cli/ 免責事項: このチュートリアルは英語字幕付きの YouTube 動画にのみ適用され、YouTube Shorts には適用されません。 プロセス 0. 前提知識: 始める前に、 、 、 どのように機能するかについて基本的な知識を身に付けることが重要です。 LangChain.js Prompt Engineering OpenAI モデルが 1. 前提となるツール: (OpenAI GPT-4o-mini を使用しています) OpenAI API キー (NPM パッケージ) — YouTube ビデオからトランスクリプトを抽出します youtube-transcript Node.js / 糸 NPM 言語チェーン.js 私の場合、開発を開始するために yarn を使用しています。スクリプトをテストするためのクイックスタートとして、CLI を使用して簡単な MVP を実行し、プロジェクトを試しました。 2. CLIの名前の選択 簡単に参照でき、わかりやすい名前を付けるために、私はそれを「 」と名付けました。これは基本的に「 」を意味します。 yt2tweets YouTube to Tweets 3. 望ましい出力 $ 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 モデルがコンテキストを理解し、指定した出力形式で入力を要約できるようにする必要があります。 4. プロンプトデザイン 物事をうまく機能させるための秘密のソース✨がここにあります。 仕事を完了するために必要なコアスキルです。 プロンプトエンジニアリングは、 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} `, }, ]); は、GPT が要約を行うためのすべてのトランスクリプトを入力する場所です。 {input} プロンプトの追加方法については、 参照してください。例を以下に示します。 こちらを 5. すべてをまとめる 最後に、これを実行するには、 インストールし、OpenAI API キーを準備する必要があります。すべてが整ったら、モデルを開始し、AI にプロンプトとフィードを渡して応答を得ることができます。 @langchain/openai 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) ... 6. CLI としてまとめる 利便性のため、この関数を CLI としてエクスポートしたので、将来簡単に使用できます。 これを実現するために、私は以下を使用しました。 — NPM パッケージ BIN の CLI を有効にする Commander — エレガントなターミナルスピナー Ora — 端末文字列のスタイル設定 チョーク コードのスニペットを以下に示します (完全なコードは最後にあります)。 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