Introdução geral
O Instructor é uma biblioteca Python popular projetada para processar a saída estruturada de grandes modelos de linguagem (LLMs). Criada com base no Pydantic, ela oferece uma API simples, transparente e fácil de usar para gerenciar a validação de dados, novas tentativas e respostas de streaming. A Instructor tem mais de um milhão de downloads por mês e é amplamente usada em vários fluxos de trabalho de LLM. A biblioteca é compatível com várias linguagens de programação, incluindo Python, TypeScript, Ruby, Go e Elixir, e se integra perfeitamente a uma ampla gama de provedores de LLM, indo além do suporte da OpenAI.
Leitura recomendada:Métodos de saída de dados estruturados de modelos grandes: uma lista selecionada de recursos JSON do LLMeContornos: gerar saída de texto estruturado por meio de expressões regulares, JSON ou modelos PydanticeFunções de IA: um serviço (API) para converter conteúdo de entrada em saídas estruturadas.
Lista de funções
- modelo de respostaUso do modelo Pydantic para definir a estrutura da saída do LLM.
- Gerenciamento de novos testesConfigure facilmente o número de novas tentativas para uma solicitação.
- Validação de dadosResposta do LLM: Certifique-se de que a resposta do LLM seja a esperada.
- Suporte a streamingLidar facilmente com listas e respostas parciais.
- Back-end flexívelIntegração perfeita com vários provedores de LLM.
- Suporte a vários idiomasSuporte a várias linguagens de programação, como Python, TypeScript, Ruby, Go e Elixir.
Usando a Ajuda
Processo de instalação
Para instalar o Instructor, basta executar o seguinte comando:
pip install -U instructor
Uso básico
Aqui está um exemplo simples que mostra como usar o Instructor para extrair dados estruturados da linguagem natural:
importar instrutor
from pydantic import BaseModel
from openai import OpenAI
# Defina a estrutura de saída necessária
class UserInfo(BaseModel).
nome: str
age: int
# Inicialize o cliente OpenAI e integre-o ao Instructor.
client = instructor.from_openai(OpenAI())
# Extrair dados estruturados da linguagem natural
user_info = client.chat.completions.create(
model="gpt-4o-mini",
response_model=UserInfo,
messages=[{"role": "user", "content": "John Doe is 30 years old."}]
)
print(user_info.name) # Output: John Doe
print(user_info.age) # Saída: 30 anos de idade.
Uso de ganchos
O Instructor oferece um sistema avançado de hooks que permite interceptar e registrar em vários estágios do processo de interação com o LLM. Veja abaixo um exemplo simples que mostra como usar os hooks:
importar instrutor
from openai import OpenAI
from pydantic import BaseModel
class UserInfo(BaseModel).
name: str
name: str
# Inicialize o cliente OpenAI e integre-o ao Instructor.
client = instructor.from_openai(OpenAI())
# Registre as interações usando ganchos
client.add_hook("before_request", lambda request: print(f "Request: {request}"))
client.add_hook("after_response", lambda response: print(f "Response: {response}"))
# Extrair dados estruturados da linguagem natural
user_info = client.chat.completions.create(
model="gpt-4o-mini",
response_model=UserInfo,
messages=[{"role": "user", "content": "Jane Doe is 25 years old."}]
)
print(user_info.name) # Output: Jane Doe
print(user_info.age) # Saída: 25 anos de idade.
Uso avançado
O Instructor também oferece suporte à integração com outros provedores de LLM e oferece opções de configuração flexíveis. Você pode personalizar o número de novas tentativas de solicitação, as regras de validação de dados e o tratamento de respostas de streaming, conforme necessário.