ChatGPT API sur Swift : intégration en 30 minutes

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Pourquoi Swift et ChatGPT sont un coup de foudre dès le premier commit



Imaginez : vous écrivez une application en Swift, et soudain vous réalisez qu'il lui manque un « cerveau ». L'utilisateur pose une question, et votre code reste muet comme une carpe. Vous voyez ? Jusqu'à récemment, ajouter de l'intelligence à une application iOS était compliqué : il fallait soit écrire son propre modèle NLP, soit intégrer des bibliothèques lourdes. Maintenant, tout a changé.



L'API ChatGPT sur Swift n'est pas qu'une fonctionnalité à la mode, c'est un véritable outil qui peut transformer votre application en assistant intelligent. Vous voulez créer un assistant IA, un générateur de contenu ou simplement un chatbot ? Tout cela peut être réalisé en une soirée. Dans cet article, je vais vous montrer comment connecter l'API OpenAI en Swift à partir de zéro, sans magie superflue ni architectures complexes. C'est parti !



De quoi avons-nous besoin ?



Avant de plonger dans le code, voyons les outils nécessaires. Pour travailler avec ChatGPT sur iOS, vous n'avez besoin que de trois choses :



  • Une clé API OpenAI — inscrivez-vous sur platform.openai.com, créez une clé dans la section API Keys. Gardez-la précieusement — ne la commitez pas dans Git !
  • Xcode 15+ — pour utiliser le Swift moderne avec async/await.
  • Une compréhension de base de SwiftUI ou UIKit — je montrerai un exemple avec SwiftUI, mais la logique réseau est universelle.


Prêts ? Alors ouvrez Xcode, créez un nouveau projet (iOS App, SwiftUI, langue — Swift) et commençons à écrire du code.



Architecture de la requête : comment « parler » à ChatGPT en Swift



OpenAI fournit une API REST. Cela signifie que nous allons envoyer des requêtes HTTP et recevoir des réponses JSON. Toute la communication passe par l'endpoint https://api.openai.com/v1/chat/completions. Nous devons envoyer une requête POST avec un corps contenant un tableau de messages (rôle + contenu) et recevoir une réponse du modèle.



Créons un modèle de données pour la requête et la réponse. C'est un exemple parfait d'utilisation de Decodable en Swift.



// Modèle pour un seul messagestruct Message: Codable {    let role: String      // "system", "user" ou "assistant"    let content: String}

// Structure de la requête à l'APIstruct ChatGPTRequest: Codable { let model: String let messages: [Message] let temperature: Double?

init(model: String = "gpt-4o-mini", messages: [Message], temperature: Double = 0.7) { self.model = model self.messages = messages self.temperature = temperature }}

// Structure de la réponsestruct ChatGPTResponse: Codable { struct Choice: Codable { let message: Message let finishReason: String?

enum CodingKeys: String, CodingKey { case message case finishReason = "finish_reason" } }

let choices: [Choice]}


Notez les CodingKeys — en Swift, les noms de propriétés sont généralement en camelCase, tandis que l'API renvoie en snake_case. C'est une technique standard pour le travail avec les API en Swift.



Couche réseau : URLSession + async/await



Passons maintenant à la partie la plus intéressante — l'envoi de la requête. J'utiliserai le moderne async/await pour que le code soit propre et lisible. Pas de closures ni de délégués — seulement de l'élégance.



class ChatGPTService {

private let apiKey: String private let session = URLSession.shared private let baseURL = URL(string: "https://api.openai.com/v1/chat/completions")!

init(apiKey: String) { self.apiKey = apiKey }

func sendMessage(_ text: String) async throws -> String {

// Formation des messages : prompt système + requête utilisateur let systemMessage = Message(role: "system", content: "Tu es un assistant utile. Réponds brièvement et de manière concise.") let userMessage = Mess

Blogs

Book Recommendations