Spaces:
Paused
Paused
| 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() |