StartseiteAI 101™Einen Chatbot erstellen
Einsteiger20 Min. LesezeitAI 101™

Einen Chatbot erstellen

Erstellen Sie Ihren eigenen KI-Chatbot von Grund auf mit natürlichem Sprachverständnis, kontextuellem Gedächtnis und anpassbarer Persönlichkeit.

Einführung

Chatbots sind eine der beliebtesten Anwendungen von KI. Vom Kundensupport bis zu persönlichen Assistenten – konversationelle KI ist überall. In diesem Leitfaden erstellen Sie einen voll funktionsfähigen Chatbot von Grund auf mit Python und der OpenAI-API.

Am Ende dieses Tutorials haben Sie einen Chatbot, der natürliche Gespräche führen kann, den Kontext über Nachrichten hinweg behält und Fehler elegant behandelt.

Wie Chatbots funktionieren

Ein moderner KI-Chatbot arbeitet in einem einfachen, aber leistungsstarken Kreislauf:

  • EingabeverarbeitungDer Benutzer tippt eine Nachricht, die als Text an das KI-Modell gesendet wird.
  • KI-VerarbeitungDas Sprachmodell analysiert die Nachricht zusammen mit dem Gesprächsverlauf, um den Kontext zu verstehen.
  • AntwortgenerierungDas Modell generiert eine natürlichsprachliche Antwort basierend auf seinem Verständnis.
  • GedächtnisverwaltungDer Gesprächsverlauf wird gespeichert und mit jeder neuen Nachricht gesendet, um den Kontext aufrechtzuerhalten.

💡 Arten von Chatbots

Es gibt regelbasierte Chatbots (die vordefinierten Skripten folgen) und KI-gestützte Chatbots (die Sprachmodelle für dynamische Antworten nutzen). Dieser Leitfaden konzentriert sich auf KI-gestützte Chatbots, die wesentlich flexibler und natürlicher sind.

Umgebung einrichten

Lassen Sie uns die Entwicklungsumgebung Schritt für Schritt einrichten.

1

Abhängigkeiten installieren

Sie benötigen die OpenAI-Python-Bibliothek und python-dotenv für die Verwaltung von Umgebungsvariablen.

bash
pip install openai python-dotenv
2

API-Schlüssel konfigurieren

Erstellen Sie eine .env-Datei im Projektstammverzeichnis, um Ihren API-Schlüssel sicher zu speichern. Hardcoden Sie niemals API-Schlüssel in Ihrem Quellcode.

text
# .env file
OPENAI_API_KEY=your-api-key-here

Einen einfachen Chatbot erstellen

Beginnen wir mit dem einfachsten möglichen Chatbot – einer, der eine Nachricht entgegennimmt und eine Antwort zurückgibt, aber kein Gedächtnis für frühere Nachrichten hat.

python
import openai
from dotenv import load_dotenv
import os

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

def chat(user_message):
    response = client.chat.completions.create(
        model="gpt-4",
        messages=[
            {"role": "system", "content": "You are a helpful assistant."},
            {"role": "user", "content": user_message}
        ],
        temperature=0.7,
        max_tokens=500
    )
    return response.choices[0].message.content

# Main loop
print("Chatbot ready! Type 'quit' to exit.")
while True:
    user_input = input("You: ")
    if user_input.lower() == 'quit':
        break
    response = chat(user_input)
    print(f"Bot: {response}")

Konversationsgedächtnis hinzufügen

Der einfache Chatbot vergisst alles zwischen Nachrichten. Um ihn gesprächsfähig zu machen, müssen wir den gesamten Gesprächsverlauf speichern und mit jeder Anfrage senden. Hier ist ein klassenbasierter Ansatz:

