Spaces:
Sleeping
Sleeping
File size: 1,489 Bytes
e503c3b 8a6a99a e503c3b 8a6a99a e503c3b 8a6a99a e503c3b 8a6a99a e503c3b 8a6a99a e503c3b 8a6a99a | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | # 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)
|