Unverified Commit a0e4d4eb authored by Xu Wenqing's avatar Xu Wenqing Committed by GitHub
Browse files

Fix missing tool call id if tool call index >0 in streaming tool call output. (#7049)


Signed-off-by: default avatar许文卿 <xwq391974@alibaba-inc.com>
parent 2f584455
......@@ -1479,7 +1479,7 @@ async def v1_chat_completions(
reasoning_parser_dict = {}
async def generate_stream_resp():
tool_call_first = True
tool_index_previous = -1
is_firsts = {}
stream_buffers = {}
n_prev_tokens = {}
......@@ -1645,6 +1645,7 @@ async def v1_chat_completions(
# 2) if we found calls, we output them as separate chunk(s)
for call_item in calls:
tool_index_current = call_item.tool_index
# transform call_item -> FunctionResponse + ToolCall
if finish_reason_type == "stop":
latest_delta_len = 0
......@@ -1671,7 +1672,7 @@ async def v1_chat_completions(
tool_call = ToolCall(
id=(
f"call_{base64.urlsafe_b64encode(uuid.uuid4().bytes).rstrip(b'=').decode()}"
if tool_call_first
if tool_index_previous != tool_index_current
else None
),
index=call_item.tool_index,
......@@ -1680,7 +1681,7 @@ async def v1_chat_completions(
arguments=call_item.parameters,
),
)
tool_call_first = False
tool_index_previous = tool_index_current
choice_data = ChatCompletionResponseStreamChoice(
index=index,
delta=DeltaMessage(tool_calls=[tool_call]),
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment