The Chat.exec_function_call should optionally be able to catch exceptions raised when executing the FunctionCall and append an appropriate result message containing details of the error. It should still just make a single function call and append a single message, and any required looping/retry should be handled outside of this method.
Worth considering if this can/should be unified with RetryChatModel? RetryChatModel is concerned with handling errors generating or parsing the LLM response, whereas this would handle exceptions raised by the user-provided functions, so maybe makes sense to keep separate.
Related to #417
The
Chat.exec_function_callshould optionally be able to catch exceptions raised when executing theFunctionCalland append an appropriate result message containing details of the error. It should still just make a single function call and append a single message, and any required looping/retry should be handled outside of this method.Worth considering if this can/should be unified with
RetryChatModel?RetryChatModelis concerned with handling errors generating or parsing the LLM response, whereas this would handle exceptions raised by the user-provided functions, so maybe makes sense to keep separate.Related to #417