Swift और ChatGPT — पहले कमिट से ही प्यार क्यों है
\n\nकल्पना करें: आप Swift पर एक ऐप लिख रहे हैं, और अचानक आपको एहसास होता है कि इसमें "दिमाग" की कमी है। उपयोगकर्ता एक प्रश्न पूछता है, और आपका कोड बर्फ पर मछली की तरह चुप रहता है। परिचित लगता है? हाल तक, iOS ऐप में बुद्धिमत्ता जोड़ना मुश्किल था: आपको या तो अपना NLP मॉडल लिखना होता था, या भारी लाइब्रेरीज़ कनेक्ट करनी होती थीं। अब सब कुछ अलग है।
\n\nSwift पर ChatGPT API — यह सिर्फ एक फैशनेबल फीचर नहीं है, बल्कि एक वास्तविक उपकरण है जो आपके ऐप को एक स्मार्ट सहायक में बदल सकता है। AI असिस्टेंट, कंटेंट जनरेटर या सिर्फ एक चैट-बॉट बनाना चाहते हैं? यह सब एक शाम में किया जा सकता है। इस लेख में, मैं दिखाऊंगा कि कैसे Swift में OpenAI API को शुरू से कनेक्ट किया जाए, बिना किसी अतिरिक्त जादू या जटिल आर्किटेक्चर के। चलिए शुरू करते हैं!
\n\nहमें क्या चाहिए?
\n\nकोड में कूदने से पहले, आइए टूल्स को समझते हैं। iOS में ChatGPT के साथ काम करने के लिए आपको केवल तीन चीज़ें चाहिए:
\n\n- \n
- OpenAI API-कुंजी — platform.openai.com पर रजिस्टर करें, API Keys सेक्शन में एक कुंजी बनाएं। इसे अपनी आंख के तारे की तरह संभाल कर रखें — Git में कमिट न करें! \n
- Xcode 15+ — async/await के साथ आधुनिक Swift का उपयोग करने के लिए। \n
- SwiftUI या UIKit की बुनियादी समझ — मैं SwiftUI पर एक उदाहरण दिखाऊंगा, लेकिन नेटवर्क के साथ काम करने का तर्क सार्वभौमिक है। \n
तैयार हैं? तो Xcode खोलें, एक नया प्रोजेक्ट बनाएं (iOS App, SwiftUI, भाषा — Swift) और कोड लिखना शुरू करें।
\n\nअनुरोध की आर्किटेक्चर: Swift पर ChatGPT से कैसे "बात" करें
\n\nOpenAI REST API प्रदान करता है। इसका मतलब है कि हम HTTP अनुरोध भेजेंगे और JSON प्रतिक्रियाएँ प्राप्त करेंगे। सभी संचार endpoint https://api.openai.com/v1/chat/completions के माध्यम से होता है। हमें संदेशों की एक सरणी (भूमिका + सामग्री) वाले बॉडी के साथ POST अनुरोध भेजना होगा और मॉडल से प्रतिक्रिया प्राप्त करनी होगी।
आइए अनुरोध और प्रतिक्रिया के लिए एक डेटा मॉडल बनाएं। यह Swift में Decodable का उपयोग करने का एक आदर्श उदाहरण है।
\n\n// एक संदेश के लिए मॉडल\nstruct Message: Codable {\n let role: String // "system", "user" या "assistant"\n let content: String\n}\n\n// API अनुरोध की संरचना\nstruct ChatGPTRequest: Codable {\n let model: String\n let messages: [Message]\n let temperature: Double?\n\n init(model: String = "gpt-4o-mini", messages: [Message], temperature: Double = 0.7) {\n self.model = model\n self.messages = messages\n self.temperature = temperature\n }\n}\n\n// प्रतिक्रिया की संरचना\nstruct ChatGPTResponse: Codable {\n struct Choice: Codable {\n let message: Message\n let finishReason: String?\n\n enum CodingKeys: String, CodingKey {\n case message\n case finishReason = "finish_reason"\n }\n }\n\n let choices: [Choice]\n}\n\n\nCodingKeys पर ध्यान दें — Swift में प्रॉपर्टी के नाम camelCase में लिखने की प्रथा है, जबकि API snake_case लौटाता है। यह Swift में API के साथ काम करने की एक मानक तकनीक है।
नेटवर्क लेयर: URLSession + async/await
\n\nअब सबसे दिलचस्प हिस्सा — अनुरोध भेजना। मैं आधुनिक async/await का उपयोग करूंगा ताकि कोड साफ और पढ़ने योग्य हो। कोई क्लोजर या डेलीगेट नहीं — केवल सुंदरता।
class ChatGPTService {\n\n private let apiKey: String\n private let session = URLSession.shared\n private let baseURL = URL(string: "https://api.openai.com/v1/chat/completions")!\n\n init(apiKey: String) {\n self.apiKey = apiKey\n }\n\n func sendMessage(_ text: String) async throws -> String {\n\n // संदेश बनाएं: system prompt + उपयोगकर्ता का अनुरोध\n let systemMessage = Message(role: "system",\n content: "आप एक उपयोगी सहायक हैं। संक्षेप में और सीधे उत्तर दें।")\n let userMessage = Mess