Sistema de Chat IA escalável e dinâmico, construído com arquitetura de microserviços integrada em um Monorepo profissional. O projeto utiliza Next.js 16 para uma interface de alta performance e FastAPI como motor de processamento de linguagem natural.
- Framework: Next.js 16+ (App Router).
- Estilização: Tailwind CSS v4 (Standard Latest) com suporte nativo a Dark Mode (
dark:). - Linguagem: TypeScript (Tipagem estrita sem falhas).
- ORM: Prisma para persistência de dados em MySQL.
- Segurança: Proxy reverso (
proxy.ts) para chamadas de API e autenticação via JWT.
- Framework: FastAPI (Python 3.12+).
- LLM Provider: Groq Cloud API (Llama 3.3 Engine).
- Streaming: Implementação de Server-Sent Events (SSE) para respostas em tempo real.
- Node.js 20+ / npm.
- Python 3.12+.
- MySQL Server ativo.
Crie um arquivo .env na raiz do projeto (ou dentro de frontend/) seguindo o modelo:
DATABASE_URL="mysql://usuario:senha@localhost:3306/chatbot-py"
JWT_SECRET="sua_chave_secreta_jwt"
NEXT_PUBLIC_API_URL="http://localhost:8000"
GROQ_API_KEY="gsk_sua_chave_aqui"
# Instalação das dependências do Frontend
cd frontend
npm install
# Configuração do Banco de Dados
npx prisma generate
npx prisma migrate dev --name init
# Instalação das dependências do Backend
cd backend
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
Para rodar o projeto em ambiente de desenvolvimento:
- Iniciar Backend:
cd backend
source venv/bin/activate
uvicorn main:app --port 8000 --reload
- Iniciar Frontend:
cd frontend
npm run dev
A estrutura segue um layout minimalista rigoroso:
- Light Mode: Títulos em
text-gray-800, fundosbg-white, bordasborder-gray-200. - Dark Mode: Títulos em
text-gray-50, fundosbg-gray-950, bordasborder-gray-800. - Botões:
bg-gray-800(Light) /bg-gray-50(Dark) com transições suaves de hover.
- Deleção de Conta: O sistema permite a exclusão permanente do usuário e todas as suas threads via transação atômica no banco de dados.
- Middleware: Substituído por arquitetura de
proxy.tsdentro desrc/para compatibilidade com Next.js 16.
Autor:

