asoria's picture
asoria HF staff
Trying conversational
00f2043
raw
history blame
1.53 kB
import gradio as gr
from pandas import DataFrame
from pandasai import PandasAI
from pandasai.llm.starcoder import Starcoder
from datasets import load_dataset
def send_prompt(token: str, df: DataFrame, prompt: str) -> str:
llm = Starcoder(api_token=token)
pandas_ai = PandasAI(llm, conversational=True)
return pandas_ai(df, prompt=prompt)
def get_result(token, dataset, config, split, prompt) -> str:
try:
dataset = load_dataset(dataset, config, split=split)
df = dataset.to_pandas()
return send_prompt(token, df, prompt=prompt)
except Exception as e:
return str(e)
with gr.Blocks() as demo:
gr.Markdown(" ## PandasAI demo using datasets library")
gr.Markdown(" pandasai library https://github.com/gventuri/pandas-ai")
gr.Markdown(" datasets library https://huggingface.co/docs/datasets/index")
hf_token = gr.Textbox(label="hugging face token", placeholder="hf_xxx", type="password")
dataset = gr.Textbox(label="dataset", placeholder="mstz/iris")
config = gr.Textbox(label="config", placeholder="iris")
split = gr.Textbox(label="split", placeholder="train")
prompt = gr.Textbox(label="prompt (str)", placeholder="How many records do I have?. Give me the median of sepal_width. Show me the first 5 rows.")
output = gr.Textbox(label="Output Box")
get_result_button = gr.Button("Submit")
get_result_button.click(get_result, inputs=[hf_token, dataset, config, split, prompt], outputs=output)
if __name__ == "__main__":
demo.launch()