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()