python
class ChatBot:
    def __init__(self, system_prompt="You are a helpful assistant."):
        self.client = openai.OpenAI(api_key=os.getenv("OPENAI_API_KEY"))
        self.conversation_history = [
            {"role": "system", "content": system_prompt}
        ]
    
    def chat(self, user_message):
        self.conversation_history.append(
            {"role": "user", "content": user_message}
        )
        
        response = self.client.chat.completions.create(
            model="gpt-4",
            messages=self.conversation_history,
            temperature=0.7,
            max_tokens=500
        )
        
        assistant_message = response.choices[0].message.content
        self.conversation_history.append(
            {"role": "assistant", "content": assistant_message}
        )
        
        # Keep only last 20 messages to manage token usage
        if len(self.conversation_history) > 21:
            self.conversation_history = (
                [self.conversation_history[0]]  # Keep system prompt
                + self.conversation_history[-20:]
            )
        
        return assistant_message

Token-Limits verwalten

Sprachmodelle haben ein maximales Kontextfenster (z.B. 8K oder 128K Token). Bei langen Gesprächen müssen Sie ältere Nachrichten kürzen. Der obige Code behält den System-Prompt und die letzten 20 Nachrichten als einfache Strategie.

Persönlichkeit anpassen

Der System-Prompt definiert die Persönlichkeit, Expertise und Verhaltensregeln Ihres Chatbots. Hier sind Beispiele verschiedener Persönlichkeiten:

python
# Customer support bot
support_bot = ChatBot(
    system_prompt="""You are a friendly customer support agent 
for a tech company. You are patient, empathetic, and always 
try to resolve issues step by step. If you don't know something, 
say so honestly and offer to escalate to a human agent."""
)

# Coding tutor bot
tutor_bot = ChatBot(
    system_prompt="""You are a Python programming tutor. 
Explain concepts clearly using simple language and examples. 
When the user makes a mistake, guide them to the answer 
instead of giving it directly. Use code examples frequently."""
)

Fehlerbehandlung

In der Produktion können API-Aufrufe aufgrund von Rate-Limits, Netzwerkproblemen oder Serverfehlern fehlschlagen. Implementieren Sie immer eine Wiederholungslogik mit exponentiellem Backoff:

python
import time

def chat_with_retry(self, user_message, max_retries=3):
    for attempt in range(max_retries):
        try:
            return self.chat(user_message)
        except openai.RateLimitError:
            wait_time = 2 ** attempt
            print(f"Rate limited. Waiting {wait_time}s...")
            time.sleep(wait_time)
        except openai.APIError as e:
            print(f"API error: {e}")
            if attempt == max_retries - 1:
                return "Sorry, I'm having trouble right now."
    return "Please try again later."

Bereitstellungsoptionen

Sobald Ihr Chatbot lokal funktioniert, haben Sie mehrere Bereitstellungsoptionen:

  • REST-APIVerpacken Sie Ihren Chatbot in einen Flask- oder FastAPI-Server und stellen Sie ihn bei einem Cloud-Anbieter bereit.
  • Web-OberflächeErstellen Sie ein Frontend mit React oder Next.js und verbinden Sie es mit Ihrer Chatbot-API.
  • Messaging-PlattformenIntegration mit Slack, Discord, WhatsApp oder Telegram über deren Bot-APIs.

⚠️ Sicherheitshinweise

Geben Sie Ihren API-Schlüssel niemals an die Client-Seite weiter. Leiten Sie Anfragen immer über Ihren eigenen Backend-Server. Implementieren Sie Rate-Limiting und Eingabevalidierung, um Missbrauch zu verhindern.

Zusammenfassung

Sie haben einen vollständigen Chatbot mit Gedächtnis und Persönlichkeit erstellt. Wichtigste Erkenntnisse:

  • KI-Chatbots funktionieren, indem der Gesprächsverlauf mit jeder Anfrage an ein Sprachmodell gesendet wird.
  • Konversationsgedächtnis ist wesentlich für natürlichen Dialog – speichern Sie Nachrichten und verwalten Sie Token-Limits.
  • System-Prompts definieren Persönlichkeit, Expertise und Verhaltensgrenzen Ihres Chatbots.
  • Implementieren Sie immer Fehlerbehandlung und Wiederholungslogik für Produktionsanwendungen.
Vionis Labs - Intelligent AI Solutions for Every Industry | Vionis Labs