ChatCSV / app.py
shukdevdatta123's picture
Update app.py
453d53c verified
raw
history blame
1.56 kB
from langchain_experimental.agents import create_csv_agent
from langchain.agents.agent_types import AgentType
from langchain.llms import OpenAI
import streamlit as st
def main():
st.set_page_config(page_title="Ask your CSV")
st.header("Ask your CSV 📈")
# API key input
api_key = st.text_input("Enter your OpenAI API key:", type="password")
# File uploader
csv_file = st.file_uploader("Upload a CSV file", type="csv")
# Process only if both API key and file are provided
if api_key and csv_file is not None:
# Create agent with user-provided API key
try:
agent = create_csv_agent(
OpenAI(temperature=0, api_key=api_key),
csv_file,
verbose=True,
agent_type=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
allow_dangerous_code=True
)
# User question input
user_question = st.text_input("Ask a question about your CSV: ")
# Process question if provided
if user_question and user_question != "":
with st.spinner(text="In progress..."):
st.write(agent.run(user_question))
except Exception as e:
st.error(f"Error: {str(e)}")
elif not api_key and csv_file is not None:
st.info("Please enter your OpenAI API key to proceed.")
elif api_key and csv_file is None:
st.info("Please upload a CSV file to proceed.")
if __name__ == "__main__":
main()