Spaces:
Sleeping
Sleeping
File size: 1,738 Bytes
5ee2b3a |
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 |
import streamlit as st
import pandas as pd
from pandasai import SmartDataframe
from langchain_groq import ChatGroq
llm = ChatGroq(
model="llama3-70b-8192",
temperature=0.1,
max_retries=2,
)
# Initialize session state for URL and DataFrame
if 'pre_url' not in st.session_state:
st.session_state['pre_url'] = ''
if 'df' not in st.session_state:
st.session_state['df'] = None
# Streamlit app
st.title("Conversation Analysis")
# Step 1: Choose conversation
opendata_options = [
'15-per-hour-seattle', 'american-assembly.bowling-green', 'brexit-consensus',
'canadian-electoral-reform', 'football-concussions', 'march-on.operation-marchin-orders',
'scoop-hivemind.affordable-housing', 'scoop-hivemind.biodiversity',
'scoop-hivemind.freshwater', 'scoop-hivemind.taxes', 'scoop-hivemind.ubi',
'ssis.land-bank-farmland.2rumnecbeh.2021-08-01', 'vtaiwan.uberx'
]
selected_option = st.selectbox("Choose conversation", opendata_options)
url = (
f"https://raw.githubusercontent.com/compdemocracy/openData/master/{selected_option}/comments.csv"
)
# Load data only if URL changes
if st.session_state['pre_url'] != url:
df = SmartDataframe(pd.read_csv(url, index_col=0), config={"llm": llm})
st.session_state['df'] = df
st.session_state['pre_url'] = url
# Step 2: Request for analysis or chart
request = st.text_input(
"Enter your analysis request:",
"Plot a histogram about the distribution of agree, disagree and neutral comments against the topic")
# Execute chat and display results
if st.button("Analyze"):
if st.session_state['df'] is not None:
st.session_state['df'].chat(request)
else:
st.warning("Please select a conversation and load data first.")
|