Spaces:
Sleeping
Sleeping
File size: 2,323 Bytes
0b62f98 232ae3b 0b62f98 1498941 0b62f98 2347abb 232ae3b 1498941 232ae3b 0b62f98 aa94456 0b62f98 aa94456 0b62f98 aa94456 0b62f98 ed66cea 0b62f98 ed66cea 232ae3b baccc56 13845c1 20edd2c 66e32da 7df306a ed66cea 232ae3b 7df306a 232ae3b aa94456 |
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 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
import pandas as pd
from ydata_profiling import ProfileReport
import streamlit as st
from streamlit_pandas_profiling import st_profile_report
from langchain.llms.openai import OpenAI
#from langchain.agents import create_csv_agent
from langchain_experimental.agents import create_csv_agent
from langchain.agents.agent_types import AgentType
import time
import os
def main():
st.sidebar.title("App Options")
option = st.sidebar.selectbox("Choose an option", ["Data Profiling", "Personal Assistant"])
if option == "Data Profiling":
uploaded_file = st.file_uploader("Upload CSV file", type=["csv"])
if uploaded_file is None:
st.warning("Please upload a CSV file.")
st.stop() # Stop execution if no file uploaded
else:
data_profiling(uploaded_file)
elif option == "Personal Assistant":
personal_assistant()
def data_profiling(uploaded_file):
st.title("Data Profiling App")
# Load the data
df = pd.read_csv(uploaded_file)
# Display the dataframe
st.dataframe(df)
# Generate and display the data profile report
pr = ProfileReport(df, title="Report")
st_profile_report(pr)
def personal_assistant():
st.sidebar.title("OpenAI Settings")
openai_api_key = st.sidebar.text_input("Enter your OpenAI API Key", type="password")
os.environ['OPENAI_API_KEY'] = openai_api_key
st.title("Personal Assistant")
st.text("A BR CREATION")
st.image("chatbot.jpg", caption="Chatbot", width=178)
uploaded_file = st.file_uploader("Upload CSV file", type=["csv"])
if uploaded_file is None:
st.warning("Please upload a CSV file.")
st.stop() # Stop execution if no file uploaded
llm = OpenAI(temperature=0)
agent = create_csv_agent(
llm,
uploaded_file,
verbose=False,
agent_type=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
)
query = st.text_input("What would you like to know?")
if st.button("Ask"):
if query.strip() == "":
st.warning("Please enter a query.")
else:
start = time.time()
answer = agent.run(query)
end = time.time()
st.write(answer)
st.write(f"Answer (took {round(end - start, 2)} s.)")
if __name__ == "__main__":
main()
|