File size: 2,311 Bytes
51a70c0
 
 
 
 
973b88e
 
 
 
 
 
 
 
 
 
 
 
51a70c0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
47
48
49
50
51
52
53
54
55
56
57
import streamlit as st
import os
import google.generativeai as genai
from dotenv import load_dotenv

# # Load API key from .env file
# load_dotenv()
# genai.configure(api_key=os.getenv("GEMINI_API_KEY"))

# Retrieve API key from Hugging Face Secrets
api_key = os.getenv("GEMINI_API_KEY")

if not api_key:
    raise ValueError("API key not found. Make sure it is set in Hugging Face Secrets.")

# Configure Gemini API
genai.configure(api_key=api_key)

# Title of the app
st.title("KAI Chat")
st.markdown("Hi! I'm your Kool-AI Assistant! Start by entering text and adjust to generate text in your desired format, style, and length.")

# Input fields for user
core_topic = st.text_area("Enter your topic or text here:", height=150, placeholder="e.g., Climate change, AI advancements, etc.")

output_format = st.selectbox("Select the output format:", ["Story", "Poem", "Article", "Code"])

tone_style = st.selectbox("Choose the tone or style for the text:", ["Formal", "Informal", "Humorous", "Technical"])

length = st.slider("Choose the length of the generated text:", 50, 1000, 200, help="Shorter texts are ideal for quick summaries; longer ones for more detailed results.")

creativity = st.slider("Select creativity level (1 to 10):", 1, 10, 5, help="1 is less creative, 10 is highly creative.") / 10  # Scale down to 0.1 - 1.0

num_responses = st.radio("How many responses would you like to generate?", [1, 2, 3], help="Choose the number of different responses you'd like to receive.")

# Button for generating text
if st.button("Generate Text"):
    if core_topic.strip() == "":
        st.warning("Please enter a topic to get started!")
    else:
        try:
            with st.spinner('Generating content...'):
                model = genai.GenerativeModel("gemini-pro")
                response = model.generate_content(
                    contents=f"Write a {tone_style.lower()} {output_format.lower()} about {core_topic}",
                    generation_config=genai.GenerationConfig(
                        max_output_tokens=length
                    )
                )
            
            # Display the generated content
            st.subheader("Generated Text:")
            st.write(response.text)

        except Exception as e:
            st.error(f"Oops! Something went wrong: {e}")