نحوه ساخت ربات تلگرام با ادغام ChatGPT.
این آموزش گام به گام نحوه ساخت ربات چت تلگرام سفارشی را توضیح می دهد که می تواند با OpenAI ChatGPT تعامل داشته باشد. این آموزش به زبان پایتون نوشته شده است و از بسته های python-telegram-bot و openai استفاده می کند.
1) چت بات تلگرام بسازید
IDE خود را باز کنید و یک فایل به نام ایجاد کنید telegram-bot.py
ما قصد داریم از این بسته https://github.com/python-telegram-bot/python-telegram-bot استفاده کنیم که به ما در ایجاد ربات تلگرام کمک می کند. حتما با آن نصب کنید
pip3 install python-telegram-bot
پس از نصب، این کد را در فایل telegram-bot.py خود قرار دهید:
import logging
import os
from telegram import Update
from telegram.ext import (ApplicationBuilder, CommandHandler, ContextTypes,
MessageHandler, filters)
logging.basicConfig(
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
level=logging.INFO
)
TELEGRAM_API_TOKEN = os.getenv("TELEGRAM_API_TOKEN")
async def start(update: Update, context: ContextTypes.DEFAULT_TYPE):
await context.bot.send_message(chat_id=update.effective_chat.id, text="I'm a bot, please talk to me!")
async def echo(update: Update, context: ContextTypes.DEFAULT_TYPE):
await context.bot.send_message(chat_id=update.effective_chat.id, text=update.message.text)
if __name__ == '__main__':
application = ApplicationBuilder().token(TELEGRAM_API_TOKEN).build()
start_handler = CommandHandler('start', start)
echo_handler = MessageHandler(filters.TEXT & (~filters.COMMAND), echo)
application.add_handler(start_handler)
application.add_handler(echo_handler)
application.run_polling()
ما در حال تعریف دو هندلر هستیم، یکی فرمان کمکی (بنابراین اگر /start را در تلگرام تایپ کنید) و یک کنترل کننده پیام.
کنترل کننده پیام (پژواک تابع) برای اهداف آزمایشی فقط آنچه را که کاربر تایپ کرده است، پس می دهد. پس بیایید ربات خود را امتحان کنیم. اما قبل از انجام این کار، باید ربات خود را در تلگرام ثبت کنیم تا بتوانیم API_KEY را دریافت کنیم.
1.1) ربات ما را در تلگرام ثبت کنید
به https://web.telegram.org/k/ سر بزنید و با گوشی هوشمند خود وارد شوید. از نوار جستجو برای جستجوی «BotFather» استفاده کنید.
شروع ثبت نام با /شروع فرمان
تمام دستورات ممکن را فهرست می کند، ما با آن بیشتر پیش می رویم /newbot برای ثبت ربات جدید
حالا سعی کنید یک نام خوب برای ربات خود پیدا کنید، من چند مشکل داشتم:
پس از ثبت نام موفقیت آمیز، پیامی از BotFather دریافت خواهید کرد که ربات شما ثبت شده است، جایی که می توانید آن را پیدا کنید و نشانه برای دسترسی به آن اینو کپی کن نشانه
ایجاد یک .env
فایل در همان دایرکتوری telegram-bot.py
فایل و خط زیر را به آن اضافه کنید:
TELEGRAM_API_TOKEN=<your_telegram_api_token>
جایگزین کردن <your_telegram_api_token>
با توکن API واقعی تلگرام شما که توسط BotFather ارائه شده است.
اکنون می توانیم ربات تلگرام شما را تست کنیم! در IDE خود یک ترمینال باز کنید و در مسیری که اسکریپت شما قرار دارد ربات را با آن شروع کنید
python3 telegram-bot.py
پیوندی را باز کنید که می توانید ربات خود را پیدا کنید یا از نوار جستجو در تلگرام برای پیدا کردن آن استفاده کنید. روی دکمه شروع کلیک کنید و اجازه دهید چیزی بنویسیم.
شیرین! ما با موفقیت به بخش 1 دست یافتیم. کاری که اکنون باید انجام دهیم این است که ربات خود را با ChatGPT متصل کنیم. ایده ساده است، ربات ورودی کاربران را می گیرد. ما ChatGPT را با این ورودی پرس و جو می کنیم و پاسخ را از ChatGPT به کاربر خود هدایت می کنیم. بیا بریم!
2) کلاینت CHAT-GPT را ایجاد کنید
بیایید یک فایل پایتون جدید ایجاد کنیم که تمام موارد ChatGPT را مدیریت کند، من آن را صدا می زنم
“chatgpt_client.py”.
ما قصد داریم از بسته رسمی openai python برای جستجو در api chatgpt استفاده کنیم. اجازه میدهیم بسته openai python را با آن نصب کنیم
pip3 install openai
این کد را در فایل ایجاد شده جدید کپی کنید:
import os
import openai
openai.api_key = os.getenv("OPENAI_API_KEY")
def request_chat_gpt(user_message):
try:
completion = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[
{"role": "user", "content": user_message}
]
)
return comletion.choices[0].message['content']
except Exception as e:
print(f"An error occurred: {e}")
return "" # Return an empty string or handle the error appropriately
اکنون به وب سایت openAI بروید و توکن خود را دریافت کنید.
کلید API را در .env
فایل، خط زیر را اضافه کنید:
OPENAI_API_KEY="<your_openai_api_key>"
جایگزین کردن <your_openai_api_key>
با کلید OpenAI API واقعی شما.
برای استفاده از ادغام openai در کنترل کننده اکو، می توانیم خط را جایگزین کنیم await context.bot.send_message(chat_id=update.effective_chat.id, text=update.message.text)
با موارد زیر:
response = request_chat_gpt(update.message.text)
await context.bot.send_message(chat_id=update.effective_chat.id, text=response)
البته فراموش نکنید که تابع را وارد کنید
from chatgpt_client import request_chat_gpt
این ورودی کاربر را به request_chat_gpt
تابعی که از OpenAI API برای تولید پاسخ استفاده می کند. سپس پاسخ از طریق به کاربر ارسال می شود echo
کنترل کننده
این همه! امیدوارم از این یکی لذت برده باشید. دفعه بعد که میخواهیم یک ربات چت AirBnB بسازیم که میتواند با دانش سفارشی مانند Wifi Passwort یا Checkout Times به مهمانها پاسخ دهد، خوب به نظر میرسد؟
اگر نمیخواهید این مقاله را از دست بدهید، به سایت من بروید و در خبرنامه مشترک شوید، واقعاً از این قدردانی میکنم ❤️!
https://jhayer.tech