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:
- Eingabeverarbeitung — Der Benutzer tippt eine Nachricht, die als Text an das KI-Modell gesendet wird.
- KI-Verarbeitung — Das Sprachmodell analysiert die Nachricht zusammen mit dem Gesprächsverlauf, um den Kontext zu verstehen.
- Antwortgenerierung — Das Modell generiert eine natürlichsprachliche Antwort basierend auf seinem Verständnis.
- Gedächtnisverwaltung — Der 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.
Abhängigkeiten installieren
Sie benötigen die OpenAI-Python-Bibliothek und python-dotenv für die Verwaltung von Umgebungsvariablen.
pip install openai python-dotenvAPI-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.
# .env file
OPENAI_API_KEY=your-api-key-hereEinen 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.
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:
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:
# 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:
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-API — Verpacken Sie Ihren Chatbot in einen Flask- oder FastAPI-Server und stellen Sie ihn bei einem Cloud-Anbieter bereit.
- Web-Oberfläche — Erstellen Sie ein Frontend mit React oder Next.js und verbinden Sie es mit Ihrer Chatbot-API.
- Messaging-Plattformen — Integration 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.