refac
This commit is contained in:
@@ -321,7 +321,7 @@ def serialize_output(output: list) -> str:
|
|||||||
tool_outputs[item.get("call_id")] = item
|
tool_outputs[item.get("call_id")] = item
|
||||||
|
|
||||||
# Second pass: render items in order
|
# Second pass: render items in order
|
||||||
for item in output:
|
for idx, item in enumerate(output):
|
||||||
item_type = item.get("type", "")
|
item_type = item.get("type", "")
|
||||||
|
|
||||||
if item_type == "message":
|
if item_type == "message":
|
||||||
@@ -372,6 +372,10 @@ def serialize_output(output: list) -> str:
|
|||||||
duration = item.get("duration")
|
duration = item.get("duration")
|
||||||
status = item.get("status", "in_progress")
|
status = item.get("status", "in_progress")
|
||||||
|
|
||||||
|
# Infer completion: if this reasoning item is NOT the last item,
|
||||||
|
# render as done (a subsequent item means reasoning is complete)
|
||||||
|
is_last_item = idx == len(output) - 1
|
||||||
|
|
||||||
if content and not content.endswith("\n"):
|
if content and not content.endswith("\n"):
|
||||||
content += "\n"
|
content += "\n"
|
||||||
|
|
||||||
@@ -382,11 +386,12 @@ def serialize_output(output: list) -> str:
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
if status == "completed" or duration is not None:
|
if status == "completed" or duration is not None or not is_last_item:
|
||||||
content = f'{content}<details type="reasoning" done="true" duration="{duration or 0}">\n<summary>Thought for {duration or 0} seconds</summary>\n{display}\n</details>\n'
|
content = f'{content}<details type="reasoning" done="true" duration="{duration or 0}">\n<summary>Thought for {duration or 0} seconds</summary>\n{display}\n</details>\n'
|
||||||
else:
|
else:
|
||||||
content = f'{content}<details type="reasoning" done="false">\n<summary>Thinking…</summary>\n{display}\n</details>\n'
|
content = f'{content}<details type="reasoning" done="false">\n<summary>Thinking…</summary>\n{display}\n</details>\n'
|
||||||
|
|
||||||
|
|
||||||
elif item_type == "open_webui:code_interpreter":
|
elif item_type == "open_webui:code_interpreter":
|
||||||
content_stripped, original_whitespace = split_content_and_whitespace(
|
content_stripped, original_whitespace = split_content_and_whitespace(
|
||||||
content
|
content
|
||||||
|
|||||||
Reference in New Issue
Block a user