File size: 1,962 Bytes
f8b0fab 9eb98fa b75450f 9eb98fa b75450f 9eb98fa b75450f 9eb98fa f8b0fab 9eb98fa ea56acd 9eb98fa f8b0fab 0f27ac5 f8b0fab 23496d5 0419f76 22c6298 0f9e25e 0f27ac5 0419f76 0f9e25e 22c6298 0f9e25e 22c6298 0f9e25e f8b0fab |
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 58 59 60 61 62 63 |
from langchain import SQLDatabaseChain
from langchain.sql_database import SQLDatabase
from langchain.llms.openai import OpenAI
from langchain.chat_models import ChatOpenAI
from langchain.prompts.prompt import PromptTemplate
def check_query(query):
if query.startswith("### Query"):
split = query.split('\n\n')
q_text = split[0]
t_text = split[1]
if t_text.startswith("### Tables"):
query_params = dict()
tables = t_text.split('\n')
query_params['tables'] = tables[1:]
query_params['q'] = q_text.split('\n')[1]
print(query_params)
return query_params
else:
return 'error'
return 'small'
def answer_question(query):
query_check = check_query(query)
if isinstance(query_check, dict):
return("BIG TABLE")
if query_check == 'small':
return('SMALL TABLE')
if query_check == 'error':
return('ERROR: Wrong format for getting the big db schema')
return("DONE: " + query)
if __name__ == "__main__":
import gradio as gr
# print(answer_question("Who is Harry's Father"))
gr.Interface(
answer_question,
[
gr.inputs.Textbox(lines=10, label="Query"),
],
gr.outputs.Textbox(label="Response"),
title="Ask NBA Stats",
description=""" Ask NBA Stats is a tool that let's you ask a question with
the NBA SQL tables as a reference
Ask a simple question to use the small database
If you would like to access the large DB use format
### Query
single line query
### Tables
tables to access line by line
table1
table2"""
).launch() |