No último dia 25 e 26 de Abril aconteceu o maior evento de JavaScript do planeta: a BrazilJs Conference 2024. E, o evento foi um grande sucesso, como sempre! Contando com os maiores nomes do mercado e especilistas em JavaScript. E, depois de cinco anos, o evento voltou a ser presencial, com a presença de 4 mil pessoas nos dois dias de evento.
E, fui uma das palestrantes do evento, a qual tive a oportunidade de falar sobre como Criar Aplicações Inteligentes com Javascript: Integrando RAG, Azure OpenAI & LangChain.js.
A partir de agora, compartilharei com vocês um pouco do que foi apresentado na minha palestra!
Se você deseja assistir a palestra na íntegra, acesse:
Vamos lá!
Logo no início da palestra, procurei explicar o que é RAG e porque esse tipo de modelo é tão importante para a criação de aplicações inteligentes.
RAG, ou Retrieval Augmented Generation, é uma arquitetura que combina a recuperação de informações externas com geração de respostas por grandes modelos de linguagem (LLMs). Assim sendo, esse tipo de abordagem permite pesquisar em Banco de Dados externos além das informações pré-treinadas nos modelos de linguagem, proporcionando respostas mais precisas e contextualizadas. Essa arquitetura é particularmente útil para empresas que desejam utilizar dados específicos e relevantes, sem comprometer informações sensíveis.
Por mais que vejamos muitos exemplos baseados em textos, esse tipo de arquitetura pode ser aplicado em diferentes tipos de dados, como: imagens vetorizadas, documentos e até mesmo áudios.
Simplificando: "A arquitetura RAG permite que empresas utilizem IA para analisar e gerar informações a partir de seus dados específicos, como textos e imagens relacionadas ao seu negócio, de forma controlada e direcionada".
Se deseja saber mais sobre RAG, recomendo a leitura da documentação oficial da Microsoft que fala sobre o assunto: Retrieval Augmented Generation (RAG) in Azure AI Search
Na palestra, mostrei uma arquitetura padrão RAG, a qual é composta por três componentes principais e segue o seguinte fluxo de execução:
fonte da image: LangChain.js presentation
Indexing (Indexação): esse é um processo de indexação que organiza os dados numa base de dados vetorial de forma a tornar mais fácil e pesquisáveis. Este recurso acaba sendo crítico porque prepara o terreno para que o RAG acesse as informações relevantes rapidamente quando for responder a uma consulta.
Retrieval (Recuperação): aqui se utiliza técnicas de similaridade de vetores para encontrar documentos ou passagens mais relevantes para responder a uma consulta.
Generation (Geração): por fim, com as passagens mais relevantes recuperadas, a tarefa do gerador é produzir uma resposta final, sintetizando e expressando essa informação em linguagem natural.
Prosseguindo com a palestra, apresentei o LangChain.js, um framework open-source para desenvolver aplicações alimentadas por modelos de linguagem.
O LangChain.js nos possibilita:
1. Facilidade de Uso: com uma API simples e intuitiva, tornando a biblioteca acessível tanto para desenvolvedores experientes quanto para iniciantes no desenvolvimento de aplicações inteligentes com uso de modelos de linguagem.
2. Desenvolvimento Modular: com componentes e estruturas modulares que permite aos desenvolvedores adicionar e remover componentes conforme necessário, facilitando a customização e a manutenção do código.
3. Suporte para Diferentes Modelos de Linguagem: compatível com vários modelos de linguagem, como: GPT-3, GPT-4, GPT-4o, BERT, Claude, Phi-3 e muitos outros.
4. Componentes: ferramentas combináveis e integrações para trabalhar com modelos de linguagem. Os componentes são modulares e fáceis de usar, esteja você usando a estrutura do LangChain.js ou não.
5. Composição de cadeias (os famosos chains): permite a criação uma sequências de operações ou 'cadeias' onde a saída de um modelo de linguagem que pode ser usada como entrada para outro, possibilitando fluxos de trabalho complexos.
6. Memória: há também suporte de memória às cadeias (chains) para que se possa manter o contexto das interações. O que permite um diálogo
mais natural e coerente com os modelos de linguagem.
Há muitas outras vantagens ao fazer uso do LangChain.js. Recomendo a leitura da documentação oficial para saber mais sobre o framework: LangChain.js Documentation
Por fim, mostrei como podemos integrar o RAG, Azure OpenAI e LangChain.js para criar aplicações inteligentes com JavaScript com um exemplo prático:
O exemplo prático consiste numa aplicação Serverless AI Chat com RAG usando LangChain.js.
E, conta com as seguintes tecnologias:
Vamos entender um pouco sobre a arquitetura da aplicação:
1. Azure Blob Storage:
documents-get.ts
2. Serverless API:
3. Azure CosmosDB for MongoDB vCore:
4. Azure OpenAI Service:
5. Web App:
6. PDF:
Abaixo, podemos ver a aplicação em execução:
Recomendo que todos vocês acessem o repositório do projeto para saber mais sobre a aplicação e como você pode criar a sua própria aplicação inteligente com JavaScript.
Link repositório da Aplicação: Serverless AI Chat with RAG using LangChain.js - branch mongodb-vcore
.
Aproveite também deixe a sua estrela no repositório! Pois, isso ajuda a comunidade a encontrar o projeto.
Novamente, se você não assistiu a palestra na íntegra, acesse:
Nesse artigo, compartilhei um pouco de como foi a palestra dada. Aprendemos sobre o que é RAG, a arquitetura RAG, o que é LangChain.js e como integrar RAG, Azure OpenAI e LangChain.js para criar aplicações inteligentes com JavaScript.
Estamos preparando uma sequencia de vídeos explicando com mais detalhes o código desenvolvido para a aplicação. E, sem contar com um workshop baseado nessa aplicação. Então, fique ligado nas novidades futuras!
Sempre é bom ter mais recursos para aprender mais sobre o assunto. Aqui estão alguns links que podem te ajudar:
Curso Grátis - Criar APIs sem servidor com o Azure Functions
Curso Grátis - Publicar uma API dos Aplicativos Web Estáticos do Azure
E, se você gostou do artigo, compartilhe com seus amigos e colegas de trabalho. E, se tiver alguma dúvida ou sugestão, deixe nos comentários. Ficarei feliz em responder!
E, no próximo artigo, estarei explicando detalhadamente como usar essa aplicação passo a passo! Nos vemos!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.