Spaces:
Build error
Build error
| import os | |
| import gradio as gr | |
| from langchain.agents.agent_types import AgentType | |
| from langchain_experimental.agents.agent_toolkits import create_pandas_dataframe_agent | |
| from langchain_openai import ChatOpenAI, AzureChatOpenAI | |
| from sklearn.datasets import fetch_openml | |
| gpt4o_azure = AzureChatOpenAI( | |
| model_name='gpt-4o-mini', | |
| api_key=os.environ["AZURE_OPENAI_KEY"], | |
| azure_endpoint=os.environ["AZURE_OPENAI_ENDPOINT"], | |
| api_version="2024-02-01", | |
| temperature=0 | |
| ) | |
| bank_data, _ = fetch_openml(data_id=43718, return_X_y=True, parser="auto") | |
| pandas_agent = create_pandas_dataframe_agent( | |
| llm=gpt4o_azure, | |
| df=bank_data, | |
| verbose=True, | |
| agent_type=AgentType.OPENAI_FUNCTIONS, | |
| ) | |
| def predict(user_input): | |
| try: | |
| response = pandas_agent.invoke(user_input) | |
| prediction = response['output'] | |
| except Exception as e: | |
| prediction = e | |
| return prediction | |
| textbox = gr.Textbox(placeholder="Enter your query here", lines=6) | |
| schema = """ | |
| The schema of the table you can query on is presented below: | |
| | Column | Type | Description| | |
| |-----------|--------|------------| | |
| | age | int |Age of the customer| | |
| | job | str |type of job (categorical: "admin.","unknown","unemployed","management","housemaid","entrepreneur","student", "blue-collar","self-employed","retired","technician","services") | | |
| | marital | str |marital status (categorical: "married","divorced","single"; note: "divorced" means divorced or widowed)| | |
| | education | str |(categorical: "unknown","secondary","primary","tertiary")| | |
| | default | yes/no |has credit in default? (binary: "yes","no")| | |
| | balance | int |average yearly balance, in euros (numeric)| | |
| | housing | yes/no |has housing loan? (binary: "yes","no")| | |
| | loan | yes/no |has personal loan? (binary: "yes","no")| | |
| | contact | str |last contact communication type (categorical: "unknown","telephone","cellular")| | |
| | day | int |last contact day of the month (numeric)| | |
| | month | str |last contact month of year (categorical: "jan", "feb", "mar", ..., "nov", "dec")| | |
| | duration | int |last contact duration, in seconds (numeric)| | |
| | campaign | int |number of contacts performed during this campaign and for this client (numeric, includes last contact)| | |
| | pdays | int |number of days that passed by after the client was last contacted from a previous campaign (numeric, -1 means client was not previously contacted)| | |
| | poutcome | str |outcome of the previous marketing campaign (categorical: "unknown","other","failure","success")| | |
| | deposit | yes/no |has the client subscribed a term deposit? (binary: "yes","no")| | |
| """ | |
| demo = gr.Interface( | |
| inputs=textbox, fn=predict, outputs="text", | |
| title="Query BFSI customer information", | |
| description="This web API presents an interface to ask questions on customer information stored in a database.", | |
| article=schema, | |
| examples=[["What is the average balance maintained by our customers?", ""], | |
| ["How many customers have subscribed to a term deposit?", ""], | |
| ["How many customers have defaulted on loans?", ""], | |
| ["Do customers who default maintain a low balance?", ""], | |
| ["For how many customers was our last marketing campaign a success?", ""], | |
| ["What is the most common marital status of our customers?"] | |
| ], | |
| cache_examples=False, | |
| theme="origin", | |
| # theme=gr.themes.Base(), | |
| concurrency_limit=8 | |
| ) | |
| demo.queue() | |
| demo.launch(auth=("demouser", os.getenv('PASSWD')), ssr_mode=False) |