asoria's picture
asoria HF staff
Details
1dc217b
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")
hf_token = gr.Textbox(label="hugging face token", placeholder="hf_xxx", type="password")
dataset = gr.Textbox(label="dataset", placeholder="mstz/iris", value="mstz/iris")
config = gr.Textbox(label="config", placeholder="iris", value="iris")
split = gr.Textbox(label="split", placeholder="train", value="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()