add tool output in streaming case

This commit is contained in:
Chester Curme 2025-03-11 19:14:14 -04:00
parent 5da74b5053
commit 307dffdc92
2 changed files with 12 additions and 1 deletions

View File

@ -375,6 +375,18 @@ def _convert_responses_chunk_to_generation_chunk(
token_usage = chunk.response.usage.model_dump() if chunk.response.usage else {} token_usage = chunk.response.usage.model_dump() if chunk.response.usage else {}
usage_metadata = _create_usage_metadata_responses(token_usage) usage_metadata = _create_usage_metadata_responses(token_usage)
generation_info = {"model_name": chunk.response.model} generation_info = {"model_name": chunk.response.model}
elif chunk.type in (
"response.web_search_call.completed",
"response.file_search_call.completed",
):
tool_output = chunk.model_dump()
if "item_id" in tool_output:
tool_output["id"] = tool_output.pop("item_id")
tool_output["type"] = (
tool_output["type"].replace("response.", "").replace(".completed", "")
)
tool_output["status"] = "completed"
generation_info = {"tool_outputs": [tool_output]}
else: else:
return None return None

View File

@ -2,7 +2,6 @@
import base64 import base64
import json import json
import os
from pathlib import Path from pathlib import Path
from textwrap import dedent from textwrap import dedent
from typing import Any, AsyncIterator, List, Literal, Optional, cast from typing import Any, AsyncIterator, List, Literal, Optional, cast