چندین هزاران سال شد، تا من به گفتار آمدم..! - مولانا
آموزش ساخت ربات بله
سلام. امروز با آموزش ساخت ربات بله با پایتون اومدم. اگر با پایتون آشنایت دارین، و یا قبلا بات تلگرام ساختین قطعا ساخت این بات ها برای بله راحته.
حالا اینکه چرا بله، میتونه جواب های متفاوتی داشته باشه، ولی خب از ویژگی های بارزش رابط کاربری دلنشین، ایرانی بودن، و توانایی کارت به کارت و ... که باعث میشه بتونین به راحتی بات های فروشگاهی بسازین.
ساخت بات با بات فادر
اول از همه، باید بات رو بسازیم و توکنش رو از بات فادر بگیریم:
بات فادر: @botfather
بعد از گرفتن توکن اون رو جای مطمئنی دخیره میکنیم که بعدا استفاده کنیم.
برای ساخت یک ربات بله میتونیم از کتابخونه های مختلفی استفاده کنیم که من «بلتون» رو انتخاب میکنم؛ دلایلش توی مقاله معرفی بلتون هست.
حالا باید کتابخونه رو نصب کنیم:
pip install balethon
خب، حالا مثلا باتی که من میخوام بسازم بات گفتگو هست. که ایده ش اینه که کاربر حرفی بزنه و بات جواب بده.
خب بلتون رو ایمپورت میکنیم:
from balethon import Client
from balethon.conditions import at_state
حالا روباتمون رو با توکنی که بات فادر بهمون داده میسازیم:
bot = Client('TOKEN')
حالا درواقع ما توی متغیری به نام بات، باتمون رو ساختیم.
حالا میتونیم از همچین کدی استفاده کنیم:
@bot.on_message(at_state(None))
async def home_state(message):
await message.reply(
'سلام، من روبات مکالمه هستم. لطفا نام خود را ارسال کنید!'
)
message.author.set_state('NAME')
توی این کد، وقتی که پیامی به بات داده بشه، پیام رو در قالب متغیر message دریافت میکنه و با دستور await message.reply
اون رو ریپلای کرده و پاسخ میده.
با خط آخر، وضعیت کاربر میره روی NAME تا اگر پیامی از طرفش اومد به عنوان اسمش در نظر گرفته بشه.
@bot.on_message(at_state('NAME'))
async def name_state(message):
name = message.text
await message.reply(
f'از ملاقات با شما خوشبختم. /n لطفا سن خود را ارسال کنید. '
)
message.author.set_state('AGE')
حالا میگیم وقتی که اسم رو دریافت کردی، توی متغیری به اسم name ذخیره اش کن و بعد دوباره پاسخ بده که از ملاقات با شما خوشبختم و سنش رو بپرس.
حالا همین کار رو با سن و هر پارامتر دیگه ای که میخوایم ادامه میدیم تا به اتمام کار مورد نظرمون برسیم!
برای اتمام کار، با کد bot.run()
بات رو ران میکنیم.
حالا شما یک روبات گفتگو ساده به زبان پایتون دارین.
در نهایت کد ما میشه این:
from balethon import Client
from balethon.conditions import at_state
bot = Client('TOKEN')
@bot.on_message(at_state(None))
async def home_state(message):
await message.reply(
'Hello, I'm the conversation bot\nWhat is your name?'
)
message.author.set_state('NAME')
@bot.on_message(at_state('NAME'))
async def name_state(message):
name = message.text
await message.reply(
f'Nice to meet you, {name}!\nHow old are you?'
)
message.author.set_state('AGE')
@bot.on_message(at_state('AGE'))
async def age_state(message):
age = message.text
await message.reply(
f'You are {age} years old, good for you!\nHave a nice day!'
)
message.author.del_state()
bot.run()
یک همچین باتی نمونه ساده یک بات هست و قطعا شما با یادگیری بهتر و خوندن مستندات میتونید خیلی بات های بهتر و پیچیده تری طراحی کنید، ولی درکل خواستم بگم ساختن روبات به همین آسونیه :)
نظری و سوالی داشتی حتما برام کامنت کن.
موفق و پیروز باشید :)
مطلبی دیگر از این انتشارات
ساخت دشمن ساده در یونیتی بدون navmesh
مطلبی دیگر از این انتشارات
جاوا و سی شارپ - شباهت های زیاد, تفاوت های زیاد.
مطلبی دیگر از این انتشارات
بهینه سازی ANR با استفاده از StrictMode در اپلیکیشن اندروید