Alright, so I am comparing SQLAutoVectorQueryEngine to using the OpenAIAgent class. Even when I pass in the SQLAutoVectorQueryEngine as a tool to the OpenAI agent, the OpenAI agent doesn't perform as well. Any insights into the differences between the two? How can I narrow down why one performs better than the other?
From what I can see, the OpenAI agent is actually trying to answer the query itself and then passing the query into the tool. Which is not what I want ๐ฎโ๐จ I would rather the chatbot just allow the tool to create the query in the first place.
Also, if I just want a chatbot, but with the accuracy of the SQLAutoVectorQueryEngine, do I pass in an agent as one of its tools? That will help in the cases the user is chatting without asking for anything needed in the vector or sql databases
For now the best solution seems to be using a FunctionTool to wrap the router and giving that as a tool to the Agent. Then it can decide when to use it or not. Please let me know if anyone else has a better approach, thanks!