| import pandas as pd | |
| from langchain.tools import tool | |
| from langchain_experimental.agents import create_pandas_dataframe_agent | |
| from langchain_openai import ChatOpenAI | |
| from core.messages import attachmentHandler | |
| llm = ChatOpenAI(model="gpt-4.1") | |
| def query_excel_file(question: str, file_reference: str) -> str: | |
| """ | |
| Analyze the incoming excel file (xls/xlsx) and answer the question based on this analysis | |
| :param question: the question concerning the data in the given excel file | |
| :param file_reference: the content of the excel file encoded base64 | |
| :return: the answer to the question | |
| """ | |
| # Load Excel file | |
| content_bytes = attachmentHandler.fetch_file_from_reference(file_reference) | |
| df = pd.read_excel(content_bytes) | |
| # Create agent | |
| pandas_agent = create_pandas_dataframe_agent(llm, df, verbose=True, allow_dangerous_code=True) | |
| response = pandas_agent.run(question) | |
| return response | |