ChatGPT API en Swift: integración en 30 minutos

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Por qué Swift y ChatGPT son amor a primera línea de código



Imagínese: está escribiendo una aplicación en Swift y, de repente, se da cuenta de que le faltan "cerebros". El usuario hace una pregunta y su código se queda en silencio, como un pez contra el hielo. ¿Le suena familiar? Hasta hace poco, añadir inteligencia a una aplicación iOS era complicado: había que escribir su propio modelo de NLP o conectar bibliotecas pesadas. Ahora todo es diferente.



ChatGPT API en Swift no es solo una característica de moda, sino una herramienta real que puede convertir su aplicación en un asistente inteligente. ¿Quiere crear un asistente de IA, un generador de contenido o simplemente un chatbot? Todo esto se puede implementar en una tarde. En este artículo, le mostraré cómo conectar la API de OpenAI en Swift desde cero, sin magia innecesaria ni arquitecturas complejas. ¡Vamos allá!



¿Qué necesitamos?



Antes de saltar al código, revisemos las herramientas. Para trabajar con ChatGPT en iOS solo necesita tres cosas:



  • Clave API de OpenAI — regístrese en platform.openai.com, cree una clave en la sección API Keys. Guárdela como oro en paño — ¡no la suba a Git!
  • Xcode 15+ — para usar Swift moderno con async/await.
  • Conocimiento básico de SwiftUI o UIKit — mostraré un ejemplo en SwiftUI, pero la lógica de trabajo con la red es universal.


¿Listo? Entonces abra Xcode, cree un nuevo proyecto (iOS App, SwiftUI, idioma — Swift) y comencemos a escribir código.



Arquitectura de la solicitud: cómo "hablar" con ChatGPT en Swift



OpenAI proporciona una API REST. Esto significa que enviaremos solicitudes HTTP y recibiremos respuestas JSON. Toda la comunicación se realiza a través del endpoint https://api.openai.com/v1/chat/completions. Necesitamos enviar una solicitud POST con un cuerpo que contenga un array de mensajes (rol + contenido) y recibir la respuesta del modelo.



Vamos a crear un modelo de datos para la solicitud y la respuesta. Este es un ejemplo perfecto del uso de Decodable en Swift.



// Modelo para un solo mensajestruct Message: Codable {    let role: String      // "system", "user" o "assistant"    let content: String}

// Estructura de la solicitud a la 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 }}

// Estructura de la respuestastruct ChatGPTResponse: Codable { struct Choice: Codable { let message: Message let finishReason: String?

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

let choices: [Choice]}


Tenga en cuenta los CodingKeys — en Swift los nombres de las propiedades se escriben en camelCase, mientras que la API devuelve snake_case. Esta es una técnica estándar para trabajar con API en Swift.



Capa de red: URLSession + async/await



Ahora viene la parte más interesante: enviar la solicitud. Usaré el moderno async/await para que el código sea limpio y legible. Sin closures ni delegados — solo belleza.



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 {

// Formamos los mensajes: system prompt + solicitud del usuario let systemMessage = Message(role: "system", content: "Eres un asistente útil. Responde de forma breve y concisa.") let userMessage = Mess

Blogs

Book Recommendations