Spaces:
Build error
Build error
import gradio as gr | |
import OpenAI | |
from langchain.agents import create_pandas_dataframe_agent | |
from langchain.llms import OpenAI | |
import pandas as pd | |
from langchain import OpenAI | |
from langchain.chat_models import ChatOpenAI | |
import os | |
from langchain.agents import ZeroShotAgent, Tool, AgentExecutor | |
from langchain import OpenAI,LLMChain | |
openai.api_key= os.environ.get("openai.api_key") | |
prefix = """ | |
Hi! I'm a data analysis bot. I can help you perform basic exploratory data analysis (EDA) on your pandas dataframe. | |
To get started, please make sure you have pandas and matplotlib installed and provide me with a valid pandas dataframe by assigning it to the variable 'df'. | |
if the user ask anything other than questions related to the data analysis answer with "I cannot help you with that" | |
When you're ready to begin, type 'Start' and I'll perform the following tasks: | |
- List all the column names. | |
- Count the number of rows and columns. | |
- Count the number of missing values. | |
- Compute descriptive statistics for numerical columns (count, mean, standard deviation, minimum, maximum, and quartiles). | |
- Get value counts for categorical variables. | |
- Identify any outliers, anomalies, or unusual patterns in the data. | |
""" | |
suffix = """ | |
Please make sure to perform all the tasks you can and answer them one by one.\ | |
Make sure you perform all the taks you can and answer them one by one | |
answer in this format | |
"list column names: | |
"Index","Class" | |
Input: | |
{input} | |
Agent Scratchpad: | |
{agent_scratchpad} | |
""" | |
global df | |
df = pd.read_csv('titanic.csv') | |
pandas = create_pandas_dataframe_agent(OpenAI(temperature=0), df, verbose=True) | |
llm = ChatOpenAI(temperature=0) | |
tools = [ | |
Tool( | |
name = "Pandas", | |
func= pandas.run, | |
description="Useful to seach dataframe and perform data analysis" | |
) | |
] | |
prompt = ZeroShotAgent.create_prompt( | |
tools, | |
prefix=prefix, | |
suffix=suffix, | |
input_variables=["input","agent_scratchpad"] | |
) | |
llm_chain = LLMChain(llm=OpenAI(temperature=0), prompt=prompt) | |
tool_names = [tool.name for tool in tools] | |
agent = ZeroShotAgent(llm_chain=llm_chain, allowed_tools=tool_names) | |
def reply(input): | |
try: | |
agent_executor = AgentExecutor.from_agent_and_tools(agent=agent, tools=tools, verbose=True) | |
message = agent_executor.run(input) | |
return message | |
except Exception as e: | |
message = f"An error occurred: {str(e)}" | |
return message | |
input_text = gr.inputs.Textbox( | |
label="Enter your questions here", | |
placeholder="Enter 'Start' for basic EDA", | |
lines=3 | |
) | |
text_output = gr.outputs.Textbox(label="Answer") | |
description = "" | |
iface = gr.Interface( | |
fn=reply, | |
inputs=input_text, | |
outputs=text_output, | |
title="Auto-Data Analysis", | |
description=description, | |
theme="light", | |
layout="vertical", | |
allow_flagging=False, | |
).launch() |