Go में चैटबॉट: शुरुआत से तेज़ और विश्वसनीय सहायक बनाएं

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

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

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

Go चैटबॉट के लिए सबसे अच्छा विकल्प क्यों है?

\n\n

अगर आपने कभी Python में चैटबॉट लिखा है, तो आप जानते हैं: वह काम करता है। लेकिन जब लोड हजारों रिक्वेस्ट प्रति सेकंड तक बढ़ जाता है, तो Python "सोचने" लगता है। Go (या Golang) इसलिए बनाया गया है कि वह न सोचे — वह बस करता है। उच्च प्रदर्शन, बिल्ट-इन नेटवर्किंग, गोरूटीन (हल्के थ्रेड) और न्यूनतम मेमोरी खपत Go को उच्च-लोड चैटबॉट बनाने के लिए सबसे अच्छी भाषा बनाते हैं।

\n\n

इस मार्गदर्शिका में हम Go में एक पूर्ण Telegram बॉट बनाएंगे, जो कमांड को प्रोसेस करेगा, API के साथ काम करेगा और आसानी से स्केल होगा। आपको सिर्फ थ्योरी नहीं, बल्कि तैयार कोड मिलेगा जिसे आप 5 मिनट में चला सकते हैं।

\n\n

हम क्या बनाएंगे?

\n\n

हमारा Go बॉट यह कर पाएगा:

\n
    \n
  • /start कमांड पर स्वागत संदेश भेजना।
  • \n
  • टेक्स्ट संदेश लेना और उन्हें अपरकेस में लौटाना (एक "व्यक्तित्व" वाला इको-बॉट)।
  • \n
  • एरर हैंडल करना और एक्शन को लॉग करना।
  • \n
  • Telegram Bot API के माध्यम से काम करना (चैटबॉट के लिए सबसे लोकप्रिय स्क्रिप्ट)।
  • \n
\n\n

सारा कोड शुद्ध Go में बिना किसी थर्ड-पार्टी लाइब्रेरी के लिखा जाएगा (सिर्फ स्टैंडर्ड लाइब्रेरी और HTTP क्लाइंट), ताकि आप समझ सकें कि सब कुछ "हुड के नीचे" कैसे काम करता है।

\n\n

चरण 1: वातावरण तैयार करना

\n\n

सुनिश्चित करें कि आपके पास Go (वर्जन 1.21+) इंस्टॉल है। इसे इस कमांड से चेक करें:

\n\n
go version
\n\n

प्रोजेक्ट के लिए एक नई डायरेक्टरी बनाएं और मॉड्यूल इनिशियलाइज़ करें:

\n\n
mkdir go-chat-bot\ncd go-chat-bot\ngo mod init github.com/yourname/go-chat-bot
\n\n

आपको एक बॉट टोकन की आवश्यकता होगी। अगर आपके पास नहीं है:

\n
    \n
  1. Telegram में @BotFather को लिखें।
  2. \n
  3. /newbot कमांड भेजें और निर्देशों का पालन करें।
  4. \n
  5. प्राप्त टोकन कॉपी करें (यह ऐसा दिखता है: 123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11)।
  6. \n
\n\n

टोकन को एनवायरनमेंट वेरिएबल में सेव करें (टोकन को कभी कोड में न रखें!):

\n\n
export BOT_TOKEN="आपका_टोकन_यहाँ"
\n\n

चरण 2: Go बॉट की बेसिक संरचना

\n\n

main.go फ़ाइल बनाएं। हम एक सरल HTTP सर्वर से शुरू करेंगे जो Telegram से अपडेट प्राप्त करेगा। Go इसके लिए बिल्ट-इन net/http पैकेज के कारण एकदम सही है।

\n\n
package main\n\nimport (\n    "encoding/json"\n    "fmt"\n    "io"\n    "log"\n    "net/http"\n    "os"\n    "strings"\n)\n\n// Update — Telegram से इनकमिंग अपडेट की संरचना\ntype Update struct {\n    UpdateID int `json:"update_id"`\n    Message  struct {\n        Text string `json:"text"`\n        Chat struct {\n            ID int64 `json:"id"`\n        } `json:"chat"`\n    } `json:"message"`\n}\n\nfunc main() {\n    botToken := os.Getenv("BOT_TOKEN")\n    if botToken == "" {\n        log.Fatal("BOT_TOKEN सेट नहीं है")\n    }\n\n    http.HandleFunc("/webhook", func(w http.ResponseWriter, r *http.Request) {\n        handleWebhook(w, r, botToken)\n    })\n\n    log.Println("बॉट :8080 पर शुरू हुआ")\n    log.Fatal(http.ListenAndServe(":8080", nil))\n}\n\nfunc handleWebhook(w http.ResponseWriter, r *http.Request, token string) {\n    body, err := io.ReadAll(r.Body)\n    if err != nil {\n        log.Printf("रिक्वेस्ट बॉडी पढ़ने में त्रुटि: %v", err)\n        http.Error(w, "Bad Request", http.StatusBadRequest)\n        return\n    }\n    defer r.Body.Close()\n\n    var update Update\n    if err := json.Unmarshal(body, &update); err != nil {\n        log.Printf("JSON पार्स करने में त्रुटि: %v", err)\n        http.Error(w, "Bad JSON", http.StatusBadRequest)\n        return\n    }\n\n    // अगर संदेश खाली है — इग्नोर करें\n    if update.Message.Text == "" {\n        return\n    }\n\n    log.Printf("संदेश प्राप्त हुआ: %s", update.Message.Text)\n\n    // जवाब तैयार करें\n    var replyText string\n    if strings.HasPrefix(update.Message.Text, "/start") {\n        replyText = "नमस्ते! मैं Go में बना बॉट हूँ। लिखिए..."\n    } else {\n        replyText = strings.ToUpper(update.Message.Text)\n    }\n\n    // Telegram API को जवाब भेजें\n    sendMessage(token, update.Message.Chat.ID, replyText)\n}\n\nfunc sendMessage(token string, chatID int64, text string) {\n    url := fmt.Sprintf("https://api.telegram.org/bot%s/sendMessage", token)\n    payload := fmt.Sprintf(`{"chat_id":%d,"text":"%s"}`, chatID, text)\n    \n    resp, err := http.Post(url, "application/json", strings.NewReader(payload))\n    if err != nil {\n        log.Printf("संदेश भेजने में त्रुटि: %v", err)\n        return\n    }\n    defer resp.Body.Close()\n    \n    log.Printf("संदेश भेजा गया: %s", text)\n}
\n\n

यह कोड एक बेसिक बॉट बनाता है जो /start पर प्रतिक्रिया देता है और अन्य संदेशों को अपरकेस में बदल देता है। अब इसे चलाएं और Telegram में अपने बॉट का परीक्षण करें!

ब्लॉग

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