csvChat / app.py
Subhraj07's picture
Update app.py
8b80b36
raw
history blame
1.54 kB
import gradio as gr
import pandas as pd
import random
import time
from pandasai import PandasAI
from pandasai.llm.openai import OpenAI
import os
df = pd.DataFrame()
OPENAPI_KEY_VAL = ""
llm = ""
pandas_ai = ""
def process_file(file, OPENAPI_KEY):
global df, OPENAPI_KEY_VAL, llm, pandas_ai
df = pd.read_csv(file.name)
OPENAPI_KEY_VAL = OPENAPI_KEY
print(OPENAPI_KEY_VAL)
llm = OpenAI(api_token = OPENAPI_KEY_VAL)
pandas_ai = PandasAI(llm)
return df.head(2)
with gr.Blocks() as demo:
with gr.Row():
file = gr.inputs.File(type="file", label="Upload CSV")
key = gr.Textbox(placeholder="Paste OPENAI API KEY")
out = gr.DataFrame()
btn = gr.Button("Execute")
btn.click(fn=process_file, inputs=[file, key], outputs=out)
chatbot = gr.Chatbot()
msg = gr.Textbox()
clear = gr.Button("Clear")
def respond(message, chat_history):
bot_message = "Hi"
try:
bot_message = pandas_ai.run(df, prompt=message)
except Exception as e:
print(e)
bot_message = "I'm sorry, but as an AI language model, I am unable to provide a meaningful response to this question."
# bot_message = random.choice(["How are you?", "I love you", "I'm very hungry"])
chat_history.append((message, bot_message))
time.sleep(1)
return "", chat_history
msg.submit(respond, [msg, chatbot], [msg, chatbot])
clear.click(lambda: None, None, chatbot, queue=False)
demo.launch()