fix: add fast path for function call (#9023)
Co-authored-by: tazjin <mail@tazj.in>
This commit is contained in:
@@ -69,6 +69,8 @@ class FunctionCallParser:
|
|||||||
Returns:
|
Returns:
|
||||||
True if the text contains a tool call, False otherwise
|
True if the text contains a tool call, False otherwise
|
||||||
"""
|
"""
|
||||||
|
if not self.tools:
|
||||||
|
return False
|
||||||
return self.detector.has_tool_call(text)
|
return self.detector.has_tool_call(text)
|
||||||
|
|
||||||
def parse_non_stream(self, full_text: str) -> Tuple[str, list[ToolCallItem]]:
|
def parse_non_stream(self, full_text: str) -> Tuple[str, list[ToolCallItem]]:
|
||||||
@@ -83,6 +85,8 @@ class FunctionCallParser:
|
|||||||
- The remaining text after parsing that was not consumed by the detector (can be treated as normal text)
|
- The remaining text after parsing that was not consumed by the detector (can be treated as normal text)
|
||||||
- A list of tool calls parsed from the text
|
- A list of tool calls parsed from the text
|
||||||
"""
|
"""
|
||||||
|
if not self.tools:
|
||||||
|
return full_text, []
|
||||||
parsed_result = self.detector.detect_and_parse(full_text, self.tools)
|
parsed_result = self.detector.detect_and_parse(full_text, self.tools)
|
||||||
tool_call_list = parsed_result.calls
|
tool_call_list = parsed_result.calls
|
||||||
if tool_call_list:
|
if tool_call_list:
|
||||||
@@ -102,6 +106,8 @@ class FunctionCallParser:
|
|||||||
- The normal text that should be displayed to the user
|
- The normal text that should be displayed to the user
|
||||||
- A list of tool calls parsed from the chunk
|
- A list of tool calls parsed from the chunk
|
||||||
"""
|
"""
|
||||||
|
if not self.tools:
|
||||||
|
return chunk_text, []
|
||||||
final_normal_text = ""
|
final_normal_text = ""
|
||||||
final_calls = []
|
final_calls = []
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user