برنامه نویسی

نحوه ساخت ربات تلگرام با ادغام 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

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا