Alors que nous entrons dans l'ère de l'IA, tout semble s'accélérer à une vitesse sans précédent. Générationnelle ceci, générative cela : une surcharge de données partout. Je suis presque sûr que vous êtes déjà mentalement fatigué par toutes ces informations, alors allons droit au but, d'accord ?
Ce que je veux faire :
Vidéo YouTube → Informations en bref → Apprentissage ✨ + Partage sur les réseaux sociaux 🐦
… C'est ça …
Dans cette course à l’IA, tout est une question de vitesse. Si nous pouvons utiliser l’IA pour accélérer notre apprentissage, pourquoi pas ? Alors, partagez ceci, que ce soit avec votre famille, vos amis, vos abonnés ou même en tant qu’influenceur.
Dépôt : https://github.com/WorkSmarter-lol/yt2tweets-cli/
Ce tutoriel fonctionne uniquement pour les vidéos YouTube avec sous-titres anglais et n'est pas applicable aux courts métrages YouTube.
Avant de commencer, il est essentiel de connaître quelques notions de base sur le fonctionnement de LangChain.js , Prompt Engineering et des modèles OpenAI .
Dans mon cas, j'utilise yarn pour démarrer le développement. Pour un démarrage rapide afin de tester le script, j'ai fait un MVP rapide en utilisant CLI pour tester le projet.
Pour une référence rapide et un nom accrocheur, je l'ai appelé « yt2tweets
», ce qui signifie essentiellement → « 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)
Idéalement, nous devons fournir la transcription comme contexte pour le modèle d’IA, qui est GPT-4o-mini dans notre cas, afin qu’il puisse comprendre le contexte et résumer l’entrée dans le format de sortie que nous avons spécifié.
Voici la sauce secrète ✨ pour que les choses fonctionnent : l'ingénierie rapide est une compétence de base nécessaire pour faire le travail.
Pour personnaliser la manière dont la CLI convertit les vidéos YouTube en fils Twitter/X, suivez la configuration simple et facile en 3 étapes que j'ai définie. Vous pouvez ajuster le ton, la longueur et le style en fonction de vos besoins. Pour guider l'IA, suivez le bloc d'insertion ci-dessous pour un processus de configuration fluide.
Définissez le rôle et les objectifs de l'IA avec le bloc Identité et finalité. Définissez sa fonction et ses objectifs pour garantir qu'elle génère du contenu qui correspond à vos besoins et aux résultats souhaités.
Définissez les actions étape par étape que l'IA doit suivre, garantissant une approche claire et structurée pour générer votre contenu.
Spécifiez les formats dans lesquels l’IA doit fournir le contenu.
Exemple comme ci-dessous :
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} `, }, ]);
L' {input}
est l'endroit où je mets toute la transcription pour que GPT fasse le résumé.
La référence sur la façon dont j'ai ajouté mon invite peut être trouvée ici , avec un exemple ci-dessous :
Enfin, pour qu'il fonctionne, vous devez avoir installé @langchain/openai
et votre clé API OpenAI prête. Une fois que tout est réglé, vous pouvez lancer le modèle et commencer à transmettre des invites et des flux à l'IA pour obtenir une réponse.
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) ...
Pour plus de commodité, j'ai exporté la fonction en tant que CLI afin qu'elle me soit facile à utiliser à l'avenir.
Pour y parvenir, j'ai utilisé :
Un extrait du code est fourni ci-dessous (code complet à la fin) :
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
Encore une fois, j’espère que ce projet vous aidera à accélérer votre apprentissage et à digérer le contenu YouTube, ou à le partager avec vos amis, votre famille et vos abonnés.
Si vous préférez accéder au projet UI-ready, j'ai créé une interface utilisateur pour le même projet. Vous pouvez trouver le lien ci-dessous :
https://yt2tweets.worksmarter.lol