Spaces:
Sleeping
Sleeping
| # app.py | |
| import os | |
| import openai | |
| import streamlit as st | |
| # Load OpenAI API key from Hugging Face Secrets | |
| openai.api_key = os.getenv("OPENAI_API_KEY") | |
| # Set Streamlit page config | |
| st.set_page_config(page_title="OpenAI Chatbot", layout="centered") | |
| st.title("💬 OpenAI Chatbot") | |
| st.markdown("Talk with GPT-4 using OpenAI API.") | |
| # Initialize chat history | |
| if "messages" not in st.session_state: | |
| st.session_state.messages = [ | |
| {"role": "system", "content": "You are a helpful assistant."} | |
| ] | |
| # Display previous messages | |
| for msg in st.session_state.messages[1:]: | |
| if msg["role"] == "user": | |
| st.chat_message("user").markdown(msg["content"]) | |
| elif msg["role"] == "assistant": | |
| st.chat_message("assistant").markdown(msg["content"]) | |
| # Chat input | |
| if prompt := st.chat_input("Say something..."): | |
| st.chat_message("user").markdown(prompt) | |
| st.session_state.messages.append({"role": "user", "content": prompt}) | |
| try: | |
| # Get response from OpenAI | |
| response = openai.ChatCompletion.create( | |
| model="gpt-4", # or "gpt-3.5-turbo" | |
| messages=st.session_state.messages, | |
| temperature=0.7, | |
| ) | |
| reply = response.choices[0].message["content"] | |
| st.chat_message("assistant").markdown(reply) | |
| st.session_state.messages.append({"role": "assistant", "content": reply}) | |
| except Exception as e: | |
| error_msg = f"❌ Error: {str(e)}" | |
| st.chat_message("assistant").markdown(error_msg) | |