آموزش ساخت ربات بله

سلام. امروز با آموزش ساخت ربات بله با پایتون اومدم. اگر با پایتون آشنایت دارین، و یا قبلا بات تلگرام ساختین قطعا ساخت این بات ها برای بله راحته.

حالا اینکه چرا بله، میتونه جواب های متفاوتی داشته باشه، ولی خب از ویژگی های بارزش رابط کاربری دلنشین، ایرانی بودن، و توانایی کارت به کارت و ... که باعث میشه بتونین به راحتی بات های فروشگاهی بسازین.


ساخت بات با بات فادر

اول از همه، باید بات رو بسازیم و توکنش رو از بات فادر بگیریم:

بات فادر: @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()

یک همچین باتی نمونه ساده یک بات هست و قطعا شما با یادگیری بهتر و خوندن مستندات میتونید خیلی بات های بهتر و پیچیده تری طراحی کنید، ولی درکل خواستم بگم ساختن روبات به همین آسونیه :)


نظری و سوالی داشتی حتما برام کامنت کن.

موفق و پیروز باشید :)


https://virgool.io/balethon/balethon-cwk6xce0f25l