Moteur de recherche vidéo AI (AVSE)
Un moteur de recherche vidéo propulsé par les derniers outils de l'IA
Pourquoi?
Avec la montée du contenu de la forme courte avec Tiktok et YouTube. Beaucoup plus de connaissances sont dans des vidéos que jamais. Trouver des réponses spécifiques dans des millions de vidéos peut être difficile pour une seule personne. La question est donc de savoir s'il y a Google qui index le texte sur le site Web, ce qui facilite la recherche en fonction du contexte de votre question, pourquoi n'y a-t-il pas Google qui indexe le contenu vidéo, ce qui permet aux utilisateurs de trouver plus facilement des réponses en leur sein.
J'ai donc construit cela pour montrer que c'est très possible avec la technologie et l'infrastructure qui est facilement disponible.
Pile technologique
- Supbase (PostgreSQL, PG_Vector, Auth)
- Hasura (couche graphique, autorisation)
- Fly (hébergement de Hasura)
- Jigsawstack (résumé ai, chat ai)
- Vercel (NextJS Hébergement, fonctions sans serveur)
Comment ça marche?
Stockage de vidéos
- La transcription vidéo est extraite de la vidéo YouTube
- Les transcriptions sont entendu avec l'horodatage basé sur https://huggingface.co/supabase/gte-small size dimension
- Stocké dans Postgres db avec l'utilisation de l'extension PG_Vector et d'indexation
Recherche
- Vector Cosine Search à travers la DB en fonction de la question pour renvoyer les résultats relatifs
- Chaque vidéo du résultat effectuera une deuxième recherche pour trouver des morceaux de vidéo connexes à la question
- Les morceaux seront ramenés à la transcription horodagée pour lire le clip relatif de la vidéo
Résumé et chat
- La transcription de la vidéo sera envoyée à Jigsawstack API pour un résumé sous forme ponctuelle et texte
- Les séances de chat seront créées et gérées par Jigsawstack API, les morceaux connexes de la vidéo seront envoyés à la session de chat en fonction des questions
Choses à noter pour l'héberger vous-même
- Vous aurez besoin d'un compte Supabase & Fly.io payé si vous prévoyez d'indexer des milliers à des millions de vidéos
-
admin/config/fly.toml se compose de configurations nécessaires pour déployer Hasura pour voler - Décharge de migration
admin/migration que vous pouvez utiliser pour recréer le schéma via Hasura CLI -
hasura init migration --endpoint <hasuraurl.fly.app> --admin-secret <admin_secret> Pour mettre à jour le dossier de migration dans admin -
admin/indexChannelVideos.ts Script pour indexer un grand nombre de vidéos localement avec les chaînes YouTube -
.env.example les clés nécessaires pour s'exécuter pour projeter
FAQ
YouTube ne fait-il pas cela?
- Pas vraiment, YouTube ne recherche pas l'audio transcrit de la vidéo, mais s'appuie plutôt sur le contenu écrit du téléchargeur tel que le titre, la description, les balises. Tandis que tout le contenu audio n'est pas indexé.
Comment cette pile va-t-elle gérer des millions de vidéos?
- Il peut gérer des millions mais peut-être pas des milliards / milliards avec cette configuration actuelle. Qui nécessite plus de répliques, d'instances et surtout $
Quelle est la prochaine étape?
- Ajouter Tiktok comme source vidéo
- Ajouter https://replicate.com/vaibhavs10/incredibly-fast-whisper pour transcrire l'audio
- Améliorer considérablement les performances de la requête
- Page pour afficher tous les chats actifs