Skip to content

ruan-math/Model-GPT-enterprise

Repository files navigation

🤖 Assistente Virtual CAGE-RS - GPT Enterprise

Sistema inteligente de atendimento automatizado desenvolvido para a Controladoria e Auditoria-Geral do Estado do Rio Grande do Sul (CAGE-RS), integrando tecnologias avançadas de IA generativa com Azure OpenAI.

Next.js TypeScript Azure License

📋 Visão Geral

O Assistente Virtual CAGE-RS é uma solução enterprise de chatbot inteligente que utiliza arquitetura RAG (Retrieval-Augmented Generation) avançada para fornecer respostas precisas e contextualizadas sobre:

  • Convênios - Formalização, execução e prestação de contas
  • Habilitação - Processos e requisitos para municípios
  • Auditoria - Procedimentos, normas e regulamentos
  • Controle Interno - Orientações técnicas e administrativas

🎯 Principais Características

  • RAG Avançado: Sistema de recuperação e geração aumentada por documentos oficiais
  • LLM Judge: Avaliação automática de qualidade das respostas em tempo real
  • Cache Inteligente: Sistema de cache semântico para respostas rápidas
  • Múltiplos Perfis: Adaptação de linguagem para cidadãos, servidores e municípios
  • Métricas Avançadas: Monitoramento completo de performance e qualidade
  • Reranking Semântico: Azure AI Search com reordenação inteligente de resultados

🏗️ Arquitetura

┌─────────────────────────────────────────────────────────────┐
│                    Interface Next.js 14                      │
│                  (React + TypeScript + Tailwind)             │
└─────────────────────┬───────────────────────────────────────┘
                      │
┌─────────────────────▼───────────────────────────────────────┐
│                Enhanced RAG Service                          │
│  ┌──────────────┐  ┌──────────────┐  ┌──────────────┐      │
│  │ Smart Cache  │  │  LLM Judge   │  │   Metrics    │      │
│  │   Service    │  │   Service    │  │   Service    │      │
│  └──────────────┘  └──────────────┘  └──────────────┘      │
└─────────────────────┬───────────────────────────────────────┘
                      │
┌─────────────────────▼───────────────────────────────────────┐
│              Azure Cloud Infrastructure                      │
│  ┌──────────────┐  ┌──────────────┐  ┌──────────────┐      │
│  │ Azure OpenAI │  │ AI Search    │  │  Cosmos DB   │      │
│  │  (GPT-4)     │  │ (Semantic)   │  │  (Storage)   │      │
│  └──────────────┘  └──────────────┘  └──────────────┘      │
└──────────────────────────────────────────────────────────────┘

🚀 Tecnologias

Frontend

  • Next.js 14 - Framework React com App Router
  • TypeScript 5 - Tipagem estática
  • Tailwind CSS 4 - Estilização moderna
  • Radix UI - Componentes acessíveis
  • Framer Motion - Animações fluidas

Backend & IA

  • Azure OpenAI - GPT-4 para geração de respostas
  • LangChain - Orquestração de LLMs
  • Azure AI Search - Busca semântica e reranking
  • Azure Cosmos DB - Banco de dados NoSQL
  • MSAL (Microsoft Authentication Library) - Autenticação segura

Serviços Especializados

  • Enhanced RAG Service - Recuperação contextual avançada
  • LLM Judge Service - Avaliação automática de qualidade
  • Intelligent Cache Service - Cache semântico otimizado
  • Metrics Service - Análise de performance e qualidade
  • Citation Service - Rastreamento de fontes

📦 Instalação

Pré-requisitos

  • Node.js >= 18.0.0
  • npm >= 8.0.0
  • Conta Azure com serviços configurados:
    • Azure OpenAI
    • Azure AI Search
    • Azure Cosmos DB
    • Azure AD (para autenticação)

Passos de Instalação

  1. Clone o repositório
git clone https://github.com/ruan-math/SEFAZ-RS-GPT-Enterprise.git
cd SEFAZ-RS-GPT-Enterprise
  1. Instale as dependências
npm install
  1. Configure as variáveis de ambiente

Crie um arquivo .env.local baseado no env.example:

cp env.example .env.local

Configure as seguintes variáveis:

