PRSHNTKUMR commited on
Commit
fbbd338
·
verified ·
1 Parent(s): 20236af

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +66 -0
app.py ADDED
@@ -0,0 +1,66 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import pandas as pd
3
+ import json
4
+
5
+ from agent import query_agent, create_agent
6
+
7
+ def decode_response(response: str) -> dict:
8
+ """ This function converts the string response from the model to a dictionary.
9
+ Args:
10
+ response (str): The string response from the model.
11
+ Returns:
12
+ dict: The dictionary representation of the response.
13
+ """
14
+ response_dict = json.loads(response)
15
+ return response_dict
16
+
17
+ def write_response(response_dict: dict):
18
+ """ This function writes the response from the model to the Streamlit app.
19
+ Args:
20
+ response_dict (dict): The dictionary representation of the response.
21
+ """
22
+ # Check if the response is an answer.
23
+ if "answer" in response_dict:
24
+ st.write(response_dict["answer"])
25
+
26
+ # Check if the response is a bar chart.
27
+ if "bar" in response_dict:
28
+ data = response_dict["bar"]
29
+ df = pd.DataFrame(data)
30
+ df.set_index("columns", inplace=True)
31
+ st.bar_chart(df)
32
+
33
+ # Check if the response is a line chart.
34
+ if "line" in response_dict:
35
+ data = response_dict["line"]
36
+ df = pd.DataFrame(data)
37
+ df.set_index("columns", inplace=True)
38
+ st.line_chart(df)
39
+
40
+ # Check if the response is a table.
41
+ if "table" in response_dict:
42
+ data = response_dict["table"]
43
+ df = pd.DataFrame(data["data"], columns=data["columns"])
44
+ st.table(df)
45
+
46
+ st.title("👨‍💻 Chat with your CSV")
47
+
48
+ st.write("Please upload your CSV file below.")
49
+
50
+ data = st.file_uploader("Upload a CSV")
51
+
52
+ query = st.text_area("Type your query here")
53
+
54
+ if st.button("Submit Query", type="primary"):
55
+ # Create an agent from the CSV file.
56
+ agent = create_agent(data)
57
+
58
+ # Query the agent.
59
+ response = query_agent(agent=agent, query=query)
60
+
61
+ # Decode the response.
62
+ decoded_response = decode_response(response)
63
+ print(decoded_response)
64
+
65
+ # Write the response to the Streamlit app.
66
+ write_response(decoded_response)