ChatGPT API no Swift: integração em 30 minutos

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Por que Swift e ChatGPT são amor à primeira vista



Imagine: você está escrevendo um aplicativo em Swift e, de repente, percebe que falta "inteligência" a ele. O usuário faz uma pergunta, e seu código fica mudo como um peixe. Familiar? Até recentemente, adicionar inteligência a um aplicativo iOS era difícil: era necessário escrever seu próprio modelo de PLN ou integrar bibliotecas pesadas. Agora é diferente.



API ChatGPT no Swift não é apenas um recurso moderno, mas uma ferramenta real que pode transformar seu aplicativo em um assistente inteligente. Quer criar um assistente de IA, um gerador de conteúdo ou apenas um chatbot? Tudo isso pode ser implementado em uma noite. Neste artigo, mostrarei como conectar a API OpenAI no Swift do zero, sem magia desnecessária ou arquiteturas complexas. Vamos lá!



O que vamos precisar?



Antes de mergulhar no código, vamos entender as ferramentas. Para trabalhar com ChatGPT no iOS, você precisa de apenas três coisas:



  • Chave da API OpenAI — registre-se em platform.openai.com, crie uma chave na seção API Keys. Guarde-a como a menina dos olhos — não a commite no Git!
  • Xcode 15+ — para usar o Swift moderno com async/await.
  • Conhecimento básico de SwiftUI ou UIKit — mostrarei um exemplo em SwiftUI, mas a lógica de trabalho com rede é universal.


Pronto? Então abra o Xcode, crie um novo projeto (iOS App, SwiftUI, linguagem — Swift) e vamos escrever código.



Arquitetura da requisição: como "falar" com o ChatGPT no Swift



A OpenAI fornece uma API REST. Isso significa que enviaremos requisições HTTP e receberemos respostas JSON. Toda a comunicação ocorre através do endpoint https://api.openai.com/v1/chat/completions. Precisamos enviar uma requisição POST com um corpo contendo um array de mensagens (papel + conteúdo) e receber a resposta do modelo.



Vamos criar um modelo de dados para a requisição e a resposta. Este é um exemplo ideal de uso de Decodable no Swift.



// Modelo para uma mensagemstruct Message: Codable {    let role: String      // "system", "user" ou "assistant"    let content: String}

// Estrutura da requisição para a 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 }}

// Estrutura da respostastruct ChatGPTResponse: Codable { struct Choice: Codable { let message: Message let finishReason: String?

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

let choices: [Choice]}


Observe o CodingKeys — no Swift, os nomes das propriedades são escritos em camelCase, enquanto a API retorna em snake_case. Esta é uma técnica padrão para trabalhar com API no Swift.



Camada de rede: URLSession + async/await



Agora a parte mais interessante — enviar a requisição. Usarei o moderno async/await para que o código seja limpo e legível. Sem closures ou delegates — apenas beleza.



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 {

// Forma as mensagens: system prompt + requisição do usuário let systemMessage = Message(role: "system", content: "Você é um assistente útil. Responda de forma breve e objetiva.") let userMessage = Mess

Blogs

Book Recommendations