Since the conversation history is built using Message instances it doesn't allow me to return the called function result back into the conversation.
The error I receive: Invalid parameter: messages with role 'tool' must be a response to a preceding message with 'tool_calls'.
Route::get('/tools-test', function () {
$config = new OpenAIConfig;
$config->apiKey = config('services.openai.api_key');
$chatSession = new ChatSession(
new OpenAIChat($config),
[]
);
$chatSession->getChat()->addTool(FunctionBuilder::buildFunctionInfo(new class
{
/**
* Returns current user's username
*/
public function getUserName(): string
{
return auth()->user()->name;
}
}, 'getUserName'));
dd($chatSession('What is my username?'));
});
Here is how I handle the tool call, and attempt to feed it back
And if I attempt to use functionCall instead, I get the following error: Missing parameter 'name': messages with role 'function' must have a 'name'.
I can't seem to make it "work" without hacking the implementation of OpenAIChat, which I DO NOT want to do. But I might have to extend and overwrite the method in order to get it working.
functions are deprecated and are replaced by tools it seems, but there yet does not seem to be a way that properly returns tool call data.
Since the conversation history is built using Message instances it doesn't allow me to return the called function result back into the conversation.
The error I receive:
Invalid parameter: messages with role 'tool' must be a response to a preceding message with 'tool_calls'.
Here is how I handle the tool call, and attempt to feed it back
And if I attempt to use
functionCall
instead, I get the following error:Missing parameter 'name': messages with role 'function' must have a 'name'.
I can't seem to make it "work" without hacking the implementation of OpenAIChat, which I DO NOT want to do. But I might have to extend and overwrite the method in order to get it working.
functions
are deprecated and are replaced bytools
it seems, but there yet does not seem to be a way that properly returnstool
call data.