Как мне получить DataFrame как локальную переменную после выполнения инструмента LangChainPython

Программы на Python
Ответить
Anonymous
 Как мне получить DataFrame как локальную переменную после выполнения инструмента LangChain

Сообщение Anonymous »

Я использую LangChain с агентом ReAct для загрузки файла Excel, его преобразования и сохранения результата в DataFrame с именем df. Однако последний вызов Agent_executor.invoke() возвращает только словарь, описывающий то, что произошло, а не фактический DataFrame.
Я хотел бы, чтобы полученный DataFrame был доступен как локальная переменная в моем основном сценарий. Вот мой код:

Код: Выделить всё

import pandas as pd
from langchain.agents import AgentExecutor, create_react_agent, Tool
from langchain.tools import tool
from langchain_community.tools import ShellTool
from langchain_openai import ChatOpenAI
from langchain_experimental.utilities import PythonREPL
from langchain import hub

@tool
def load_excel_response(filepath: str):
"""Load an Excel file and return a transformed DataFrame."""
df = pd.read_excel(filepath, skiprows=2, names=['responses']).reset_index(drop=True)
df = df.select_dtypes(include=['object'])
return df # df.to_json()

llm = ChatOpenAI(model='gpt-4o-mini')
python_repl = PythonREPL()
shell_tool = ShellTool()

repl_tool = Tool(
name="python_repl",
description="Run Python commands in a REPL environment.",
func=python_repl.run,
)

tools_list = [load_excel_response, repl_tool, shell_tool]
prompt = hub.pull("hwchase17/react")

shell_agent = create_react_agent(llm=llm, tools=tools_list, prompt=prompt)
agent_executor = AgentExecutor(agent=shell_agent, tools=tools_list, verbose=True)

path = 'excel_file.xlsx'
user_prompt = f"Load the Excel file located at {path} and assign the result to a variable named df."

response = agent_executor.invoke({"input": user_prompt})
print("Agent response:", response)
Что я вижу:
  • Агент загружает файл Excel (подтверждается результатом verbose=True)< /li>
    Окончательный ответ от Agent_executor.invoke() — это словарь, суммирующий шаги агента и последнее сообщение, а не фактические данные DataFrame.
  • Я хочу вернуть df после агента выполнение.
Что я пробовал:
  • Создание глобального df code> и передайте исполнителю агента df в глобальный
  • return to_json формат в load_excel_response.
Несмотря ни на что, окончательный ответ агента по-прежнему остается лишь резюме.
Вопрос:
Как я могу получить DataFrame как локальную переменную в моем основном скрипте Python после агент заканчивает? Мне нужны необработанные данные, а не просто текстовое резюме. Каков правильный подход к LangChain, чтобы я мог иметь в своем скрипте полностью сформированный DataFrame (или, по крайней мере, что-то, что я могу преобразовать в него)?

Подробнее здесь: https://stackoverflow.com/questions/793 ... -execution
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»