LemmaTeks / app.py
Ci-Dave's picture
Try fixing error
6b65b7e
raw
history blame
2.51 kB
import streamlit as st
import openai
# OpenAI API key
openai.api_key = st.secrets["openai"]["api_key"]
# Page Title
st.title("LemmaTeks: AI-Powered Text Generator")
# Sidebar for Settings
with st.sidebar:
st.header("Configuration")
# Dropdown for Output Format
output_format = st.selectbox(
"Choose Output Format:",
["Story", "Poem", "Article", "Code"]
)
# Dropdown for Tone/Style
tone_style = st.selectbox(
"Select Tone/Style:",
["Formal", "Informal", "Humorous", "Technical"]
)
# Sliders for Text Length and Creativity
text_length = st.slider("Text Length (words):", min_value=50, max_value=1000, step=50)
creativity_level = st.slider("Creativity Level:", min_value=0.0, max_value=1.0, step=0.1)
# Number of Responses
num_responses = st.number_input("Number of Responses:", min_value=1, max_value=5, step=1)
# Checkboxes for Features
creative_mode = st.checkbox("Enable Creative Mode")
fact_checking = st.checkbox("Enable Fact-Checking")
# Text Input Field
user_prompt = st.text_area("Enter Your Prompt Here:")
# Submit Button
if st.button("Generate"):
if user_prompt.strip() == "":
st.warning("Please enter a prompt before generating!")
else:
# Process AI Request
st.write("Generating responses...")
try:
# OpenAI API call
response = openai.Completion.create(
engine="text-davinci-003", # GPT-3.5 engine
prompt=f"Format: {output_format}\nTone: {tone_style}\nPrompt: {user_prompt}",
max_tokens=text_length, # Approximate word count
temperature=creativity_level, # Creativity level
n=num_responses # Number of responses
)
# Display Responses
for i, choice in enumerate(response.choices):
st.subheader(f"Response {i + 1}")
st.write(choice.text.strip())
except openai.error.AuthenticationError as e:
st.error(f"Authentication failed. Please check your API key: {e}")
except openai.error.RateLimitError as e:
st.error(f"Rate limit exceeded. Please try again later: {e}")
except openai.OpenAIError as e: # This is the correct way for general OpenAI errors
st.error(f"OpenAI API error: {e}")
except Exception as e:
st.error(f"An unexpected error occurred: {e}")