-
Notifications
You must be signed in to change notification settings - Fork 197
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
b93128c
commit 38ddbb4
Showing
1 changed file
with
45 additions
and
31 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,62 +1,76 @@ | ||
from dotenv import load_dotenv | ||
|
||
load_dotenv() # take environment variables from .env. | ||
load_dotenv() ## load all the environemnt variables | ||
|
||
import streamlit as st | ||
import os | ||
import pathlib | ||
import textwrap | ||
import sqlite3 | ||
|
||
import google.generativeai as genai | ||
## Configure Genai Key | ||
|
||
os.getenv("GOOGLE_API_KEY") | ||
genai.configure(api_key=os.getenv("GOOGLE_API_KEY")) | ||
|
||
## Function to load OpenAI model and get respones | ||
## Function To Load Google Gemini Model and provide queries as response | ||
|
||
def get_gemini_response(question,prompt): | ||
model = genai.GenerativeModel('gemini-pro') | ||
response = model.generate_content([prompt[0],question]) | ||
print(response.text) | ||
output = read_sql_query(response.text, "test.db") | ||
print(output) | ||
return output | ||
|
||
def read_sql_query(sql, db): | ||
conn = sqlite3.connect(db) | ||
cur = conn.cursor() | ||
model=genai.GenerativeModel('gemini-pro') | ||
response=model.generate_content([prompt[0],question]) | ||
return response.text | ||
|
||
## Fucntion To retrieve query from the database | ||
|
||
def read_sql_query(sql,db): | ||
conn=sqlite3.connect(db) | ||
cur=conn.cursor() | ||
cur.execute(sql) | ||
rows = cur.fetchall() | ||
rows=cur.fetchall() | ||
conn.commit() | ||
conn.close() | ||
for row in rows: | ||
print(row) | ||
return rows | ||
|
||
##initialize our streamlit app | ||
prompt = [ | ||
"""You are an expert in converting English questions to SQL code! | ||
## Define Your Prompt | ||
prompt=[ | ||
""" | ||
You are an expert in converting English questions to SQL query! | ||
The SQL database has the name STUDENT and has the following columns - NAME, CLASS, | ||
SECTION \n\nFor example,\nExample 1 - How many entries of records are present?, | ||
the SQL command will be something like this SELECT COUNT(*) FROM STUDENT ; | ||
the SQL command will be something like this SELECT COUNT(*) FROM STUDENT ; | ||
\nExample 2 - Tell me all the students studying in Data Science class?, | ||
the SQL command will be something like this SELECT * FROM STUDENT | ||
where CLASS="Data Science"; | ||
also the sql code should not have ``` in beginning or end and sql word in output | ||
""" | ||
] | ||
|
||
st.set_page_config(page_title="I can Retireve Any SQL query") | ||
|
||
st.header("Gemini Application") | ||
] | ||
|
||
## Streamlit App | ||
|
||
questions=st.text_input("Input: ",key="input") | ||
st.set_page_config(page_title="I can Retrieve Any SQL query") | ||
st.header("Gemini App To Retrieve SQL Data") | ||
|
||
question=st.text_input("Input: ",key="input") | ||
|
||
submit=st.button("Ask the question") | ||
|
||
## If ask button is clicked | ||
|
||
# if submit is clicked | ||
if submit: | ||
|
||
response=get_gemini_response(questions,prompt) | ||
st.subheader("The Response is") | ||
response=get_gemini_response(question,prompt) | ||
print(response) | ||
response=read_sql_query(response,"student.db") | ||
st.subheader("The REsponse is") | ||
for row in response: | ||
print(row) | ||
st.subheader(row) | ||
st.header(row) | ||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|