# 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)