Crie um serviço de transcrição e resumo Youtube que aproveite um grande modelo de linguagem (LLM) e pesquisa semântica.
Casos de uso: Gen AI
Setores: Mídia
Produtos: MongoDB Atlas, MongoDB Atlas Vector Search
Parceiros: LangChain
Visão Geral da Solução
No mundo atual voltado para a gratificação instantânea, é crucial destilar rapidamente grandes volumes de informações. Com a quantidade de conteúdo informativo disponível em plataformas como o YouTube, a capacidade de encontrar rapidamente vídeos relevantes, transcrevê-los e, mais importante, resumi-los pode aumentar a velocidade da coleta de conhecimento. Neste artigo, você aprenderá sobre uma solução baseada em IA generativa que realiza todas as funções mencionadas.
O YouTube é a principal plataforma de vídeo gratuita e aberta, e o conteúdo relevante para um serviço, produto ou aplicativo específico pode variar de vídeos proprietários da empresa a explicações e avaliações produzidas por influenciadores. Independentemente disso, uma empresa pode ajudar seus públicos internos e externos a encontrar conteúdo relevante e decifrar conclusões importantes muito mais rapidamente com um aplicativo de resumo de vídeo viabilizado por IA generativa.
Com esta solução, você criará um serviço de IA generativa que junta um LLM e incorporações vetoriais com o Atlas Vector Search para geração sofisticada de vídeo para texto e pesquisa em vídeos semanticamente semelhantes.
Outras indústrias e casos de uso aplicáveis
Desenvolvimento de software e TI: o relatório de desenvolvedor do Stack Overflow afirma que 60% dos desenvolvedores utilizam vídeos online para aprender. Portanto, desenvolvedores, arquitetos e outros profissionais de TI podem aumentar a produtividade e aprender novas tecnologias mais rapidamente com uma solução de resumo de vídeo viabilizada por IA generativa.
Varejo: a telecomunicação é o mais importante quando se trata de borda e de IoT, afinal, cada vez mais pessoas no mundo todo o mundo usam seus dispositivos móveis e conectados para viver e trabalhar.
Empresas de qualquer setor com vendas B2B: o setor de saúde está provando ser um dos maiores afetados pela IoT. Dispositivos vestíveis e conectados são essenciais para a prestação de cuidados tanto em instituições médicas como, cada vez mais, em outras áreas, como na própria casa do paciente e em seus dispositivos pessoais.
Arquiteturas de referência
Fonte de dados: links do YouTube que são processados para metadados e transcrições de vídeo.
Uso de OCR e AI para análise de código em tempo real
Para esse fim, o aplicativo integra reconhecimento óptico de caracteres (OCR) e inteligência artificial (AI) para fazer análises de código em tempo real diretamente dos quadros de vídeo. Esse recurso sofisticado transcende os metadados e as transcrições tradicionais, proporcionando insights acionáveis sobre o código exibido no vídeo. Se o código faz parte de um tutorial, uma reunião gravada ou qualquer forma de apresentação técnica, essa camada oferece uma versão pesquisável baseada em texto, bem como uma explicação viabilizada por AI, tornando seus recursos de vídeo mais abrangentes e esclarecedores do que nunca.
Camada de processamento: script Python para buscar e resumir a transcrição.
Camada de orquestração: em qualquer sistema de software, costuma haver a necessidade de coordenar entre vários serviços, módulos ou componentes para fazer tarefas mais complexas. A camada de orquestração serve a esse propósito, atuando como um intermediário que lida com a lógica necessária para gerenciar várias operações que fazem parte de um fluxo maior do aplicativo. Isso é particularmente benéfico na arquitetura de microsserviços, mas também tem sua utilidade em arquiteturas monolíticas ou modulares. Em nosso sistema inteligente de processamento de vídeos, a camada de orquestração desempenha uma função crucial. Aqui, conceituamos uma classe VideoServiceFacade que serve como orquestrador central, mediando entre diferentes serviços, como VideoService, SearchService e MongoDbRepository.
Saída: arquivos JSON com metadados de vídeo, transcrição completa e resumo gerado por AI.
Sem MongoDB
Figura 1. Arquitetura de referência sem MongoDB
Com o MongoDB
Figura 2. Arquitetura de referência com MongoDB
Abordagem do modelo de dados
{ "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." ] }
Os dados extraídos de cada vídeo do YouTube consistem no seguinte:
URL do vídeo: um link direto para o vídeo do YouTube.
Metadados: detalhes do vídeo, como o título, quem fez o upload, a data etc.
Transcrição: uma representação textual do conteúdo falado no vídeo.
Resumo: uma versão concisa da transcrição, destilada usando AI.
Lista de códigos analisados: uma lista de códigos de linguagem de programação extraídos do vídeo e analisados por AI.
Os dados são finalmente armazenados no formato JSON, o que fornece flexibilidade em termos de utilização em vários aplicativos.
Construindo a Solução
O código desta solução está disponível neste repositório do GitHub.
Configuração do ambiente: comece garantindo que todas as bibliotecas necessárias estejam instaladas. Isso inclui LangChain, JSON, PyMongo e qualquer outro domínio ou biblioteca específica de serviço.
Configuração: use o ApplicationConfiguration a fim de carregar configurações para provedores de serviços e detalhes de conexão do MongoDB.
Carregamento de vídeos do YouTube: para cada link de vídeo em MONGODB_YOUTUBE_VIDEO_LINKS, o YoutubeLoader busca os metadados e a transcrição.
Resumo da transcrição: um LLM para grandes transcrições de vídeo condensa o conteúdo. O processo de resumo envolve a configuração de um prompt de conversa que ajuda o modelo a gerar um resumo rico em contexto.
Tratamento de erros: se o processo de resumo encontrar um erro, ele será capturado e armazenado no campo de resumo daquele vídeo específico.
Armazenamento local de dados: os dados compilados, incluindo o resumo do vídeo, são serializados em um formato JSON e salvos em arquivos individuais, denominados video_transcript_<index>.json.
Armazenamento de dados no MongoDB Atlas com o Vector Search:
Converta a transcrição resumida em incorporações para pesquisa vetorial. Você pode usar a Voyage AI em seus modelos de incorporações.
Armazene essas incorporações no MongoDB Atlas. Usando o MongoDB Atlas Vector Search, você pode indexar essas incorporações para tornar o conteúdo resumido facilmente pesquisável com algoritmos sofisticados de vizinho mais próximo (ANN).
Você precisará criar um índice de pesquisa vetorial para tornar sua incorporação pesquisável. Você tem a capacidade de escolher entre alguns parâmetros, como número de dimensões (o máximo no Atlas Vector Search é 4096), tipo de pesquisa de similaridade e número (K) de vizinhos mais próximos. A captura de tela abaixo mostra a configuração deste exemplo. Você também pode consultar nossos documentos.
Com o poder da pesquisa vetorial, os usuários agora podem recuperar rapidamente resumos de vídeos relevantes fazendo a query por meio de locuções ou frases, melhorando a descoberta do conteúdo.
Você pode encontrar mais informações acessando a documentação do MongoDB Atlas Vector Search. Acesse o guia de início rápido do Atlas Vector Search e crie seu primeiro índice em minutos.

