Code / app.py
Artificial-superintelligence's picture
Update app.py
1b83088 verified
raw
history blame
5.08 kB
import streamlit as st
import google.generativeai as genai
import requests
import subprocess
import os
# Configure the Gemini API
genai.configure(api_key=st.secrets["GOOGLE_API_KEY"])
# Create the model with optimized parameters and enhanced system instructions
generation_config = {
"temperature": 0.7, # Lower temperature for more deterministic responses
"top_p": 0.85, # Adjusted for better diversity
"top_k": 40, # Increased for more diverse tokens
"max_output_tokens": 12288, # Increased for longer responses
}
model = genai.GenerativeModel(
model_name="gemini-1.5-pro",
generation_config=generation_config,
system_instruction="""
You are Ath, a highly knowledgeable code assistant. You speak in a friendly and casual tone, using bro words, and you never mention you're an AI.
Your responses should contain optimized code only, without explanations. You are designed to provide accurate, efficient, and high-quality code solutions.
"""
)
chat_session = model.start_chat(history=[])
def generate_response(user_input):
try:
response = chat_session.send_message(user_input)
return response.text
except Exception as e:
return f"Error: {e}"
def optimize_code(code):
# Placeholder for code optimization logic
# This could involve using external tools or libraries for static analysis and optimization
return code
def fetch_from_github(query):
# Placeholder for fetching code snippets from GitHub
# This could involve using the GitHub API to search for relevant code
return ""
# Streamlit UI setup
st.set_page_config(page_title="Sleek AI Code Assistant", page_icon="πŸ’»", layout="wide")
st.markdown("""
<style>
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;600;700&display=swap');
body {
font-family: 'Inter', sans-serif;
background-color: #f0f4f8;
color: #1a202c;
}
.stApp {
max-width: 1000px;
margin: 0 auto;
padding: 2rem;
}
.main-container {
background: #ffffff;
border-radius: 16px;
padding: 2rem;
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);
}
h1 {
font-size: 2.5rem;
font-weight: 700;
color: #2d3748;
text-align: center;
margin-bottom: 1rem;
}
.subtitle {
font-size: 1.1rem;
text-align: center;
color: #4a5568;
margin-bottom: 2rem;
}
.stTextArea textarea {
border: 2px solid #e2e8f0;
border-radius: 8px;
font-size: 1rem;
padding: 0.75rem;
transition: all 0.3s ease;
}
.stTextArea textarea:focus {
border-color: #4299e1;
box-shadow: 0 0 0 3px rgba(66, 153, 225, 0.5);
}
.stButton button {
background-color: #4299e1;
color: white;
border: none;
border-radius: 8px;
font-size: 1.1rem;
font-weight: 600;
padding: 0.75rem 2rem;
transition: all 0.3s ease;
width: 100%;
}
.stButton button:hover {
background-color: #3182ce;
}
.output-container {
background: #f7fafc;
border-radius: 8px;
padding: 1rem;
margin-top: 2rem;
}
.code-block {
background-color: #2d3748;
color: #e2e8f0;
font-family: 'Fira Code', monospace;
font-size: 0.9rem;
border-radius: 8px;
padding: 1rem;
margin-top: 1rem;
overflow-x: auto;
}
.stAlert {
background-color: #ebf8ff;
color: #2b6cb0;
border-radius: 8px;
border: none;
padding: 0.75rem 1rem;
}
.stSpinner {
color: #4299e1;
}
</style>
""", unsafe_allow_html=True)
st.markdown('<div class="main-container">', unsafe_allow_html=True)
st.title("πŸ’» Sleek AI Code Assistant")
st.markdown('<p class="subtitle">Powered by Google Gemini</p>', unsafe_allow_html=True)
prompt = st.text_area("What code can I help you with today?", height=120)
if st.button("Generate Code"):
if prompt.strip() == "":
st.error("Please enter a valid prompt.")
else:
with st.spinner("Generating code..."):
completed_text = generate_response(prompt)
if "Error" in completed_text:
st.error(completed_text)
else:
optimized_code = optimize_code(completed_text)
st.success("Code generated and optimized successfully!")
st.markdown('<div class="output-container">', unsafe_allow_html=True)
st.markdown('<div class="code-block">', unsafe_allow_html=True)
st.code(optimized_code)
st.markdown('</div>', unsafe_allow_html=True)
st.markdown('</div>', unsafe_allow_html=True)
st.markdown("""
<div style='text-align: center; margin-top: 2rem; color: #4a5568;'>
Created with ❀️ by Your Sleek AI Code Assistant
</div>
""", unsafe_allow_html=True)
st.markdown('</div>', unsafe_allow_html=True)