Pydantic é uma biblioteca Python que usa as dicas de tipo (type hints) padrão para definir modelos de dados e impor esquemas de dados em tempo de execução. Originalmente, as anotações de tipo (type annotations) foram adicionadas ao Python para análise estática, mas sua crescente versatilidade levou a usos mais amplos, incluindo validação em tempo de execução. Construído sobre um núcleo rápido em Rust, ele fornece validação, parsing e serialização de dados de forma eficiente. Embora seja mais conhecido pelo desenvolvimento de APIs web, o Pydantic também se tornou essencial em aplicações de LLM. Nós tipicamente usamos a técnica de saída estruturada de LLMs para gerenciar a natureza imprevisível dos LLMs. Ao definir um esquema de dados rígido, ele atua como uma rede de segurança para a natureza imprevisível da saída do modelo — convertendo respostas de texto de formato livre em objetos Python determinísticos e com tipagem segura (type-safe), como JSON, por exemplo. Essa abordagem, muitas vezes implementada por meio do Pydantic AI ou LangChain, transforma interações com LLMs, potencialmente frágeis, em contratos de dados confiáveis e legíveis por máquina. Nossos times têm usado o Pydantic com sucesso em produção para extrair representações estruturadas de documentos não estruturados, garantindo que a saída esteja em conformidade com uma estrutura válida. Dada sua maturidade, performance e confiabilidade, o Pydantic é agora nossa escolha padrão para aplicações de IA em Python em nível de produção.
Originalmente, as anotações de tipo foram adicionadas ao Python para oferecer suporte à análise estática. No entanto, considerando o quão amplamente as anotações de tipo, e as anotações em geral, são usadas em outras linguagens de programação, era apenas uma questão de tempo antes que as pessoas desenvolvedoras começassem a usar as anotações de tipo do Python para outros fins. pydantic se enquadra nesta categoria. A biblioteca permite que você use anotações de tipo para validação de dados e gerenciamento de configurações em tempo de execução. Quando os dados chegam como, digamos, um documento JSON e precisam ser analisados em uma estrutura Python complexa, pydantic garante que os dados recebidos correspondam aos tipos esperados ou relata um erro caso não correspondam. Embora você possa usar pydantic diretamente, muitas pessoas desenvolvedoras têm o usado como parte do FastAPI, um dos frameworks Python para web mais populares. Na verdade, o uso de pydantic em FastAPI é considerado tão indispensável que uma alteração recentemente proposta para Python, com o objetivo de reduzir o custo de carregamento de código anotado na memória, foi reconsiderada porque teria quebrado o uso de anotações de tipo em tempo de execução.