Figura 3. Armazenando dados no MongoDB Atlas com pesquisa vetorial
Criar uma camada de orquestração no centro do aplicativo: sua função é coordenar os serviços, gerenciar fluxos de trabalho complexos e proporcionar uma experiência perfeita. A classe VideoServiceFacade dentro desta camada atua como orquestrador, efetivamente amarrando todas as pontas soltas.
VideoServiceFacade: atua como o coordenador para VideoService, SearchService e MongoDbRepository.
VideoProcessResult: um encapsulamento dos resultados de vídeo processados, incluindo metadados, ações possíveis e termos de query de pesquisa opcionais.
Quando o sistema é acionado, geralmente a partir de uma função principal ou ponto de extremidade de API, é o VideoServiceFacade que assume o controle. Com base nas solicitações do usuário e nas sugestões geradas por AI, ele aciona vários processos. Isso pode variar desde a geração e o resumo de transcrições até a pesquisa baseada em texto nos resumos de vídeo armazenados.
Veja como tudo acontece:
Tecnologias e produtos utilizados
Plataforma de dados para desenvolvedores MongoDB
Tecnologias de parceiros
Considerações importantes
Criação e armazenamento de índices vetoriais no Atlas Vector Search.
Gere incorporações e saídas de um LLM e armazene-as no MongoDB Atlas.
Uso do popular framework de AI, LangChain, para facilitar a criação de um aplicativo com tecnologia de IA generativa.
Condução de uma pesquisa semântica para recuperar dados relevantes que podem não ter correspondências exatas de palavras-chave.
Orquestração de vários serviços viabilizados por AI em um aplicativo.
Autor(a)
Fabio Falavinha, MongoDB
David Macias, MongoDB