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.
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.
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ść
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: