📚 Pré-requisitos Teóricos: este projeto aplica conceitos ensinados em Guia de Inteligência Artificial. Recomendado revisar antes de começar.

🤖 Chatbot Corporativo com Streaming SSE & Guardrails

v1.0 — Engenharia de Software & Práticas Profissionais

Trilha de Especialização Pedagógica


🎯 Objetivo & Escopo do Projeto

Interface conversacional com streaming de respostas (Server-Sent Events), controle de custos de tokens e guardrails de segurança anti-jailbreak e anti-alucinação.


🛠️ Código de Exemplo da Implementação

def stream_resposta(prompt: str):
    tokens = ["Processando ", "resposta ", "com ", "streaming ", "e ", "guardrails!"]
    for t in tokens:
        print(t, end="", flush=True)
    print()

if __name__ == "__main__":
    stream_resposta("Ola, como posso ajudar?")


🚀 Como Executar no Laboratório

1. Abra o terminal na pasta deste projeto

No seu editor/IDE, abra a pasta deste projeto (File > Open Folder) ou navegue via terminal:

cd ia_03_enterprise_chatbot_guardrails

2. Execute a aplicação ou testes

pip install -r requirements.txt
python app.py

[!TIP] Dica para execução a partir da raiz do repositório: Se você abriu o repositório completo no VS Code, basta navegar até a pasta antes de executar: cd catalogo_projetos/ia_03_enterprise_chatbot_guardrails


🏛️ Arquitetura Visual & Engenharia do Sistema

A visualização arquitetural abaixo detalha a separação de responsabilidades e o fluxo de dados implementado na subpasta ai-python/:

Arquitetura da Aplicação

flowchart TD
    subgraph Entrada["Camada de Entrada & CLI"]
        IN1["Interface de Comando / API"] --> IN2["Parser & Sanitização"]
    end
    subgraph Dominio["Camada de Domínio & Regras"]
        DM1["Modelos de Domínio"] --> DM2["Processamento Algorítmico"]
    end
    subgraph Armazenamento["Persistência & Recursos"]
        ST1["Banco de Dados / Arquivo"] --> ST2["Transações ACID & Logs"]
    end
    subgraph Qualidade["Validação & Qualidade"]
        QA1["Testes Automatizados"] --> QA2["Checkpoints CP-01..05 PASS"]
    end

    Entrada --> Dominio
    Dominio --> Armazenamento
    Armazenamento --> Qualidade

    style Entrada fill:#e3f2fd,stroke:#1976d2,stroke-width:1.5px
    style Dominio fill:#fffde7,stroke:#fbc02d,stroke-width:1.5px
    style Armazenamento fill:#e8f5e9,stroke:#388e3c,stroke-width:1.5px
    style Qualidade fill:#f3e5f5,stroke:#7b1fa2,stroke-width:1.5px

🎯 Engenharia de Requisitos & Modelagem Formal

👤 User Stories (Histórias de Usuário)

ID Persona História de Usuário Critério de Aceite Prioridade
US-01 Gerente de Atendimento Desejo streaming de tokens em tempo real via Server-Sent Events (SSE) Entrega de texto progressivo gerando sensação imediata de digitação Alta
US-02 Oficial de Conformidade (DPO) Desejo guardrails de entrada filtrando dados sensíveis (CPF, senhas) Mecanismo de mascaramento e bloqueio antes de enviar dados ao modelo Alta
US-03 Especialista em Segurança Desejo guardrails de saída prevenindo vazamento de segredos e ofensas Auditoria de resposta em tempo de execução com bloqueio automático Alta
US-04 Engenheiro de DevOps Desejo métricas de latência TTFT (Time to First Token) e throughput Registro de telemetria com tempos de resposta e contagem de tokens Média
US-05 Auditor de IA Desejo testes de invasão e jailbreak contra as diretrizes do sistema Suíte de testes de estresse validando eficácia dos filtros de guardrail Média

⚙️ Requisitos Funcionais (RF)

ID Descrição do Requisito Criticidade
RF-01 Servidor HTTP assíncrono com suporte a streaming Server-Sent Events Alta
RF-02 Camada de Guardrails de entrada com detecção de PII e sanitização Alta
RF-03 Camada de Guardrails de saída com checagem de toxicidade e alucinação Alta
RF-04 Emissor de métricas e telemetria por sessão de chat Média
RF-05 Bateria de testes automatizados com ataques sintéticos de prompt injection Média

🛡️ Requisitos Não-Funcionais (RNF)

ID Especificação Arquitetural Criticidade
RNF-01 TTFT (Time to First Token) inferior a 300ms em conexões locais Alta
RNF-02 Conformidade com diretrizes da LGPD/GDPR sobre proteção de dados Alta
RNF-03 Capacidade de atender múltiplas conexões simultâneas via ASGI Média
RNF-04 Arquitetura baseada em microserviço leve e desacoplado Média
RNF-05 Isolamento dos fontes na pasta ai-python/ Alta

🔗 Matriz de Rastreabilidade (RTM)

User Story Requisito Funcional Requisito Não-Funcional Módulo / Artefato de Código Status de Homologação
US-01 RF-01 RNF-01, RNF-03 ai-python/streaming_server.py Testado
US-02 RF-02 RNF-02, RNF-04 ai-python/streaming_server.py Testado
US-03 RF-03 RNF-02, RNF-04 ai-python/streaming_server.py Testado
US-04 RF-04 RNF-01, RNF-03 ai-python/streaming_server.py Testado
US-05 RF-05 RNF-02, RNF-05 ai-python/streaming_server.py Testado

🏁 Checkpoints de Qualidade & Homologação

Checkpoint Escopo da Validação Artefato Verificado Status
CP-01 Inicialização & Estrutura de Pastas ai-python/ PASS ✅
CP-02 Modelagem de Domínio & Regras Centrais Domain Models PASS ✅
CP-03 Persistência & Operações de I/O Storage / Data PASS ✅
CP-04 Interface de Operação & Usabilidade CLI / GUI / API PASS ✅
CP-05 Homologação com Suíte de Testes Test Suite PASS ✅