As huggingface models do not natively support tool calls, the adapter merges tool information into messages before generation and decodes tool calls after generation.
if tools: new_messages =merge_messages_with_tools(messages, tools) completion_kwargs["messages"]= new_messagescompleted_response = model.generate(**completion_kwargs)# During processingif tools:ifisinstance(model, HfLocalBackend):if finished: tool_calls =decode_hf_tool_calls(completed_response) tool_calls =double_underscore_to_slash(tool_calls)returnLLMResponse(response_message=None,tool_calls=tool_calls,finished=finished)