OpenAI Agents SDK : créer un assistant capable d’utiliser des outils
Découvrez comment développer un agent IA en Python, lui donner des instructions et lui permettre d’interroger vos propres données.
Qu’est-ce que le SDK Agents d’OpenAI ?
Le SDK Agents d’OpenAI est une bibliothèque de développement permettant de construire des applications dans lesquelles un modèle d’intelligence artificielle peut utiliser des outils pour accomplir une tâche.
Un agent associe un modèle, des instructions et éventuellement des outils. Par exemple, un assistant de support peut consulter une base documentaire avant de répondre à une question.
Les principales fonctionnalités
| Fonctionnalité | Utilité | Exemple |
|---|---|---|
| Agents | Définir un rôle et des instructions. | Un assistant spécialisé dans un catalogue. |
| Outils | Exécuter des fonctions accessibles à l’agent. | Rechercher un produit dans une base de données. |
| Transferts entre agents | Transmettre une demande à un spécialiste. | Passer du support général au support technique. |
| Garde-fous | Ajouter des contrôles sur les entrées et sorties. | Vérifier le respect du périmètre de l’application. |
| Sessions | Conserver le contexte entre plusieurs échanges. | Poursuivre une conversation avec un utilisateur. |
| Traces d’exécution | Examiner les étapes du traitement. | Comprendre quels outils ont été appelés. |
Tutoriel : créer un assistant de catalogue informatique
Dans cet exemple, nous allons créer un assistant capable de rechercher le prix d’un produit dans un petit catalogue Python. Les données sont fictives et aucun achat n’est effectué.
1. Préparer le projet
Installez une version de Python compatible avec la version du SDK utilisée. Créez ensuite un environnement virtuel :
mkdir assistant-catalogue cd assistant-catalogue python -m venv .venv Activation sous Windows avec PowerShell :
.\.venv\Scripts\Activate.ps1 Activation sous Linux ou macOS :
source .venv/bin/activate Installez le SDK dans cet environnement :
python -m pip install openai-agents 2. Configurer les accès
Créez une clé API sur la plateforme OpenAI . Vérifiez la configuration de facturation et sélectionnez un modèle accessible à votre projet, compatible avec les appels d’outils.
Définissez les variables d’environnement suivantes en remplaçant les valeurs d’exemple.
Sous PowerShell :
$env:OPENAI_API_KEY = "votre_cle_api" $env:OPENAI_MODEL = "identifiant_du_modele" Sous Bash :
export OPENAI_API_KEY="votre_cle_api" export OPENAI_MODEL="identifiant_du_modele" 3. Créer l’agent et son outil
Créez un fichier assistant.py contenant le code suivant :
import os from agents import Agent, Runner, function_tool CATALOGUE = { "clavier": {"prix": 39.90, "stock": 12}, "souris": {"prix": 24.90, "stock": 8}, "écran": {"prix": 189.00, "stock": 3}, } @function_tool def rechercher_produit(nom: str) -> str: """Recherche le prix et le stock d'un produit du catalogue.""" nom_normalise = nom.strip().lower() produit = CATALOGUE.get(nom_normalise) if produit is None: return f"Produit introuvable dans le catalogue : {nom}" return ( f"Produit : {nom_normalise}. " f"Prix unitaire : {produit['prix']:.2f} EUR. " f"Stock : {produit['stock']}." ) def main(): if not os.environ.get("OPENAI_API_KEY"): raise SystemExit("La variable OPENAI_API_KEY est manquante.") modele = os.environ.get("OPENAI_MODEL") if not modele: raise SystemExit("La variable OPENAI_MODEL est manquante.") assistant = Agent( name="Assistant catalogue", model=modele, instructions=( "Tu es un assistant de catalogue informatique. " "Réponds en français, clairement et brièvement. " "Pour toute information sur un produit, utilise " "l'outil rechercher_produit. " "N'invente jamais un prix ou un stock. " "Si le produit est introuvable, indique-le." ), tools=[rechercher_produit], ) resultat = Runner.run_sync( assistant, "Quel est le prix du clavier et combien en reste-t-il ?", max_turns=5, ) print(resultat.final_output) if __name__ == "__main__": main() 4. Exécuter le programme
Depuis le terminal dans lequel les variables d’environnement ont été définies, lancez :
python assistant.py La réponse attendue sera proche de :
Le clavier coûte 39,90 € et il reste 12 unités en stock.
La formulation peut varier. Le prix et le stock doivent correspondre aux données renvoyées par l’outil.
Comprendre le code
-
@function_toolrend la fonction Python accessible à l’agent. Son nom, ses types et sa documentation décrivent l’outil au modèle. -
Agentrassemble le modèle, les instructions et les outils autorisés. -
Runner.run_sync()exécute l’agent et gère les échanges nécessaires avec le modèle et les outils. -
max_turnslimite le nombre de tours d’exécution pour cet appel. -
final_outputcontient la réponse finale produite par l’agent.
Ici, le modèle interprète la question et demande l’utilisation de l’outil. La fonction Python consulte le catalogue, puis l’agent utilise le résultat pour formuler sa réponse.
Comment l’intégrer dans un site web ?
Le SDK Python s’exécute côté serveur. Dans une application web, un formulaire HTML envoie la question à votre backend. Celui-ci exécute l’agent et renvoie la réponse au navigateur.
Vous pouvez exposer ce traitement via une route HTTP avec un framework Python, puis l’appeler depuis votre interface. Les clés API et les outils restent sur le serveur.
Quelques bonnes pratiques
- Donnez à chaque outil une fonction précise et des paramètres clairement définis.
- Vérifiez les autorisations dans le code des outils, indépendamment des instructions données au modèle.
- Demandez une validation humaine avant une action engageante, comme un achat ou une suppression.
- Limitez les appels et surveillez la consommation : une demande peut entraîner plusieurs appels au modèle.
- Testez les produits inconnus, les demandes ambiguës et les erreurs de vos services.
- Examinez les paramètres de traçage avant de traiter des données sensibles.
Aucun commentaire pour cet article.