Erstellen und Bereitstellen Ihres persönlichen Terminal-ChatGPT-Bots in Python mit OpenAI-APIs
Konversationsbots werden immer beliebter und bieten eine interaktive Möglichkeit für Nutzer, mit Technologie zu interagieren. OpenAIs „GPT“ (Generative Pre-trained Transformer)-Modelle ermöglichen Entwicklern die Erstellung fortschrittlicher Konversationsagenten.
In diesem Tutorial erstellen und implementieren Sie Ihren eigenen Terminal-ChatGPT-Bot mit Python und den OpenAI-APIs auf einer ccloud³ VM mit Ubuntu.
Am Ende dieses Tutorials verfügen Sie über einen voll funktionsfähigen Bot, der Benutzeranfragen direkt vom Terminal aus bearbeiten kann und eine ansprechende sowie dynamische Benutzererfahrung bietet. Egal, ob Sie ein erfahrener Entwickler sind oder gerade erst anfangen – dieses Tutorial vermittelt Ihnen das Wissen, um die Leistung von ChatGPT in Ihren Projekten zu nutzen und eigene KI-Bots zu entwickeln.
Voraussetzungen
Bevor Sie mit der Implementierung beginnen, stellen Sie sicher, dass Sie Folgendes haben:
- Eine verfügbare ccloud³ VM mit mindestens 4 GB RAM und 2 CPUs.
- Python 3.7 oder höher, installiert auf Ihrer Ubuntu ccloud³ VM.
- Grundlegende Kenntnisse in der Python-Programmierung.
- Ein OpenAI-Konto mit Zugriff auf die ChatGPT-APIs.
Schritt 1 – Einrichten der Umgebung
In diesem Schritt richten Sie die Umgebung ein, um Ihren ChatGPT-Terminal-Bot auf einer ccloud³ VM mit Ubuntu zu erstellen und bereitzustellen.
Erstellen einer ccloud³ VM
Melden Sie sich in Ihrem ccenter-Konto an.
Nun erstellen Sie eine ccloud³ VM:
- Wechseln Sie zum ccloud³-Bereich.
- Klicken Sie auf „Neue Instanz installieren“.
- Wählen Sie das Ubuntu-Betriebssystem (vorzugsweise die neueste LTS-Version).
- Wählen Sie Ihren bevorzugten Pool und die gewünschten Ressourcen aus.
- Fügen Sie Ihre SSH-Schlüssel für sicheren Zugriff hinzu oder wählen Sie ein Passwort.
- Geben Sie Ihrer neuen ccloud³ VM einen Namen.
- Klicken Sie auf „VM erstellen“.
Verbindung zu Ihrer ccloud³ VM herstellen
Öffnen Sie auf Ihrem lokalen Rechner ein Terminal und verwenden Sie den folgenden Befehl, wobei Sie <your_ccloud³-VM_ip> durch die IP-Adresse Ihrer ccloud³ VM ersetzen:
ssh root@<your_ccloud³-VM_ip>
Python-Umgebung einrichten
Führen Sie die folgenden Befehle aus, um sicherzustellen, dass Ihr System auf dem neuesten Stand ist:
sudo apt update
sudo apt upgrade
Installieren Sie Python und pip mit den folgenden Befehlen:
sudo apt install python3 python3-pip
Installieren Sie virtualenv, um isolierte Python-Umgebungen zu erstellen:
sudo pip3 install virtualenv
Navigieren Sie zu Ihrem gewünschten Verzeichnis und erstellen Sie einen Projektordner:
mkdir my_chatgpt_bot
cd my_chatgpt_bot
Erstellen und aktivieren Sie eine virtuelle Umgebung:
virtualenv venv
source venv/bin/activate
Erforderliche Python-Pakete installieren
Installieren Sie das OpenAI-Paket und alle weiteren Abhängigkeiten:
pip install openai
Konfigurieren des OpenAI API-Schlüssels
Zunächst müssen Sie Ihren OpenAI API-Schlüssel abrufen.
- Melden Sie sich in Ihrem OpenAI-Konto an.
- Wechseln Sie zum API-Bereich, um Ihren API-Schlüssel zu erhalten.
Nun legen Sie die Umgebungsvariablen fest:
Speichern Sie Ihren API-Schlüssel sicher in einer Umgebungsvariablen. Öffnen Sie die Datei .bashrc oder .bash_profile und fügen Sie Folgendes hinzu:
export OPENAI_API_KEY='your-api-key-here'
Aktualisieren Sie die Umgebungsvariablen:
source ~/.bashrc
Überprüfen Sie, ob die Umgebungsvariable korrekt gesetzt wurde:
echo $OPENAI_API_KEY
Nachdem die Umgebung eingerichtet ist, können Sie mit der Entwicklung Ihres ChatGPT-Bots beginnen. Im nächsten Schritt schreiben wir den Code, um Benutzeranfragen zu verarbeiten und mit der OpenAI API zu interagieren.
Schritt 2 – Erstellen des ChatGPT-Bots
Nun, da die Umgebung eingerichtet ist, bauen wir den ChatGPT-Bot. Sie werden das Modell gpt-turbo-3.5 verwenden.
Hierfür werden drei wichtige Bibliotheken benötigt: openai, textract und glob.
OpenAI ist ein führendes KI-Forschungsunternehmen, das die ChatGPT-API entwickelt hat. Mit der OpenAI API können Sie Eingabeaufforderungen senden und Antworten vom ChatGPT-Modell erhalten, um Konversationsbots zu erstellen. Mehr über OpenAI und seine Angebote finden Sie hier.
Die zweite wichtige Bibliothek ist textract, eine Python-Bibliothek, die Text aus verschiedenen Dateiformaten extrahieren kann. Sie unterstützt unter anderem folgende Formate:
- Textformate: TXT, CSV, JSON, XML, HTML, Markdown, LaTeX
- Dokumentformate: DOC, DOCX, XLS, XLSX, PPT, PPTX, ODT, ODS
- eBook-Formate: EPUB, MOBI, AZW, FB2
- Bildformate mit eingebettetem Text: JPG, PNG, BMP, GIF, TIFF, PDF
- Quellcode-Dateien: Python, C, C++, Java, JavaScript, PHP, Ruby
Die glob-Bibliothek ist ein in Python integriertes Modul, das es ermöglicht, Dateien und Verzeichnisse mithilfe von Musterabgleichen zu suchen. Sie können damit Dateien mit einer bestimmten Erweiterung oder nach spezifischen Namensmustern filtern.
Der Terminal-Bot wird so programmiert, dass er Antworten basierend auf den in einem lokalen Verzeichnis gespeicherten Daten liefert.
Installieren Sie zunächst die erforderliche Bibliothek textract, da sie nicht standardmäßig enthalten ist:
pip install textract
Erstellen Sie nun eine neue Datei mit dem Namen mygptbot.py und kopieren Sie den folgenden Code:
vi mygptbot.py
import os
import glob
import openai
import textract
class Chatbot:
def __init__(self):
self.openai_api_key = os.getenv("OPENAI_API_KEY")
self.chat_history = []
def append_to_chat_history(self, message):
self.chat_history.append(message)
def read_personal_file(self, file_path):
try:
text = textract.process(file_path).decode("utf-8")
return text
except Exception as e:
print(f"Fehler beim Lesen der Datei {file_path}: {e}")
return ""
def collect_user_data(self):
data_directory = "./data"
data_files = glob.glob(os.path.join(data_directory, "*.*"))
user_data = ""
for file in data_files:
file_extension = os.path.splitext(file)[1].lower()
if file_extension in (".pdf", ".docx", ".xlsx", ".xls"):
user_data += self.read_personal_file(file)
else:
with open(file, "r", encoding="utf-8") as f:
user_data += f.read() + "\n"
return user_data
def create_chat_response(self, message):
self.append_to_chat_history(message)
user_data = self.collect_user_data()
messages = [
{"role": "system", "content": "Sie sind ein hilfreicher Assistent."},
{"role": "user", "content": message},
{"role": "assistant", "content": message},
]
if user_data:
messages.append({"role": "user", "content": user_data})
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=messages,
temperature=0.7,
max_tokens=256,
top_p=0.9,
n=2,
stop=None,
frequency_penalty=0.9,
presence_penalty=0.9
)
self.append_to_chat_history(response.choices[0].message.content.strip())
return response.choices[0].message.content.strip()
def start_chatting(self):
while True:
user_input = input("Benutzer: ")
if user_input.lower() == "exit":
print("Chatbot: Auf Wiedersehen! Ich wünsche Ihnen einen schönen Tag!")
break
bot_response = self.create_chat_response(user_input)
print("Chatbot:", bot_response)
chatbot = Chatbot()
chatbot.start_chatting()
Um den ChatGPT-Bot zu starten, führen Sie den folgenden Befehl in der Konsole Ihrer ccloud³ VM aus:
python chatGPTbot.py
Ausführen des ChatGPT-Bots
So können Sie ganz einfach mit dem ChatGPT-Bot interagieren und ihn für Multitasking, Fragen und vieles mehr nutzen.
Ihr persönlicher ChatGPT-Bot ist jetzt bereit für die Unterhaltung. Beginnen Sie die Interaktion, indem Sie Nachrichten eingeben; der Bot wird entsprechend antworten. Wenn Sie fertig sind, geben Sie „exit“ ein, um die Konversation zu beenden.
Fazit
Sie haben gelernt, wie Sie einen leistungsstarken ChatGPT-Bot auf Ihrer Ubuntu-Maschine mit Python erstellen und bereitstellen. Der bereitgestellte Code ermöglicht es Ihrem Bot, persönliche Benutzerdaten aus verschiedenen Dateiformaten zu berücksichtigen und zu nutzen, um ein individuell angepasstes Benutzererlebnis zu bieten. Sie können ihn mit anderen Plattformen integrieren oder einen webbasierten Chatbot entwickeln. Dank der Vielseitigkeit von ChatGPT und der Einfachheit von Python sind die Möglichkeiten nahezu unbegrenzt.
Passen Sie den Bot weiter an und erweitern Sie seine Funktionen nach Ihren Bedürfnissen.