Spaces:
Build error
Build error
| 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}") | |