


Dans ce didacticiel, nous expliquerons la création d'un chatbot IA génératif à l'aide de Python et de l'API OpenAI. Nous créerons un chatbot capable d'engager des conversations naturelles tout en maintenant le contexte et en fournissant des réponses utiles.
Conditions préalables
- Python 3.8
- Compréhension de base de la programmation Python
- Clé API OpenAI
- Connaissance de base des API RESTful
Configuration de l'environnement
Tout d'abord, configurons notre environnement de développement. Créez un nouveau projet Python et installez les dépendances requises :
pip install openai python-dotenv streamlit
Structure du projet
Notre chatbot aura une structure propre et modulaire :
chatbot/ ├── .env ├── app.py ├── chat_handler.py └── requirements.txt
Mise en œuvre
Commençons par notre logique de chatbot de base dans 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)}"
Maintenant, créons une interface Web simple en utilisant Streamlit dans 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()
Principales fonctionnalités
- Mémoire de conversation : Le chatbot maintient le contexte en stockant l'historique des conversations.
- Invite système : Nous définissons le comportement et la personnalité du chatbot via une invite système.
- Gestion des erreurs : l'implémentation inclut la gestion des erreurs de base pour les appels d'API.
- Interface utilisateur : une interface Web claire et intuitive utilisant Streamlit.
Exécuter le chatbot
- Créez un fichier .env avec votre clé API OpenAI :
OPENAI_API_KEY=your_api_key_here
- Exécutez l'application :
streamlit run app.py
Améliorations potentielles
- Persistance des conversations : ajoutez l'intégration d'une base de données pour stocker les historiques de discussion.
- Personnalités personnalisées : permet aux utilisateurs de sélectionner différentes personnalités de chatbot.
- Validation des entrées : ajoutez une validation et une désinfection des entrées plus robustes.
- Limitation du débit API : implémentez une limitation du débit pour gérer l'utilisation de l'API.
- Response Streaming : ajoutez des réponses en streaming pour une meilleure expérience utilisateur.
Conclusion
Cette implémentation démontre un chatbot IA génératif basique mais fonctionnel. La conception modulaire facilite l'extension et la personnalisation en fonction des besoins spécifiques. Bien que cet exemple utilise l'API d'OpenAI, les mêmes principes peuvent être appliqués avec d'autres modèles de langage ou API.
N'oubliez pas que lors du déploiement d'un chatbot, vous devez considérer :
- Coûts de l'API et limites d'utilisation
- Confidentialité et sécurité des données utilisateur
- Latence de réponse et optimisation
- Validation des entrées et modération du contenu
Ressources
- Documentation de l'API OpenAI
- Documentation diffusée
- Gestion de l'environnement Python
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Solution aux problèmes d'autorisation Lors de la visualisation de la version Python dans Linux Terminal Lorsque vous essayez d'afficher la version Python dans Linux Terminal, entrez Python ...

Cet article explique comment utiliser la belle soupe, une bibliothèque Python, pour analyser HTML. Il détaille des méthodes courantes comme find (), find_all (), select () et get_text () pour l'extraction des données, la gestion de diverses structures et erreurs HTML et alternatives (Sel

Le module statistique de Python fournit de puissantes capacités d'analyse statistique de données pour nous aider à comprendre rapidement les caractéristiques globales des données, telles que la biostatistique et l'analyse commerciale. Au lieu de regarder les points de données un par un, regardez simplement des statistiques telles que la moyenne ou la variance pour découvrir les tendances et les fonctionnalités des données d'origine qui peuvent être ignorées et comparer les grands ensembles de données plus facilement et efficacement. Ce tutoriel expliquera comment calculer la moyenne et mesurer le degré de dispersion de l'ensemble de données. Sauf indication contraire, toutes les fonctions de ce module prennent en charge le calcul de la fonction moyenne () au lieu de simplement additionner la moyenne. Les nombres de points flottants peuvent également être utilisés. Importer au hasard Statistiques d'importation de fracTI

Cet article compare TensorFlow et Pytorch pour l'apprentissage en profondeur. Il détaille les étapes impliquées: préparation des données, construction de modèles, formation, évaluation et déploiement. Différences clés entre les cadres, en particulier en ce qui concerne le raisin informatique

L'article traite des bibliothèques Python populaires comme Numpy, Pandas, Matplotlib, Scikit-Learn, Tensorflow, Django, Flask et Demandes, détaillant leurs utilisations dans le calcul scientifique, l'analyse des données, la visualisation, l'apprentissage automatique, le développement Web et H et H

Cet article guide les développeurs Python sur la construction d'interfaces de ligne de commande (CLI). Il détaille à l'aide de bibliothèques comme Typer, Click et Argparse, mettant l'accent sur la gestion des entrées / sorties et promouvant des modèles de conception conviviaux pour une meilleure convivialité par la CLI.

Lorsque vous utilisez la bibliothèque Pandas de Python, comment copier des colonnes entières entre deux frames de données avec différentes structures est un problème courant. Supposons que nous ayons deux dats ...

L'article traite du rôle des environnements virtuels dans Python, en se concentrant sur la gestion des dépendances du projet et l'évitement des conflits. Il détaille leur création, leur activation et leurs avantages pour améliorer la gestion de projet et réduire les problèmes de dépendance.


Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

MinGW - GNU minimaliste pour Windows
Ce projet est en cours de migration vers osdn.net/projects/mingw, vous pouvez continuer à nous suivre là-bas. MinGW : un port Windows natif de GNU Compiler Collection (GCC), des bibliothèques d'importation et des fichiers d'en-tête librement distribuables pour la création d'applications Windows natives ; inclut des extensions du runtime MSVC pour prendre en charge la fonctionnalité C99. Tous les logiciels MinGW peuvent fonctionner sur les plates-formes Windows 64 bits.

SublimeText3 version anglaise
Recommandé : version Win, prend en charge les invites de code !

Version crackée d'EditPlus en chinois
Petite taille, coloration syntaxique, ne prend pas en charge la fonction d'invite de code

VSCode Windows 64 bits Télécharger
Un éditeur IDE gratuit et puissant lancé par Microsoft

ZendStudio 13.5.1 Mac
Puissant environnement de développement intégré PHP