Código executável em Python demonstrando como extrair dados de texto não estruturado com validação de esquema rígido via Pydantic.


🗺️ Fluxo de Processamento

flowchart LR
    EMAIL["E-mail Desestruturado: 'Olá, sou o Dr. Roberto, CRM 44921-SP, meu telefone é (11) 98888-7777...'"]
    --> PARSER["LLM com Schema Pydantic"]
    PARSER --> INSTANCE["MedicoLead(nome='Roberto', crm='44921-SP', estado='SP')"]
    INSTANCE --> DB[("Gravação Segura no PostgreSQL")]

    style EMAIL fill:#ede7f6,stroke:#512da8,stroke-width:2px
    style PARSER fill:#fff3e0,stroke:#ff9800,stroke-width:2px
    style INSTANCE fill:#e8f5e9,stroke:#4caf50,stroke-width:2px
    style DB fill:#00897b,stroke:#004d40,stroke-width:2px,color:#ffffff

📄 Código de Demonstração (pydantic_structured_demo.py)

from pydantic import BaseModel, Field
import json

class LeadContato(BaseModel):
    nome_completo: str
    cargo: str
    empresa: str
    score_interesse: int = Field(..., ge=1, le=10, description="Nota de 1 a 10 calculada pela urgência")
    temas_interesse: list[str]

def processar_lead_llm():
    # Simulação da resposta JSON devolvida pelo LLM via Structured Outputs
    llm_json_output = """
    {
        "nome_completo": "Mariana Souza",
        "cargo": "Head de Infraestrutura Cloud",
        "empresa": "Fintech PagSeguro",
        "score_interesse": 9,
        "temas_interesse": ["Kubernetes", "Observabilidade", "FinOps"]
    }
    """

    print("=== Validação Estrita de Saídas com Pydantic ===")
    dados = json.loads(llm_json_output)
    lead = LeadContato(**dados)

    print("Objeto validado com tipagem segura:")
    print(f"  Nome: {lead.nome_completo}")
    print(f"  Cargo: {lead.cargo} @ {lead.empresa}")
    print(f"  Score: {lead.score_interesse}/10 (Alta Prioridade)")
    print(f"  Tópicos: {', '.join(lead.temas_interesse)}")

if __name__ == "__main__":
    processar_lead_llm()

🚀 Saída Esperada no Terminal / Execução

=== Validação Estrita de Saídas com Pydantic ===
Objeto validado com tipagem segura:
  Nome: Mariana Souza
  Cargo: Head de Infraestrutura Cloud @ Fintech PagSeguro
  Score: 9/10 (Alta Prioridade)
  Tópicos: Kubernetes, Observabilidade, FinOps

🧭 Navegação Rápida

| 📖 Teoria | 📊 Slides | 🧠 Quiz | 💻 Exemplos | 🧩 Exercícios | | :— | :— | :— | :— | :— | | Ler Tópico | Ver Slides | Fazer Quiz | Ver Código | Praticar |