PydanticAI : un guide complet pour créer des applications d'IA prêtes pour la production

DEV - 29/12
PydanticAI est un framework Python puissant conçu pour rationaliser le développement de logiciels de production...

PydanticAI est un puissant framework Python conçu pour rationaliser le développement d'applications de production à l'aide de l'IA générative. Il est construit par la même équipe derrière Pydantic, une bibliothèque de validation de données largement utilisée, et vise à apporter la conception innovante et ergonomique de FastAPI au domaine du développement d'applications d'IA. PydanticAI se concentre sur la sécurité des types, la modularité et l'intégration transparente avec d'autres outils Python.

Concepts de base

PydanticAI s'articule autour de plusieurs concepts clés :

Agents

Les agents constituent l'interface principale pour interagir avec les grands modèles linguistiques (LLM). Un agent agit comme un conteneur pour divers composants, notamment :

  • Invites système : instructions pour le LLM, définies sous forme de chaînes statiques ou de fonctions dynamiques.
  • Outils de fonction : fonctions que le LLM peut appeler pour obtenir des informations supplémentaires ou effectuer des actions.
  • Types de résultats structurés : types de données que le LLM doit renvoyer à la fin d'une exécution.
  • Types de dépendances : données ou services que les fonctions d'invite du système, les outils et les validateurs de résultats peuvent utiliser.
  • Modèles LLM : le LLM que l'agent utilisera, qui peut être défini lors de la création de l'agent ou lors de l'exécution.

Les agents sont conçus pour être réutilisables et sont généralement instanciés une seule fois et réutilisés dans l'ensemble d'une application.

Invites système

Les invites système sont des instructions fournies au LLM par le développeur. Ils peuvent être :

  • Invites système statiques : définies lors de la création de l'agent, à l'aide duinvite_systèmeparamètre duAgentconstructeur.
  • Invites système dynamiques : définies par des fonctions décorées avec@agent.system_prompt. Ceux-ci peuvent accéder aux informations d'exécution, telles que les dépendances, via leExécuterContextobjet.

Un seul agent peut utiliser des invites système statiques et dynamiques, qui sont ajoutées dans l'ordre dans lequel elles sont définies lors de l'exécution.

from pydantic_ai import Agent, RunContext from datetime import date agent = Agent( 'openai:gpt-4o', deps_type=str, system_prompt="Utilisez le nom du client lorsque vous lui répondez.", ) @agent.system_prompt def add_the_users_name(ctx: RunContext[str]) -> str : return f"Le nom de l'utilisateur est {ctx.deps}." @agent.system_prompt def add_the_date() -> str : return f'La date est {date.today()}.' result = agent.run_sync('Quelle est la date ?', deps='Frank') print(result.data) #> Bonjour Frank, la date d'aujourd'hui est le 02/01/2032.
Entrer en mode plein écran Quitter le mode plein écran

Outils de fonction

Les outils fonctionnels permettent aux LLM d'accéder à des informations externes ou d'effectuer des actions non disponibles dans l'invite système elle-même. Les outils peuvent être enregistrés de plusieurs manières :

  • @agent.outildécorateur : pour les outils qui nécessitent un accès au contexte de l'agent viaExécuterContext.
  • @agent.tool_plaindécorateur : pour les outils qui n'ont pas besoin d'accéder au contexte de l'agent.
  • outilsargument de mot-clé dansAgentconstructeur : peut prendre des fonctions simples ou des instances duOutilclasse, donnant plus de contrôle sur les définitions d’out...
    [Courte citation de 8% de l'article original]
Loading...