Actualités

Ici on vous propose un irrévérencieux condensé de brèves d'intérêt variable, sur des sujets qui nous tiennent à cœur.

Actualités>Tech news

Intégrer OpenAI dans vos applications web avec une API REST et GPT-4 Turbo

4 février 2025Intégrer OpenAI dans vos applications web avec une API REST et GPT-4 Turbo

Tu t'es enfin décidé à intégrer OpenAI dans ton projet ? Ton client demande de faire un POC ? Je te propose ce petit tutoriel Python pour t'introduire a ces API.

Pour notre exemple on va essayer d'imaginer que on a un logiciel pour saisir des tickets ( exemple Jira ), le but serait que notre PO saisisse uniquement la fonctionnalité et que notre API lui renvoie un liste de tickets à réaliser que on pourrait convertir selon nos données.

D'ailleurs, si l'optimisation des requêtes API t'intéresse, tu peux consulter cet article sur l'utilisation de GraphQL pour améliorer la performance des requêtes API : Comment utiliser GraphQL pour améliorer la performance des requêtes API

"Feature : Création d'une barre de recherche"

1. Installation de la bibliothèque OpenAI

Si tu l’as pas déjà fait, installe le package avec :

pip install openai

2. Faire une requête avec retour JSON formaté

Tu veux poser une question du genre : "Création d'une feature : Ajout d'une barre de recherche, liste-moi les user stories avec les cas de tests possibles."

Alors voici comment envoyer ta requête pour forcer un format qui soit strictement respecté, tu peux utiliser les "Function Calling" de GPT-4 Turbo.

Dans ce cas, tu définis carrément le format en JSON Schema, et l'API n’a pas le choix de s’y conformer :

Tu n'as plus qu'à exploiter cette réponse pour proposer par exemple à l'utilisateur les différentes user stories et les créer automatiquement.

Exemple avec FastApi :

from fastapi import FastAPI import openai import os # Remplace TA_CLEF_API par ta vraie clé OpenAI API_KEY = "TA_CLEF_API" # Initialisation de FastAPI app = FastAPI() # Fonction pour interagir avec l'API OpenAI def get_user_stories(prompt: str): response = openai.ChatCompletion.create( model="gpt-4-turbo", messages=[ {"role": "system", "content": "Tu es un assistant qui génère des user stories en JSON."}, {"role": "user", "content": prompt} ], functions=[ { "name": "get_user_stories", "description": "Renvoie des user stories et des cas de test pour une fonctionnalité donnée.", "parameters": { "type": "object", "properties": { "feature": {"type": "string"}, "user_stories": { "type": "array", "items": { "type": "object", "properties": { "id": {"type": "integer"}, "titre": {"type": "string"}, "description": {"type": "string"}, "criteres_acceptation": { "type": "array", "items": {"type": "string"} } } } } }, "required": ["feature", "user_stories"] } } ], function_call={"name": "get_user_stories"} ) return response["choices"][0]["message"]["content"] # Renvoie le JSON brut # Route API qui prend un prompt en paramètre et retourne les user stories @app.get("/user_stories/") def generate_user_stories(prompt: str): try: data = get_user_stories(prompt) return {"status": "success", "data": data} except Exception as e: return {"status": "error", "message": str(e)} # Lancer l'API avec : uvicorn nom_du_fichier:app --reload Tu n'as plus qu'à tester :)

William Krieg
William Krieg

Passionné par le développement et l'univers du Web. J'utilise aujourd'hui mes compétences chez Web-atrio, une entreprise unique et innovante en tant que Responsable Technique mais pas que ...

Si tu découvres Web-atrio avec cet article, sache que nous sommes passionnés par la technologie et les solutions modernes pour des projets agiles et innovants. Faisons de tes idées une réalité concrète et performante. 💡 🚀