# Azure OpenAI
AZURE_OPENAI_API_KEY=your_openai_key
AZURE_OPENAI_ENDPOINT=your_openai_endpoint
AZURE_OPENAI_DEPLOYMENT_NAME=your_deployment_name

# Azure AI Search
AZURE_SEARCH_ENDPOINT=your_search_endpoint
AZURE_SEARCH_API_KEY=your_search_key
AZURE_SEARCH_INDEX_NAME=your_index_name

# Azure Cosmos DB
NEXT_PUBLIC_COSMOSDB_ENDPOINT=your_cosmosdb_endpoint
NEXT_PUBLIC_COSMOSDB_PRIMARY_KEY=your_cosmosdb_key
NEXT_PUBLIC_COSMOSDB_DATABASE=cagesefaz-db

# Azure AD Authentication
NEXT_PUBLIC_AZURE_CLIENT_ID=your_client_id
NEXT_PUBLIC_AZURE_TENANT_ID=your_tenant_id
NEXT_PUBLIC_APP_URL=http://localhost:3000
  1. Execute em modo desenvolvimento
npm run dev

Acesse http://localhost:3000

🎮 Uso

Interface do Chatbot

O sistema possui uma interface moderna e intuitiva que permite:

  • Conversas contextuais - Histórico completo de mensagens
  • Referências automáticas - Citações dos documentos utilizados
  • Feedback direto - Avaliação de respostas (👍/👎)
  • Modo adaptativo - Respostas concisas ou detalhadas

Tipos de Usuário

O sistema adapta as respostas conforme o perfil:

  • Cidadãos - Linguagem simples e orientações práticas
  • Servidores Públicos - Aspectos normativos e procedimentais
  • Municípios - Informações técnicas sobre convênios e prestação de contas

Exemplo de Consulta

Usuário: Como funciona a habilitação de municípios para receber convênios?

Assistente: Prezado(a),

A habilitação de municípios para receber convênios exige o cumprimento
de requisitos específicos estabelecidos pela CAGE-RS...

[Resposta detalhada com citações]

Fonte: Manual de Habilitação de Municípios - CAGE-RS

Atenciosamente,
CAGE-RS

📊 Funcionalidades Avançadas

1. LLM Judge - Avaliação Automática

Sistema que avalia cada resposta em segundo plano usando critérios:

  • Relevância (0-1)
  • Precisão (0-1)
  • Completude (0-1)
  • Qualidade de citações (0-1)
// Resultado automático armazenado no Cosmos DB
{
  quality: "excellent" | "good" | "fair" | "poor",
  confidence: 0.95,
  scores: {
    relevance: 0.92,
    accuracy: 0.98,
    completeness: 0.90,
    citationQuality: 0.95
  }
}

2. Cache Inteligente

  • Cache semântico baseado em similaridade de consultas
  • TTL configurável (padrão: 24h)
  • Redução de até 70% no tempo de resposta para consultas similares

3. Métricas em Tempo Real

Dashboard com métricas consolidadas:

  • Taxa de acerto do cache
  • Tempo médio de resposta
  • Qualidade média das respostas
  • Taxa de satisfação do usuário
  • Alertas de performance

4. Azure Semantic Reranking

Reordenação inteligente de documentos usando Azure AI Search:

  • Top 50 documentos recuperados
  • Top 10 reordenados semanticamente
  • Melhoria de 30-40% na relevância

🔧 Scripts Disponíveis

# Desenvolvimento com Turbo
npm run dev

# Build de produção
npm run build

# Iniciar em produção
npm start

# Linting
npm run lint
npm run lint:style

# Testes LLM Judge
npm run test:llm-judge
npm run verify:llm-judge

# CLI de gerenciamento
npm run app

🗂️ Estrutura do Projeto

