Projeto full-stack desenvolvido durante a Next Level Week (NLW), um evento online e gratuito da Rocketseat.
O NLW-AGENTS é uma aplicação completa, com back-end e front-end, que funciona como uma plataforma inteligente de perguntas e respostas baseada no conteúdo de aulas. A ideia central é permitir a criação de "salas", onde cada sala corresponde a uma aula específica.
O processo se inicia com o upload do áudio da aula. O back-end, então, utiliza a poderosa API do Google Gemini para processar este áudio, gerar embeddings (representações vetoriais) do conteúdo e armazená-los em um banco de dados PostgreSQL com o auxílio da extensão pgvector.
Quando um usuário faz uma pergunta dentro de uma sala, o sistema utiliza o pgvector para realizar uma busca por similaridade semântica. Ele compara a pergunta feita com os vetores do conteúdo da aula armazenados, encontrando os trechos mais relevantes para fornecer uma resposta precisa e contextualizada.
- Criação de Salas: Ambiente isolado para cada tópico de aula.
- Upload de Áudio: Interface para submeter o áudio da aula a ser analisada.
- Processamento com IA: Geração de embeddings a partir do áudio utilizando a API do Gemini.
- Armazenamento Vetorial: Persistência dos embeddings no PostgreSQL com a extensão pgvector.
- Busca por Similaridade: Sistema de perguntas e respostas que compara a similaridade entre a pergunta e os trechos da aula.
- Interface Intuitiva: Um front-end claro e objetivo para interação do usuário.
- Node.js: Ambiente de execução para o JavaScript no servidor.
- Fastify: Framework web focado em alta performance.
- Prisma: ORM para interação com o banco de dados.
- Zod: Biblioteca para validação de esquemas e tipos.
- PostgreSQL: Banco de dados relacional.
- pgvector: Extensão para PostgreSQL que permite o armazenamento e a busca de vetores.
- Google Gemini API: API de IA para a geração dos embeddings.
- React: Biblioteca para a construção da interface de usuário.
- Vite: Ferramenta de build para o desenvolvimento front-end moderno.
- Tailwind CSS: Framework de CSS para estilização rápida e utilitária.
- Fetch: Cliente HTTP para realizar requisições ao back-end.
- Tanstack/Query: Cliente HTTP para gerenciar requisições ao back-end.
Siga os passos abaixo para configurar e rodar a aplicação em seu ambiente de desenvolvimento.
- Node.js (versão 20.x ou superior)
- NPM ou Yarn
- Docker e Docker Compose
- Uma chave de API válida do Google Gemini
git clone https://github.com/seu-usuario/nlw-agents.git
cd nlw-agents