Update app3.py
Browse files
app3.py
CHANGED
@@ -11,7 +11,6 @@ from langchain.chains import RetrievalQA
|
|
11 |
from langchain.schema import Document
|
12 |
import os
|
13 |
import logging
|
14 |
-
import re
|
15 |
|
16 |
# Configure logging
|
17 |
logging.basicConfig(level=logging.DEBUG)
|
@@ -53,7 +52,15 @@ else:
|
|
53 |
try:
|
54 |
# Load Hugging Face dataset
|
55 |
dataset = load_dataset(dataset_name, split="train", trust_remote_code=True)
|
56 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
57 |
st.success(f"Dataset '{dataset_name}' loaded successfully!")
|
58 |
st.dataframe(st.session_state.df.head(10))
|
59 |
except Exception as e:
|
@@ -85,7 +92,7 @@ else:
|
|
85 |
try:
|
86 |
# Initialize PandasAI Agent
|
87 |
llm = OpenAI(api_key=pandasai_api_key, max_tokens=1500, timeout=60)
|
88 |
-
agent = Agent(llm)
|
89 |
|
90 |
# Convert the DataFrame into documents for RAG
|
91 |
documents = [
|
@@ -108,7 +115,7 @@ else:
|
|
108 |
)
|
109 |
|
110 |
# Create tabs
|
111 |
-
tab1, tab2, tab3 = st.tabs(["PandasAI Analysis", "RAG
|
112 |
|
113 |
# Tab 1: PandasAI Analysis
|
114 |
with tab1:
|
@@ -125,7 +132,7 @@ else:
|
|
125 |
st.error(f"Error from PandasAI: {e}")
|
126 |
logger.error(f"PandasAI error: {e}")
|
127 |
|
128 |
-
# Tab 2: RAG
|
129 |
with tab2:
|
130 |
st.header("Question Answering using RAG")
|
131 |
rag_question = st.text_input("Ask a question about the data (RAG):")
|
@@ -153,7 +160,7 @@ else:
|
|
153 |
viz_code = code_match.group(1)
|
154 |
logger.debug(f"Extracted visualization code: {viz_code}")
|
155 |
|
156 |
-
# Modify and validate code for Plotly
|
157 |
viz_code = viz_code.replace('plt.', 'px.')
|
158 |
exec(viz_code) # Execute the visualization code
|
159 |
st.plotly_chart(fig)
|
|
|
11 |
from langchain.schema import Document
|
12 |
import os
|
13 |
import logging
|
|
|
14 |
|
15 |
# Configure logging
|
16 |
logging.basicConfig(level=logging.DEBUG)
|
|
|
52 |
try:
|
53 |
# Load Hugging Face dataset
|
54 |
dataset = load_dataset(dataset_name, split="train", trust_remote_code=True)
|
55 |
+
|
56 |
+
# Convert dataset to Pandas DataFrame
|
57 |
+
if isinstance(dataset, dict) or isinstance(dataset, list):
|
58 |
+
st.session_state.df = pd.DataFrame(dataset)
|
59 |
+
elif hasattr(dataset, 'to_pandas'):
|
60 |
+
st.session_state.df = dataset.to_pandas()
|
61 |
+
else:
|
62 |
+
raise ValueError("Invalid input data. Cannot convert it to a DataFrame.")
|
63 |
+
|
64 |
st.success(f"Dataset '{dataset_name}' loaded successfully!")
|
65 |
st.dataframe(st.session_state.df.head(10))
|
66 |
except Exception as e:
|
|
|
92 |
try:
|
93 |
# Initialize PandasAI Agent
|
94 |
llm = OpenAI(api_key=pandasai_api_key, max_tokens=1500, timeout=60)
|
95 |
+
agent = Agent(df, llm=llm)
|
96 |
|
97 |
# Convert the DataFrame into documents for RAG
|
98 |
documents = [
|
|
|
115 |
)
|
116 |
|
117 |
# Create tabs
|
118 |
+
tab1, tab2, tab3 = st.tabs(["PandasAI Analysis", "RAG QA", "Data Visualization"])
|
119 |
|
120 |
# Tab 1: PandasAI Analysis
|
121 |
with tab1:
|
|
|
132 |
st.error(f"Error from PandasAI: {e}")
|
133 |
logger.error(f"PandasAI error: {e}")
|
134 |
|
135 |
+
# Tab 2: RAG QA
|
136 |
with tab2:
|
137 |
st.header("Question Answering using RAG")
|
138 |
rag_question = st.text_input("Ask a question about the data (RAG):")
|
|
|
160 |
viz_code = code_match.group(1)
|
161 |
logger.debug(f"Extracted visualization code: {viz_code}")
|
162 |
|
163 |
+
# Safeguard: Modify and validate code for Plotly
|
164 |
viz_code = viz_code.replace('plt.', 'px.')
|
165 |
exec(viz_code) # Execute the visualization code
|
166 |
st.plotly_chart(fig)
|