


Erstellen eines einfachen generativen KI-Chatbots: Ein praktischer Leitfaden
In diesem Tutorial führen wir die Erstellung eines generativen KI-Chatbots mit Python und der OpenAI-API durch. Wir erstellen einen Chatbot, der natürliche Gespräche führen kann, dabei den Kontext beibehält und hilfreiche Antworten liefert.
Voraussetzungen
- Python 3.8
- Grundlegendes Verständnis der Python-Programmierung
- OpenAI-API-Schlüssel
- Grundkenntnisse über RESTful APIs
Einrichten der Umgebung
Zuerst richten wir unsere Entwicklungsumgebung ein. Erstellen Sie ein neues Python-Projekt und installieren Sie die erforderlichen Abhängigkeiten:
pip install openai python-dotenv streamlit
Projektstruktur
Unser Chatbot wird eine klare, modulare Struktur haben:
chatbot/ ├── .env ├── app.py ├── chat_handler.py └── requirements.txt
Durchführung
Beginnen wir mit unserer Kern-Chatbot-Logik in chat_handler.py:
import openai from typing import List, Dict import os from dotenv import load_dotenv load_dotenv() class ChatBot: def __init__(self): openai.api_key = os.getenv("OPENAI_API_KEY") self.conversation_history: List[Dict[str, str]] = [] self.system_prompt = """You are a helpful AI assistant. Provide clear, accurate, and engaging responses while maintaining a friendly tone.""" def add_message(self, role: str, content: str): self.conversation_history.append({"role": role, "content": content}) def get_response(self, user_input: str) -> str: # Add user input to conversation history self.add_message("user", user_input) # Prepare messages for API call messages = [{"role": "system", "content": self.system_prompt}] + \ self.conversation_history try: # Make API call to OpenAI response = openai.ChatCompletion.create( model="gpt-3.5-turbo", messages=messages, max_tokens=1000, temperature=0.7 ) # Extract and store assistant's response assistant_response = response.choices[0].message.content self.add_message("assistant", assistant_response) return assistant_response except Exception as e: return f"An error occurred: {str(e)}"
Jetzt erstellen wir eine einfache Weboberfläche mit Streamlit in app.py:
import streamlit as st from chat_handler import ChatBot def main(): st.title("? AI Chatbot") # Initialize session state if "chatbot" not in st.session_state: st.session_state.chatbot = ChatBot() # Chat interface if "messages" not in st.session_state: st.session_state.messages = [] # Display chat history for message in st.session_state.messages: with st.chat_message(message["role"]): st.write(message["content"]) # Chat input if prompt := st.chat_input("What's on your mind?"): # Add user message to chat history st.session_state.messages.append({"role": "user", "content": prompt}) with st.chat_message("user"): st.write(prompt) # Get bot response response = st.session_state.chatbot.get_response(prompt) # Add assistant response to chat history st.session_state.messages.append({"role": "assistant", "content": response}) with st.chat_message("assistant"): st.write(response) if __name__ == "__main__": main()
Hauptmerkmale
- Konversationsspeicher: Der Chatbot behält den Kontext bei, indem er den Konversationsverlauf speichert.
- Systemaufforderung: Wir definieren das Verhalten und die Persönlichkeit des Chatbots durch eine Systemaufforderung.
- Fehlerbehandlung: Die Implementierung umfasst eine grundlegende Fehlerbehandlung für API-Aufrufe.
- Benutzeroberfläche: Eine übersichtliche, intuitive Weboberfläche mit Streamlit.
Ausführen des Chatbots
- Erstellen Sie eine .env-Datei mit Ihrem OpenAI-API-Schlüssel:
OPENAI_API_KEY=your_api_key_here
- Führen Sie die Anwendung aus:
streamlit run app.py
Mögliche Verbesserungen
- Konversationspersistenz: Datenbankintegration hinzufügen, um Chatverläufe zu speichern.
- Benutzerdefinierte Persönlichkeiten: Ermöglichen Sie Benutzern die Auswahl verschiedener Chatbot-Persönlichkeiten.
- Eingabevalidierung: Fügen Sie eine robustere Eingabevalidierung und -bereinigung hinzu.
- API-Ratenbegrenzung: Implementieren Sie eine Ratenbegrenzung, um die API-Nutzung zu verwalten.
- Antwort-Streaming: Fügen Sie Streaming-Antworten für eine bessere Benutzererfahrung hinzu.
Abschluss
Diese Implementierung demonstriert einen einfachen, aber funktionalen generativen KI-Chatbot. Der modulare Aufbau ermöglicht eine einfache Erweiterung und Anpassung an spezifische Anforderungen. Während dieses Beispiel die API von OpenAI verwendet, können dieselben Prinzipien auf andere Sprachmodelle oder APIs angewendet werden.
Denken Sie daran, dass Sie beim Einsatz eines Chatbots Folgendes berücksichtigen sollten:
- API-Kosten und Nutzungsbeschränkungen
- Datenschutz und Sicherheit der Benutzer
- Antwortlatenz und Optimierung
- Eingabevalidierung und Inhaltsmoderation
Ressourcen
- OpenAI API-Dokumentation
- Streamlit-Dokumentation
- Python-Umgebungsmanagement
Das obige ist der detaillierte Inhalt vonErstellen eines einfachen generativen KI-Chatbots: Ein praktischer Leitfaden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

In Artikel wird die Unmöglichkeit des Tupelverständnisses in Python aufgrund von Syntax -Mehrdeutigkeiten erörtert. Alternativen wie die Verwendung von Tuple () mit Generatorausdrücken werden vorgeschlagen, um Tupel effizient zu erstellen (159 Zeichen)

Der Artikel erläutert Module und Pakete in Python, deren Unterschiede und Verwendung. Module sind einzelne Dateien, während Pakete Verzeichnisse mit einer __init__.py -Datei sind, die verwandte Module hierarchisch organisieren.

In Artikel werden Docstrings in Python, deren Nutzung und Vorteile erörtert. Hauptproblem: Bedeutung von DocStrings für die Code -Dokumentation und -zugriffsfunktion.

In Artikel werden Lambda -Funktionen, ihre Unterschiede zu regulären Funktionen und deren Nützlichkeit bei Programmierszenarien erläutert. Nicht alle Sprachen unterstützen sie.

In Artikel wird in Python Break, Fortsetzung und Pass erörtert, wobei ihre Rolle bei der Kontrolle der Ausführung und des Programmablaufs der Schleife erläutert wird.

In dem Artikel werden die "Pass" -Anweisung in Python, einem als Platzhalter verwendeten NULL -Operation, in Codestrukturen wie Funktionen und Klassen erörtert, die zukünftige Implementierung ohne Syntaxfehler ermöglicht.

In Artikel werden die Übergabe von Funktionen als Argumente in Python erläutert und Vorteile wie Modularität und Anwendungsfälle wie Sortier und Dekorateure hervorheben.

Artikel erörtert / und // Betreiber in Python: / for True Division, // für die Bodenabteilung. Hauptproblem ist das Verständnis der Unterschiede und Anwendungsfälle.


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Dreamweaver CS6
Visuelle Webentwicklungstools

PHPStorm Mac-Version
Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)
