Вот так использую crewai и его инструмент
CSVSearchTool
:
import os
from crewai import Agent, Crew, Task, Process
from dotenv import load_dotenv
from langchain_openai import ChatOpenAI
from crewai_tools import CSVSearchTool
load_dotenv()
os.environ["OPENAI_API_KEY"] = os.getenv("OPENAI_API_KEY")
llm = ChatOpenAI(model="gpt-4-turbo-preview")
csv_tool = CSVSearchTool(csv="./prices.csv")
csv_search = Agent(
role = "Просмотр полного CSV файла, поисковик названий еды, цен еды, ссылок на еду по csv файлу",
goal = "Полное чтение файла CSV, затем по названию еды или по теме еды искать всю необходимую информацию по этой еде,
backstory = "Вы - профессиональный и точный поисковик по csv файлу, вы всегда читаете всю информацию из csv файла и только потом работаете с полученными данными",
tools = [csv_tool],
verbose = True,
allow_delegation = False,
llm = llm
)
task1 = Task(
description = "Какая цена у еды Шаурма?",
expected_output = "Полное чтение файла CSV, затем на основе полученной информации ищем по колонке food_name еду с похожими названиями и затем проверяем значение в колонке price для текущего food_name",
agent = csv_search,
tools = [csv_tool]
)
crew = Crew(
agents = [csv_search],
tasks = [task1],
verbose = 2,
process = Process.sequential,
manager_llm = llm
)
result = crew.kickoff()
print("############################")
print(result)
Но при таких логах:
Thought:
It appears there was a mistake in formatting my action input. Let's correct the format and try again to search for the "Какая цена у еды Шаурма?" food price.
Action: Search a CSV's content
Action Input: {"query": "Какая цена у еды Шаурма?"}
Но получаю ошибку:
I encountered an error while trying to use the tool. This was the error: CSVSearchTool._run() missing 1 required positional argument: 'search_query'.
Tool Search a CSV's content accepts these inputs: A tool that can be used to semantic search a query the ./prices.csv CSV's content.
то есть он передает вопрос в формате
{ query: "Какая цена у еды Шаурма?" }
, а инструмент ожидает:
{ search_query: "Какая цена у еды Шаурма?" }
? если да то как это исправить?