Spaces:
Sleeping
Sleeping
import streamlit as st | |
import google.generativeai as genai | |
from dotenv import load_dotenv | |
import os | |
# Load environment variables | |
load_dotenv() | |
# Configure GenerativeAI with API key | |
genai.configure(api_key=os.getenv('GOOGLE_API_KEY')) | |
def main(): | |
# Function to generate SQL query based on prompt input | |
def gemini_ans(prompt_input): | |
model = genai.GenerativeModel('gemini-pro') | |
response = model.generate_content([prompt_input]) | |
return response.text | |
# Set page configuration | |
st.set_page_config(page_title='SQL Query Generator', page_icon=':robot:') | |
# Header section | |
st.markdown( | |
""" | |
<style> | |
.header { | |
padding: 20px; | |
background-color: #f0f0f0; | |
border-radius: 10px; | |
margin-bottom: 20px; | |
color: black; | |
} | |
.header h1, .header h3 { | |
margin: 0; | |
color: black; | |
} | |
</style> | |
""" | |
, unsafe_allow_html=True) | |
st.markdown( | |
""" | |
<div class="header"> | |
<h1 style="text-align: center;">SQL Query Generator 🤖</h1> | |
<h3 style="text-align: center;">Generate SQL queries with ease!</h3> | |
<p style="text-align: center;">This tool allows you to generate SQL queries based on your prompt.</p> | |
</div> | |
""" | |
, unsafe_allow_html=True) | |
# Text area for input | |
input_text = st.text_area('Enter your query...') | |
# Generate SQL Query button | |
submit = st.button('Generate SQL Query', key='generate_button') | |
# Prompts for model responses | |
prompt = """ | |
You are an English to SQL language translator. Using the given text here {en}, | |
write a SQL query only without making any mistakes. | |
""" | |
prompt1 = """ | |
What would be the expected response of this query snippet: | |
``` | |
{query} | |
``` | |
Provide a sample tabular response with no explanation. | |
""" | |
prompt2 = """ | |
Explain the SQL query: | |
``` | |
{query} | |
``` | |
Please provide the simplest explanation. | |
""" | |
# Handle button click event | |
if submit: | |
with st.spinner('Generating SQL Query...'): | |
# Generate SQL query | |
sql_query = gemini_ans(prompt.format(en=input_text)) | |
st.header('Model Response') | |
st.success("Generated SQL Query Successfully!") | |
st.write(sql_query) | |
# Generate sample expected output | |
sql_table = gemini_ans(prompt1.format(query=sql_query)) | |
st.success('Sample Expected Output') | |
st.markdown(sql_table) | |
# Generate explanation of the given query | |
sql_explanation = gemini_ans(prompt2.format(query=sql_query)) | |
st.success('Explanation of the Given Query') | |
st.markdown(sql_explanation) | |
# Execute main function | |
if __name__ == "__main__": | |
main() |