LemmaTeks / app.py
louiecerv's picture
Update app.py
2ef385a verified
import streamlit as st
import google.generativeai as genai
import requests
import os
MODEL_ID = "gemini-2.0-flash-exp"
api_key = os.getenv("GEMINI_API_KEY")
model_id = MODEL_ID
genai.configure(api_key=api_key)
if "model" not in st.session_state:
st.session_state.model = genai.GenerativeModel(MODEL_ID)
model = st.session_state.model
chat = model.start_chat()
creative_prompt = ""
factcheck_prompt = ""
# 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=2000, value=1000, step=50)
creativity_level = st.slider("Creativity Level:", min_value=0.0, max_value=1.0, value=0.3, step=0.1)
# Checkboxes for Features
creative_mode = st.checkbox("Enable Creative Mode")
fact_checking = st.checkbox("Enable Fact-Checking")
#modify prompt based on settings
if creative_mode:
creative_prompt = " Optimize the creativity of your response. "
if fact_checking:
factcheck_prompt = "Support your answer with evidences. "
# Text Input Field
user_prompt = st.text_area("Enter Your Prompt Here:")
# Append the creative and fact checking
user_prompt = user_prompt + creative_prompt + factcheck_prompt
# 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:
response = model.generate_content(
f"Format: {output_format}\nTone: {tone_style}\nPrompt: {user_prompt}",
generation_config = genai.GenerationConfig(
max_output_tokens=text_length * 2,
temperature=creativity_level,
)
)
st.markdown(response.text)
except Exception as e:
st.error(f"Exception occured: {e}")