चैटबॉट बनाना अल्ट्राएमएसजी एपीआई के साथ बहुत आसान है, आप एक ग्राहक सेवा चैटबॉट और सर्वश्रेष्ठ एआई चैटबॉट बना सकते हैं पायथन भाषा का उपयोग करके सरल चरणों के माध्यम से।
चैटबॉट के अवसर और व्हाट्सएप बॉट के कार्य
- कमांड सूची का आउटपुट।
- बॉट के सर्वर समय का आउटपुट पर चल रहा है।
- फ़ोन नंबर या समूह पर छवि भेजना।
- ऑडियो फाइल भेजी जा रही है।
- पीपीटी ऑडियो रिकॉर्डिंग भेज रहा है।
- वीडियो फ़ाइल भेज रहा है।
- संपर्क भेज रहा है।
चरण 1: फ्लास्क स्थापित करें
हमें फ्लास्क ढांचे का उपयोग करके सर्वर को तैनात करने की आवश्यकता है।
फ्लास्क आने वाले अनुरोधों का आसानी से जवाब देने और उन्हें संसाधित करने की अनुमति देता है।
pip install flask
चरण 2: ngrok . स्थापित करें
स्थानीय विकास उद्देश्यों के लिए, एक सुरंग सेवा की आवश्यकता है। यह उदाहरण ngrok का उपयोग करता है, आप यहां से ngrok डाउनलोड कर सकते हैं।
चरण 3: नया फ्लास्क ऐप बनाएं
हम फाइल बनाएंगे: app.py और हम उसके अंदर निम्नलिखित कोड लिखते हैं
from flask import Flask, request, jsonify
from ultrabot import ultraChatBot
import json
app = Flask(__name__)
@app.route('/', methods=['POST'])
def home():
if request.method == 'POST':
bot = ultraChatBot(request.json)
return bot.Processingـincomingـmessages()
if(__name__) == '__main__':
app.run()
चरण 4: आने वाली संदेश प्रसंस्करण
हम फाइल बनाएंगे: ultrabot.py और हम इसके अंदर निम्नलिखित कोड लिखते हैं
import json
import requests
import datetime
class ultraChatBot():
def __init__(self, json):
self.json = json
self.dict_messages = json['data']
self.ultraAPIUrl = 'https://api.ultramsg.com/{{instance_id}}/'
self.token = '{{token}}'
def send_requests(self, type, data):
url = f"{self.ultraAPIUrl}{type}?token={self.token}"
headers = {'Content-type': 'application/json'}
answer = requests.post(url, data=json.dumps(data), headers=headers)
return answer.json()
def send_message(self, chatID, text):
data = {"to" : chatID,
"body" : text}
answer = self.send_requests('messages/chat', data)
return answer
def send_image(self, chatID):
data = {"to" : chatID,
"image" : "https://file-example.s3-accelerate.amazonaws.com/images/test.jpeg"}
answer = self.send_requests('messages/image', data)
return answer
def send_video(self, chatID):
data = {"to" : chatID,
"video" : "https://file-example.s3-accelerate.amazonaws.com/video/test.mp4"}
answer = self.send_requests('messages/video', data)
return answer
def send_audio(self, chatID):
data = {"to" : chatID,
"audio" : "https://file-example.s3-accelerate.amazonaws.com/audio/2.mp3"}
answer = self.send_requests('messages/audio', data)
return answer
def send_voice(self, chatID):
data = {"to" : chatID,
"audio" : "https://file-example.s3-accelerate.amazonaws.com/voice/oog_example.ogg"}
answer = self.send_requests('messages/voice', data)
return answer
def send_contact(self, chatID):
data = {"to" : chatID,
"contact" : "[email protected]"}
answer = self.send_requests('messages/contact', data)
return answer
def time(self, chatID):
t = datetime.datetime.now()
time = t.strftime('%Y-%m-%d %H:%M:%S')
return self.send_message(chatID, time)
def welcome(self,chatID, noWelcome = False):
welcome_string = ''
if (noWelcome == False):
welcome_string = "Hi , welcome to WhatsApp chatbot using Python\n"
else:
welcome_string = """wrong command
Please type one of these commands:
*hi* : Saluting
*time* : show server time
*image* : I will send you a picture
*video* : I will send you a Video
*audio* : I will send you a audio file
*voice* : I will send you a ppt audio recording
*contact* : I will send you a contact
"""
return self.send_message(chatID, welcome_string)
def Processingـincomingـmessages(self):
if self.dict_messages != []:
message =self.dict_messages
text = message['body'].split()
if not message['fromMe']:
chatID = message['from']
if text[0].lower() == 'hi':
return self.welcome(chatID)
elif text[0].lower() == 'time':
return self.time(chatID)
elif text[0].lower() == 'image':
return self.send_image(chatID)
elif text[0].lower() == 'video':
return self.send_video(chatID)
elif text[0].lower() == 'audio':
return self.send_audio(chatID)
elif text[0].lower() == 'voice':
return self.send_voice(chatID)
elif text[0].lower() == 'contact':
return self.send_contact(chatID)
else:
return self.welcome(chatID, True)
else: return 'NoCommand'
चरण 5: व्हाट्सएप चैटबॉट प्रोजेक्ट शुरू करें
फ्लास्क सर्वर चलाएं
flask run
भागो ngrok
विंडोज़ के लिए एनग्रोक चलाएं:
ngrok http 5000
मैक के लिए ngrok चलाएँ:
./ngrok http 5000
चरण 6 : URL Webhook को इंस्टेंस सेटिंग में सेट करें
ngrok चलाने के बाद, आपको उदाहरण के लिए एक देखना चाहिए:
https://7647-115-83-121-164.ngrok.io
इंस्टेंस सेटिंग्स में अपना यूआरएल पेस्ट करें ، निम्न चित्र के रूप में:
कोड में प्रयुक्त चैटबॉट फंक्शन
मेसेज भेजें
व्हाट्सएप टेक्स्ट मैसेज भेजने के लिए इस्तेमाल किया जाता है
def send_message(self, chatID, text):
data = {"to" : chatID,
"body" : text}
answer = self.send_requests('messages/chat', data)
return answer
- चैटआईडी – उस चैट की आईडी जहां उसके लिए संदेश भेजा जाना चाहिए, उदाहरण के लिए [email protected] ।
- पाठ – संदेश का पाठ।
समय
वर्तमान सर्वर समय भेजता है।
def time(self, chatID):
t = datetime.datetime.now()
time = t.strftime('%Y-%m-%d %H:%M:%S')
return self.send_message(chatID, time)
- चैटआईडी – उस चैट की आईडी जहां उसके लिए संदेश भेजा जाना चाहिए, उदाहरण के लिए [email protected] ।
भेजें_छवि
फ़ोन नंबर या समूह पर एक छवि भेजें
def send_image(self, chatID):
data = {"to" : chatID,
"image" : "https://file-example.s3-accelerate.amazonaws.com/images/test.jpeg"}
answer = self.send_requests('messages/image', data)
return answer
वीडियो भेजना
फ़ोन नंबर या ग्रुप पर वीडियो भेजें
def send_video(self, chatID):
data = {"to" : chatID,
"video" : "https://file-example.s3-accelerate.amazonaws.com/video/test.mp4"}
answer = self.send_requests('messages/video', data)
return answer
भेजें_ऑडियो
फ़ोन नंबर या समूह पर एक ऑडियो फ़ाइल भेजें
def send_audio(self, chatID):
data = {"to" : chatID,
"audio" : "https://file-example.s3-accelerate.amazonaws.com/audio/2.mp3"}
answer = self.send_requests('messages/audio', data)
return answer
भेजें_आवाज
फ़ोन नंबर या समूह पर एक पीपीटी ऑडियो रिकॉर्डिंग भेजें
def send_voice(self, chatID):
data = {"to" : chatID,
"audio" : "https://file-example.s3-accelerate.amazonaws.com/voice/oog_example.ogg"}
answer = self.send_requests('messages/voice', data)
return answer
भेजें_संपर्क
फ़ोन नंबर या समूह को एक संपर्क या संपर्क सूची भेजना
def send_contact(self, chatID):
data = {"to" : chatID,
"contact" : "[email protected]"}
answer = self.send_requests('messages/contact', data)
return answer
प्रसंस्करणـआने वालेـसंदेश
def Processingـincomingـmessages(self):
if self.dict_messages != []:
message =self.dict_messages
text = message['body'].split()
if not message['fromMe']:
chatID = message['from']
if text[0].lower() == 'hi':
return self.welcome(chatID)
elif text[0].lower() == 'time':
return self.time(chatID)
elif text[0].lower() == 'image':
return self.send_image(chatID)
elif text[0].lower() == 'video':
return self.send_video(chatID)
elif text[0].lower() == 'audio':
return self.send_audio(chatID)
elif text[0].lower() == 'voice':
return self.send_voice(chatID)
elif text[0].lower() == 'contact':
return self.send_contact(chatID)
else:
return self.welcome(chatID, True)
else: return 'NoCommand'
आप इस वीडियो में पिछले चरण देख सकते हैं:
उपयोगी कड़ियां
- सभी कोड GitHub पर उपलब्ध हैं।
- पायथन का उपयोग करके व्हाट्सएप एपीआई संदेश भेजें।
- Ultramsg प्लेटफॉर्म का उपयोग करके WebHooks कैसे सेट करें
- पायथन और वेबहुक का उपयोग करके व्हाट्सएप संदेश कैसे प्राप्त करें।