Pergunte, e a IA responde.
📃 Sobre • 🛠️ Tecnologias • ✨ Funcionalidades • 🚀 Como rodar • 🤖 IA & Áudio
O let me ask é uma aplicação web de perguntas e respostas voltada para aulas e transmissões ao vivo, e este repositório contém a API REST que a alimenta. O apresentador grava um áudio com o conteúdo da aula ou explicação, e os participantes podem fazer perguntas que são respondidas automaticamente pelo Google Gemini com base no que foi dito na gravação — evitando que dúvidas já abordadas no conteúdo precisem ser respondidas manualmente. O backend é construído com Node.js, Fastify, Drizzle ORM e PostgreSQL.
- 🟩 Node.js — Ambiente de execução JavaScript server-side.
- ⚡ Fastify — Framework web focado em performance e baixo overhead.
- 🟦 TypeScript — Tipagem estática e segurança em tempo de desenvolvimento.
- 🤖 Google Gemini — Transcrição de áudio, geração de embeddings e respostas contextuais com IA.
- 🗃️ Drizzle ORM — ORM moderno e type-safe para TypeScript.
- 🐘 PostgreSQL — Banco de dados relacional para persistência dos dados.
- 🐳 Docker — Containerização do banco de dados para ambiente reproduzível.
- 📦 @fastify/multipart — Recebimento de arquivos de áudio via upload multipart.
- 🛡️ Zod — Validação e parsing de schemas com inferência de tipos.
- 🔍 Biome — Linting e formatação de código de alta performance.
- 🎙️ Gravação de áudio diretamente no navegador
- 🤖 Transcrição automática do áudio com Google Gemini
- 💬 Geração de respostas contextuais baseadas no conteúdo do áudio
- 🔍 Geração de embeddings para análise de similaridade entre perguntas
- ❓ Criação e listagem de perguntas por sala
- 🏠 Criação e gerenciamento de salas
- 🛡️ Validação de dados com Zod
- 🟩 Node.js 18+
- 📦 npm
- 🐳 Docker
-
Clone o repositório:
git clone https://github.com/joschonarth/let-me-ask-server.git
-
Acesse a pasta do projeto:
cd let-me-ask-server -
Instale as dependências:
npm install
-
Configure as variáveis de ambiente copiando o arquivo de exemplo:
cp .env.example .env
Em seguida, abra o arquivo
.enve preencha as variáveis:DATABASE_URL=postgresql://docker:docker@localhost:5432/letmeask GEMINI_API_KEY=sua_gemini_api_key
Suba o container do PostgreSQL com Docker:
docker compose up -dGere o client do Prisma:
npm run db:generateExecute as migrations para criar as tabelas:
npm run db:migrateOpcionalmente, popule o banco com dados de seed:
npm run db:seedInicia o servidor em modo de desenvolvimento:
npm run devO servidor estará disponível em http://localhost:3333.
O projeto utiliza o Google Gemini como motor de inteligência artificial para processar as perguntas em áudio enviadas pelos participantes.
O fluxo de processamento funciona da seguinte forma:
- O áudio gravado no navegador é enviado para a API via upload multipart;
- O Gemini transcreve o áudio para texto;
- São gerados embeddings da transcrição para análise de similaridade com perguntas anteriores;
- Com base no conteúdo do áudio gravado e no histórico de perguntas, o Gemini gera uma resposta contextual e inteligente.
Se curtiu o projeto, deixe uma ⭐ aqui no GitHub — isso ajuda muito!
Feito com ♥ por João Otávio Schonarth