Tworzenie chatbotów staje się coraz bardziej popularne w świecie technologii. Są one wykorzystywane w różnych dziedzinach, począwszy od obsługi klienta, aż po edukację i medycynę. Niemniej jednak, rozwijanie chatbota może być zadaniem dość wymagającym, wymagającym głębokiej wiedzy z zakresu programowania i sztucznej inteligencji. W tym artykule przyjrzymy się, jak użyć OpenAI ChatGPT do stworzenia bota na Telegramie opartego na języku Python, który będzie komunikować się z użytkownikami przy użyciu zwykłego języka.

Zawartość:

  • Tworzenie konta OpenAI oraz klucza API
  • Tworzenie bota na Telegramie
  • Przygotowanie serwera, uruchamianie bota

1. Tworzenie konta i klucza API OpenAI

Przejdź na stronę OpenAI i stwórz swoje konto. Możesz się zarejestrować podając adres e-mail lub kontynuować, logując się przez istniejące konto Google lub Microsoft.

регистрация OpenAI

Następnym krokiem jest wpisanie numeru, na który zostanie wysłana wiadomość SMS w celu potwierdzenia.

Uwaga, OpenAI nie jest dostępne we wszystkich krajach. Zobacz: Supported countries and territories link do listy obsługiwanych krajów.

Tworzenie klucza API

Kliknij na swoje awatar w prawym górnym rogu, a następnie wybierz opcję View API Keys. Kliknij Create new secret Key, aby utworzyć klucz API, a następnie skopiuj go.

Uwaga! Upewnij się, że zapiszesz ten klucz, ponieważ nie będziesz w stanie go skopiować przy kolejnym logowaniu. Jeśli go zgubisz, będziesz musiał wygenerować nowy klucz.

OpenAI API key

2. Tworzenie bota na Telegramie

Będziemy używać specjalnego bota @BotFather aby stworzyć bota na Telegramie. A więc, aby stworzyć nowego bota, wykonaj poniższą komendę

/newbot

Następnie przypisz botowi nazwę i pseudonim — będziesz mógł go znaleźć w Telegramie za pomocą tego pseudonimu. Pseudonim powinien być unikalny, składać się z liter łacińskich i kończyć się na „bot”. Dla naszego przykładu, podajmy pseudonim – uni_chat_gpt_bot

Po utworzeniu bota, zobaczysz następującą wiadomość

telegram bot token

Dla nas istotny jest token wygenerowany podczas tworzenia bota. Będziemy go używać w przyszłości do integracji z OpenAI ChatGPT.

3. Przygotowanie serwera, uruchamianie bota

W tym przewodniku stworzymy prostego chatbota, używając Davinci AI modelu do generowania odpowiedzi. To dokładny i kosztowny model, ale działa wolniej, ponieważ operuje przy użyciu wielu danych. Może wykonywać zadania wszystkich innych modeli, ale wymaga mniej wskazówek w sekcji „Instrukcje dla bota”.

W sekcjach Examples oraz OpenAI Cookbook możesz zobaczyć przykłady wykorzystania modeli oraz eksperymentować z ustawieniami w narzędziu  Playground.

Dla przykładu w tym przewodniku, wybraliśmy Friend chat wzorzec, którym jest emulacja konwersacji oparta na tekście. Jako podstawę, weźmiemy żądanie API dla tego szablonu w języku Python, ale dostosujemy je do naszych wymagań.

Nadszedł czas, aby stworzyć i umieścić skrypt w języku Python na serwerze. Będziemy używać VPS opartego na systemie Ubuntu Server 20.04.

Logowanie do serwera za pomocą SSH.

Domyślnie Ubuntu Server 20.04 już ma zainstalowaną wersję 3 języka Python.

Aby sprawdzić, wprowadź poniższą komendę

python3

Odpowiedź:

Python 3.8.10 (default, Nov 14 2022, 12:59:47) 
[GCC 9.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

To oznacza, że Python 3.8.10 jest już zainstalowany na serwerze i możemy przejść do kolejnego kroku

Zainstaluj pip:

apt install pip

Zainstaluj niezbędne biblioteki dla naszego skryptu:

pip install openai

pip install pyTelegramBotAPI

Stwórz plik main.py:

nano main.py

Wstaw poniższy kod:

import os
import openai
import telebot

openai.api_key = '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'
bot = telebot.TeleBot('5868492437:AAHzr8E09ooGpXNw7lOf2On2K53FKz-ZTyc')

@bot.message_handler(func=lambda _: True)
def handle_message(message):
response = openai.Completion.create(
model="text-davinci-003",
prompt=message.text,
temperature=0.5,
max_tokens=60,
top_p=1.0,
frequency_penalty=0.5,
presence_penalty=0.0,
)
bot.send_message(chat_id=message.from_user.id, text=response['choices'][0]['text'])

bot.polling()

Gdzie,

openai.api_key = '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'

API-key OpenAI
bot = telebot.TeleBot('5868492437:AAHzr8E09ooGpXNw7lOf2On2K53FKz-ZTyc')

Telegram chatbot API klusz

Odpowiednio, muszą zostać zastąpione własnymi danymi.

Uruchom skrypt:

python3 main.py

Jeśli nie zostaną wykryte żadne błędy, możesz przejść do testowania naszego bota na Telegramie. Aby to zrobić, musisz go znaleźć za pomocą pseudonimu – uni_chat_gpt_bot i możesz rozpocząć dialog:

chatgpt bot