├── app/                          # Next.js App Router
│   ├── api/                      # API Routes
│   │   ├── chat/                 # Endpoints de chat
│   │   ├── conversations/        # Gerenciamento de conversas
│   │   ├── feedback/             # Sistema de feedback
│   │   └── metrics/              # Métricas e analytics
│   ├── config/                   # Configurações
│   └── metadata.ts               # SEO metadata
│
├── components/                   # Componentes React
│   ├── ui/                       # Componentes de UI base
│   ├── chat/                     # Componentes de chat
│   ├── feedback/                 # Sistema de feedback
│   └── layout/                   # Layout components
│
├── lib/                          # Lógica de negócio
│   └── rag/                      # Sistema RAG
│       ├── services/             # Serviços principais
│       │   ├── enhancedRAGService.ts       # RAG avançado
│       │   ├── llmJudgeService.ts          # Avaliação automática
│       │   ├── intelligentCacheService.ts  # Cache semântico
│       │   ├── metricsService.ts           # Métricas
│       │   ├── azureSearchService.ts       # Busca Azure
│       │   └── citationService.ts          # Citações
│       ├── controllers/          # Controllers
│       ├── prompts/              # System prompts
│       ├── types/                # TypeScript types
│       └── config/               # Configurações RAG
│
├── hooks/                        # React Hooks customizados
├── i18n/                         # Internacionalização
├── interface/                    # Modelos TypeScript
├── public/                       # Assets estáticos
├── scripts/                      # Scripts de teste
│
├── package.json                  # Dependências
├── tsconfig.json                 # Config TypeScript
├── tailwind.config.ts            # Config Tailwind
├── next.config.js                # Config Next.js
└── .gitignore                    # Arquivos ignorados

🔒 Segurança

  • ✅ Autenticação Microsoft (MSAL)
  • ✅ Variáveis de ambiente protegidas
  • ✅ Validação de entrada/saída
  • ✅ Rate limiting implementado
  • ✅ HTTPS obrigatório em produção
  • ✅ Sanitização de dados

📈 Performance

Benchmarks

  • Tempo de resposta médio: 2-4 segundos
  • Cache hit rate: 60-70%
  • Qualidade média (LLM Judge): 0.85-0.95
  • Taxa de satisfação: 90%+

Otimizações

  • Server-side rendering (SSR)
  • Streaming de respostas
  • Lazy loading de componentes
  • Image optimization
  • Bundle splitting

🧪 Testes

# Testar LLM Judge
npm run test:llm-judge

# Verificar salvamentos
npm run verify:llm-judge

📝 Variáveis de Ambiente

Referência completa das variáveis necessárias:

Variável Descrição Obrigatório
AZURE_OPENAI_API_KEY Chave API Azure OpenAI
AZURE_OPENAI_ENDPOINT Endpoint Azure OpenAI
AZURE_SEARCH_ENDPOINT Endpoint Azure AI Search
AZURE_SEARCH_API_KEY Chave Azure AI Search
NEXT_PUBLIC_COSMOSDB_ENDPOINT Endpoint Cosmos DB
NEXT_PUBLIC_COSMOSDB_PRIMARY_KEY Chave Cosmos DB
NEXT_PUBLIC_AZURE_CLIENT_ID Client ID Azure AD
NEXT_PUBLIC_AZURE_TENANT_ID Tenant ID Azure AD

🚢 Deploy

Azure App Service

  1. Configure o repositório no Azure Portal
  2. Configure as variáveis de ambiente
  3. Azure detectará automaticamente Next.js
  4. Build e deploy automáticos

Configuração do Azure

{
  "buildCommand": "npm run build",
  "startCommand": "npm start",
  "node": "18.x"
}

🤝 Contribuição

Este é um projeto privado desenvolvido para a SEFAZ-RS. Para contribuições internas:

  1. Crie uma branch feature (git checkout -b feature/nova-funcionalidade)
  2. Commit suas mudanças (git commit -m 'Add: nova funcionalidade')
  3. Push para a branch (git push origin feature/nova-funcionalidade)
  4. Abra um Pull Request

📄 Licença

Este projeto é proprietário e confidencial. Uso restrito à SEFAZ-RS e parceiros autorizados.

👤 Autor

Ruan Matheus

🙏 Agradecimentos

  • CAGE-RS - Controladoria e Auditoria-Geral do Estado do Rio Grande do Sul
  • SEFAZ-RS - Secretaria da Fazenda do Rio Grande do Sul
  • Equipe de desenvolvimento e QA

Desenvolvido com ❤️ para modernizar o atendimento público no Rio Grande do Sul

About

O Assistente Virtual de chatbot inteligente que utiliza arquitetura RAG (Retrieval-Augmented Generation) avançada para fornecer respostas precisas e contextualizadas

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages