Go में ChatGPT API इंटीग्रेशन: कोड के साथ पूरी गाइड

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

Go और ChatGPT: ये कॉम्बिनेशन क्यों है जबरदस्त?

\n

क्या आपने कभी सोचा है कि अपनी Go प्रोग्राम को कैसे इंसानों की तरह बातचीत करना सिखाया जाए? या फिर आप कंटेंट जनरेशन को ऑटोमेट करना चाहते हैं, एक स्मार्ट असिस्टेंट बनाना चाहते हैं, या बस अपने सर्विस में एक नया फीचर जोड़ना चाहते हैं? Go में ChatGPT API इंटीग्रेशन सिर्फ एक ट्रेंड नहीं है, बल्कि एक शक्तिशाली टूल है जो आर्टिफिशियल इंटेलिजेंस की दुनिया के दरवाजे खोलता है। Go अपनी स्पीड और सादगी के लिए जाना जाता है, जो न्यूरल नेटवर्क के लिए तेज़ और भरोसेमंद रिक्वेस्ट बनाने के लिए परफेक्ट है। इस आर्टिकल में हम सिर्फ थ्योरी नहीं पढ़ेंगे, बल्कि रियल कोड लिखेंगे जिसे आप तुरंत अपने प्रोजेक्ट्स में इस्तेमाल कर सकते हैं।

\n\n

शुरुआत करने के लिए क्या चाहिए?

\n

कोड में कूदने से पहले, पक्का कर लें कि आपके पास सब कुछ तैयार है। आपको चाहिए:

\n
    \n
  • Go इंस्टॉल हो (वर्शन 1.21 या उससे ऊपर, ताकि सभी नई सुविधाओं का उपयोग कर सकें)।
  • \n
  • OpenAI API-की। इसे OpenAI प्लेटफॉर्म से प्राप्त करें। इसे बैंक कार्ड के पासवर्ड की तरह गुप्त रखें!
  • \n
  • HTTP रिक्वेस्ट और Go में डेटा स्ट्रक्चर की बुनियादी समझ।
  • \n
\n

इस आर्टिकल का सारा कोड हम एक ही फाइल main.go में लिखेंगे, ताकि स्ट्रक्चर जटिल न हो। चलिए शुरू करते हैं!

\n\n

स्टेप 1: HTTP क्लाइंट बनाएं और पहला रिक्वेस्ट भेजें

\n

हमारे इंटीग्रेशन का दिल होगा स्टैंडर्ड net/http पैकेज। यह हल्का, तेज़ है और इसमें किसी थर्ड-पार्टी डिपेंडेंसी की ज़रूरत नहीं है। हमारा काम है https://api.openai.com/v1/chat/completions एंडपॉइंट पर सही बॉडी और हेडर के साथ POST रिक्वेस्ट भेजना।

\n\n

रिक्वेस्ट की स्ट्रक्चर

\n

ChatGPT API एक खास JSON फॉर्मेट की उम्मीद करता है। आइए Go स्ट्रक्चर बनाएं जो इस फॉर्मेट से बिल्कुल मेल खाए:

\n
package main\n\nimport (\n    "bytes"\n    "encoding/json"\n    "fmt"\n    "io"\n    "net/http"\n    "os"\n)\n\ntype ChatMessage struct {\n    Role    string `json:"role"`\n    Content string `json:"content"`\n}\n\ntype ChatRequest struct {\n    Model    string        `json:"model"`\n    Messages []ChatMessage `json:"messages"`\n}\n\ntype ChatResponse struct {\n    Choices []struct {\n        Message ChatMessage `json:"message"`\n    } `json:"choices"`\n}
\n

json:"..." टैग्स पर ध्यान दें। ये सुनिश्चित करते हैं कि Go हमारे डेटा को सही तरीके से JSON में "पैक" (सीरियलाइज़) करे, जिसे OpenAI समझ सके।

\n\n

रिक्वेस्ट भेजने वाला फंक्शन

\n

अब एक फंक्शन लिखते हैं जो सारा काम करेगा: रिक्वेस्ट बनाना, भेजना और रिस्पॉन्स को पार्स करना।

\n
func askChatGPT(apiKey, prompt string) (string, error) {\n    reqBody := ChatRequest{\n        Model: "gpt-3.5-turbo",\n        Messages: []ChatMessage{\n            {Role: "user", Content: prompt},\n        },\n    }\n\n    jsonData, err := json.Marshal(reqBody)\n    if err != nil {\n        return "", fmt.Errorf("मार्शलिंग में त्रुटि: %w", err)\n    }\n\n    request, err := http.NewRequest("POST", "https://api.openai.com/v1/chat/completions", bytes.NewBuffer(jsonData))\n    if err != nil {\n        return "", fmt.Errorf("रिक्वेस्ट बनाने में त्रुटि: %w", err)\n    }\n\n    request.Header.Set("Content-Type", "application/json")\n    request.Header.Set("Authorization", "Bearer "+apiKey)\n\n    client := &http.Client{}\n    response, err := client.Do(request)\n    if err != nil {\n        return "", fmt.Errorf("रिक्वेस्ट भेजने में त्रुटि: %w", err)\n    }\n    defer response.Body.Close()\n\n    body, err := io.ReadAll(response.Body)\n    if err != nil {\n        return "", fmt.Errorf("रिस्पॉन्स पढ़ने में त्रुटि: %w", err)\n    }\n\n    // स्टेटस-कोड जांचें\n    if response.StatusCode != http.StatusOK {\n        return "", fmt.Errorf("API ने त्रुटि दी: %s, बॉडी: %s", response.Status, string(body))\n    }\n\n    var chatResp ChatRes                

ब्लॉग

पुस्तक अनुशंसाएँ