À propos du projet
Instructor est une bibliothèque Python conçue pour simplifier l'extraction de données structurées à partir de grands modèles de langage (LLMs). Elle s'intègre à Pydantic pour fournir des sorties validées et typées sans nécessiter de parsing JSON manuel ni de gestion d'erreurs. Les développeurs définissent un modèle Pydantic représentant la structure souhaitée, puis le transmettent à l'interface client d'Instructor, qui gère automatiquement la génération du schéma, la validation des réponses et les tentatives de nouvelle soumission en cas d'échec de validation.
La bibliothèque prend en charge plusieurs fournisseurs de LLMs, dont OpenAI, Anthropic, Google Gemini, Ollama et Groq — le tout via une API cohérente. Elle offre également des fonctionnalités avancées telles que le streaming de résultats partiels pendant la génération, l'extraction d'objets imbriqués et des nouvelles tentatives automatiques avec retour d'information pour les sorties invalides.
Instructor est léger comparé à des frameworks comme LangChain ou LlamaIndex, se concentrant exclusivement sur l'extraction structurée. Il est utilisé en production par plus de 100 000 développeurs et entreprises, notamment des équipes chez OpenAI, Google, Microsoft et AWS. Le projet compte plus de 10K étoiles sur GitHub et plus de 3 millions de téléchargements mensuels.
Au-delà de Python, Instructor propose des implémentations officielles en TypeScript, Ruby, Go, Elixir et Rust. La documentation, les exemples et le soutien communautaire sont disponibles via son site web et son serveur Discord. Pour les flux de travail d'agents plus complexes, l'équipe recommande PydanticAI, qui s'appuie sur la base d'Instructor avec des fonctionnalités supplémentaires en matière d'outillage et d'observabilité.
L'installation est simple via pip, uv ou Poetry. Aucune configuration complexe requise — il suffit de définir votre modèle et d'extraire des données structurées de manière fiable à partir d'entrées en langage naturel.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.