| import streamlit as st |
| from pandasai.llm.openai import OpenAI |
| from dotenv import load_dotenv |
| import os |
| import pandas as pd |
| from pandasai import PandasAI |
|
|
|
|
| load_dotenv() |
|
|
|
|
| openai_api_key = os.getenv("OPENAI_API_KEY") |
|
|
|
|
| def chat_with_csv(df,prompt): |
| llm = OpenAI(api_token=openai_api_key) |
| pandas_ai = PandasAI(llm) |
| result = pandas_ai.run(df, prompt=prompt) |
| print(result) |
| return result |
|
|
| st.set_page_config(layout='wide') |
|
|
| st.title("ChatCSV powered by LLM") |
|
|
| input_csv = st.file_uploader("Upload your CSV file", type=['csv']) |
|
|
| if input_csv is not None: |
|
|
| col1, col2 = st.columns([1,1]) |
|
|
| with col1: |
| st.info("CSV Uploaded Successfully") |
| data = pd.read_csv(input_csv) |
| st.dataframe(data, use_container_width=True) |
|
|
| with col2: |
|
|
| st.info("Chat Below") |
| |
| input_text = st.text_area("Enter your query") |
|
|
| if input_text is not None: |
| if st.button("Chat with CSV"): |
| st.info("Your Query: "+input_text) |
| result = chat_with_csv(data, input_text) |
| st.success(result) |
|
|