Um sistema de agentes inteligentes que permite criar salas de conversação, fazer perguntas e processar áudio usando IA. O projeto consiste em uma API backend em Fastify com PostgreSQL e uma aplicação web frontend em React.
- Criação de Salas: Crie salas de conversação para organizar suas interações
- Sistema de Perguntas: Faça perguntas e receba respostas inteligentes
- Processamento de Áudio: Upload e processamento de arquivos de áudio
- Interface Moderna: Interface web responsiva e intuitiva
- Integração com IA: Utiliza Google Gemini para processamento de conteúdo
- Fastify - Framework web rápido para Node.js
- PostgreSQL - Banco de dados relacional com pgvector
- Drizzle ORM - ORM TypeScript-first
- Zod - Validação de schemas
- Google Gemini AI - Processamento de IA
- TypeScript - Linguagem de programação
- React 19 - Biblioteca JavaScript para interfaces
- Vite - Build tool e dev server
- Tailwind CSS - Framework CSS utilitário
- React Router - Roteamento
- React Query - Gerenciamento de estado do servidor
- React Hook Form - Formulários
- Radix UI - Componentes acessíveis
- Docker Compose - Orquestração de containers
- PostgreSQL + pgvector - Banco de dados com suporte a vetores
nwl-agents/
├── api/ # Backend API
│ ├── src/
│ │ ├── db/ # Configuração do banco de dados
│ │ ├── http/routes/ # Rotas da API
│ │ └── services/ # Serviços (IA, etc.)
│ └── package.json
├── web/ # Frontend React
│ ├── src/
│ │ ├── components/ # Componentes React
│ │ ├── pages/ # Páginas da aplicação
│ │ └── http/ # Hooks para API
│ └── package.json
└── docker-compose.yml # Configuração Docker
- Node.js 18+
- Docker e Docker Compose
- PostgreSQL (via Docker)
git clone <url-do-repositorio>
cd nwl-agents# Inicie o PostgreSQL com Docker
docker-compose up -dCrie um arquivo .env na pasta api/:
DATABASE_URL=postgresql://docker:docker@localhost:5432/agents
PORT=3333
GOOGLE_API_KEY=sua-chave-api-do-google# Backend
cd api
npm install
# Frontend
cd ../web
npm installcd api
npm run db:generete# Backend (em um terminal)
cd api
npm run dev
# Frontend (em outro terminal)
cd web
npm run dev- Acesse a aplicação: Abra
http://localhost:5173no navegador - Crie uma sala: Use o formulário na página inicial para criar uma nova sala
- Faça perguntas: Dentro da sala, você pode fazer perguntas e receber respostas
- Processe áudio: Use a funcionalidade de upload de áudio para processar arquivos
npm run dev # Inicia o servidor em modo desenvolvimento
npm run start # Inicia o servidor em produção
npm run db:seed # Executa o seed do banco de dados
npm run db:generete # Gera migrações do Drizzlenpm run dev # Inicia o servidor de desenvolvimento
npm run build # Build para produção
npm run preview # Preview do buildO projeto utiliza PostgreSQL com as seguintes tabelas principais:
- rooms: Salas de conversação
- questions: Perguntas e respostas
- audio_chunks: Chunks de áudio processados
GET /health- Health checkGET /rooms- Lista todas as salasPOST /rooms- Cria uma nova salaGET /rooms/:id/questions- Lista perguntas de uma salaPOST /rooms/:id/questions- Cria uma nova perguntaPOST /upload-audio- Upload de arquivo de áudio
- Faça um fork do projeto
- Crie uma branch para sua feature (
git checkout -b feature/AmazingFeature) - Commit suas mudanças (
git commit -m 'Add some AmazingFeature') - Push para a branch (
git push origin feature/AmazingFeature) - Abra um Pull Request
Este projeto está sob a licença ISC. Veja o arquivo LICENSE para mais detalhes.