Anfängertutorial: Einen eigenen Chatbot programmieren (updated 2024)

Einen eigenen ChatGPT Chatbot als Kommandozeilentool programmieren

Seit der Einführung von ChatGPT hat sich die Technologie rasant weiterentwickelt. Die neueren Versionen der OpenAI API bieten noch mehr Möglichkeiten für die Entwicklung von Chatbots. In diesem Tutorial zeige ich, wie man einen eigenen Chatbot für die Kommandozeile erstellt, der die moderne OpenAI API nutzt.

Der Code

Erstelle eine neue Datei chat.py und füge folgenden Code ein:

import os
import openai
from dotenv import load_dotenv

# Lade Umgebungsvariablen
load_dotenv()
client = openai.OpenAI(api_key=os.getenv("OPENAI_API_KEY"))

def generate_response(prompt):
    try:
        # Erstelle Chat Completion mit der neuesten API
        response = client.chat.completions.create(
            model="gpt-4-turbo-preview",  # oder "gpt-3.5-turbo" für die günstigere Option
            messages=[
                {"role": "system", "content": "Du bist ein hilfreicher Assistent."},
                {"role": "user", "content": prompt}
            ],
            temperature=0.7
        )
        # Extrahiere die Antwort
        return response.choices[0].message.content
    except Exception as e:
        return f"Ein Fehler ist aufgetreten: {str(e)}"

def main():
    print("Willkommen beim Konsolen-Chat! (Beenden mit 'exit', 'quit' oder 'bye')")
    # Speichere den Chatverlauf
    conversation = []
    
    while True:
        user_input = input("\nIch: ")
        if user_input.lower() in ["exit", "quit", "bye"]:
            print("Auf Wiedersehen!")
            break
            
        # Füge neue Nachricht zum Verlauf hinzu
        conversation.append({"role": "user", "content": user_input})
        
        # Generiere Antwort
        response = generate_response(user_input)
        print("\nGPT:", response)
        
        # Speichere auch die Antwort im Verlauf
        conversation.append({"role": "assistant", "content": response})

if __name__ == "__main__":
    main()

Code-Erklärung

Der aktualisierte Code enthält mehrere Verbesserungen gegenüber der vorherigen Version:

  1. Moderne API-Nutzung: Wir verwenden den neuen OpenAI Client und die aktuelle API-Struktur
  2. Bessere Fehlerbehandlung: Der Code fängt mögliche API-Fehler ab
  3. Konversationsgedächtnis: Der Bot speichert den Chatverlauf
  4. System Message: Wir definieren die Rolle des Bots durch eine System-Nachricht
  5. Flexibles Modell: Wahlweise können wir GPT-4 oder GPT-3.5 verwenden

Setup und Ausführung

1. Virtuelle Umgebung erstellen

Zuerst erstellen wir eine virtuelle Python-Umgebung:

# Erstellen einer neuen virtuellen Umgebung
python3 -m venv .venv

# Aktivieren der Umgebung
# Unter Linux/Mac:
source .venv/bin/activate
# Unter Windows:
.venv\Scripts\activate

2. Abhängigkeiten installieren

pip install openai python-dotenv

3. API-Key einrichten

Erstelle eine .env Datei im Projektverzeichnis:

OPENAI_API_KEY=sk-dein-api-key-hier

Ersetze sk-dein-api-key-hier mit deinem tatsächlichen OpenAI API-Key.

4. Chatbot starten

python chat.py

Erweiterungsmöglichkeiten

Der Basis-Code lässt sich leicht erweitern. Hier einige Vorschläge:

  1. Speichern von Gesprächen: Füge eine Funktion hinzu, um Chatverläufe in einer Datei zu speichern
  2. Modellauswahl: Lass den Benutzer zwischen verschiedenen GPT-Modellen wählen
  3. Systemrolle anpassen: Ändere die Systemnachricht, um dem Bot verschiedene Persönlichkeiten zu geben
  4. Token-Zähler: Implementiere einen Zähler für verbrauchte Tokens
  5. Markdown-Unterstützung: Füge eine schönere Formatierung der Ausgaben hinzu

Wichtige Hinweise

  • Schütze deinen API-Key und teile ihn nie öffentlich
  • Beachte die Kosten: GPT-4 ist teurer als GPT-3.5-Turbo
  • Die API hat Ratenlimits, die du beachten solltest
  • Prüfe regelmäßig auf Updates der OpenAI API

Viel Spaß beim Experimentieren mit deinem eigenen ChatGPT-Bot!