Framework Python que adiciona proteções de entrada e saída a aplicações com LLMs e gera dados estruturados validados a partir das respostas dos modelos.
567-labs/instructor
Biblioteca Python que extrai dados estruturados e validados com Pydantic de LLMs de vários provedores, com novas tentativas automáticas em caso de falha na validação.
- Estrelas
- 14,046
- Forks
- 1,330
- Issues abertas
- 214
- Último commit
- anteontem
O que é?
O Instructor extrai dados tipados das respostas de LLMs, permitindo definir o formato de saída desejado com um modelo Pydantic. Em vez de escrever schemas JSON manualmente e analisar texto bruto, você passa um response_model para o cliente e recebe de volta um objeto Python validado.
A biblioteca encapsula as APIs de vários provedores, incluindo OpenAI, Anthropic, Google, Ollama e Groq, em uma única interface criada com from_provider. Quando a validação falha, o Instructor envia a mensagem de erro de volta ao modelo e tenta novamente, até o limite configurável de max_retries. Também oferece suporte a objetos parciais em streaming e a modelos aninhados.
Além de Python, a documentação do projeto lista implementações em TypeScript, Ruby, Go, Elixir e Rust.
Recursos principais
- 01Define schemas de saída com modelos Pydantic e retorna objetos validados.
- 02Funciona com vários provedores de LLM por meio de uma única interface from_provider.
- 03Repete automaticamente as tentativas quando a validação falha, enviando o erro de volta ao modelo.
- 04Transmite objetos parciais conforme são gerados.
- 05Oferece suporte a modelos aninhados e listas de modelos.
Casos de uso
- Extrair campos como nomes, datas ou preços de texto livre.
- Transformar as respostas de LLMs em dados tipados para o código da aplicação que os processa.
- Criar pipelines que precisam de JSON confiável gerado por modelos, sem análise manual.
Início rápido
- 1
Instale a biblioteca com pip
pip install instructor - 2
Crie um cliente para seu provedor e extraia um modelo Pydantic
Antes de usar
- É necessária uma chave de API ou um provedor de LLM em execução, como OpenAI ou Anthropic, ou um servidor Ollama local.
Tópicos
Perguntas frequentes
- O que é instructor?
- Biblioteca Python que extrai dados estruturados e validados com Pydantic de LLMs de vários provedores, com novas tentativas automáticas em caso de falha na validação. O Instructor extrai dados tipados das respostas de LLMs, permitindo definir o formato de saída desejado com um modelo Pydantic. Em vez de escrever schemas JSON manualmente e analisar texto bruto, você passa um response_model para o cliente e recebe de volta um objeto Python validado.
- instructor é gratuito? Qual é a licença?
- instructor é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
- instructor ainda é mantido?
- Manutenção ativa. O último commit de instructor foi em 20 de out. de 2026.
- Para que posso usar instructor?
- Extrair campos como nomes, datas ou preços de texto livre. Transformar as respostas de LLMs em dados tipados para o código da aplicação que os processa. Criar pipelines que precisam de JSON confiável gerado por modelos, sem análise manual.
- Como instalar instructor?
- Instale a biblioteca com pip: pip install instructor Crie um cliente para seu provedor e extraia um modelo Pydantic
- Onde consigo instructor?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/567-labs/instructor
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Uma biblioteca rápida de serialização e validação para Python que codifica e decodifica JSON, MessagePack, YAML e TOML usando anotações de tipo padrão.
SQLModel é uma biblioteca Python para trabalhar com bancos de dados SQL usando classes Python, construída sobre Pydantic e SQLAlchemy e projetada para ser usada com FastAPI.
Biblioteca Python que restringe as saídas de LLMs durante a geração para corresponderem a um tipo, regex, JSON schema ou gramática especificados.
Uma codificação compacta e legível por humanos para dados JSON, criada para reduzir o uso de tokens ao enviar dados estruturados em prompts para LLMs.
Um framework Python para criar aplicações e agentes com LLMs, com interfaces padronizadas para modelos, embeddings, vector stores e integrações de terceiros.