Download app.py from M-lai/chat: direct link, hf CLI and curl.
- Browser
- Download file 1.85 kB
-
https://huggingface.co/spaces/M-lai/chat/resolve/main/app.py
- Command line
-
hf download hf://spaces/M-lai/chat/app.py
-
curl -L -o app.py https://huggingface.co/spaces/M-lai/chat/resolve/main/app.py
1.85 kB
| import openai | |
| import streamlit as st | |
| # Barre latérale pour l'API Key et les liens utiles | |
| with st.sidebar: | |
| openai_api_key = st.text_input("Clé API OpenAI", key="chatbot_api_key", type="password") | |
| st.markdown("[Obtenez une clé API OpenAI](https://platform.openai.com/account/api-keys)") | |
| st.markdown("[Voir le code source](https://github.com/streamlit/llm-examples/blob/main/Chatbot.py)") | |
| st.markdown("[](https://codespaces.new/streamlit/llm-examples?quickstart=1)") | |
| # Titre et description du chatbot | |
| st.title("💬 Chatbot") | |
| st.caption("🚀 Un chatbot Streamlit propulsé par OpenAI") | |
| # Initialisation des messages dans la session | |
| if "messages" not in st.session_state: | |
| st.session_state["messages"] = [{"role": "assistant", "content": "Comment puis-je vous aider ?"}] | |
| # Affichage des messages dans l'historique de conversation | |
| for msg in st.session_state.messages: | |
| st.chat_message(msg["role"]).write(msg["content"]) | |
| # Entrée de l'utilisateur et génération de la réponse | |
| if prompt := st.chat_input(): | |
| if not openai_api_key: | |
| st.info("Veuillez ajouter votre clé API OpenAI pour continuer.") | |
| st.stop() | |
| # Ajout du message utilisateur dans la session | |
| st.session_state.messages.append({"role": "user", "content": prompt}) | |
| st.chat_message("user").write(prompt) | |
| # Configuration de la clé API et appel de l'API OpenAI | |
| openai.api_key = openai_api_key | |
| response = openai.ChatCompletion.create( | |
| model="gpt-3.5-turbo", | |
| messages=st.session_state.messages | |
| ) | |
| # Traitement de la réponse et mise à jour de l'historique | |
| msg = response.choices[0].message["content"] | |
| st.session_state.messages.append({"role": "assistant", "content": msg}) | |
| st.chat_message("assistant").write(msg) | |