in src/agents/models/openai_responses.py [0:0]
def _convert_tool(cls, tool: Tool) -> tuple[ToolParam, IncludeLiteral | None]:
"""Returns converted tool and includes"""
if isinstance(tool, FunctionTool):
converted_tool: ToolParam = {
"name": tool.name,
"parameters": tool.params_json_schema,
"strict": tool.strict_json_schema,
"type": "function",
"description": tool.description,
}
includes: IncludeLiteral | None = None
elif isinstance(tool, WebSearchTool):
ws: WebSearchToolParam = {
"type": "web_search_preview",
"user_location": tool.user_location,
"search_context_size": tool.search_context_size,
}
converted_tool = ws
includes = None
elif isinstance(tool, FileSearchTool):
converted_tool = {
"type": "file_search",
"vector_store_ids": tool.vector_store_ids,
}
if tool.max_num_results:
converted_tool["max_num_results"] = tool.max_num_results
if tool.ranking_options:
converted_tool["ranking_options"] = tool.ranking_options
if tool.filters:
converted_tool["filters"] = tool.filters
includes = "file_search_call.results" if tool.include_search_results else None
elif isinstance(tool, ComputerTool):
converted_tool = {
"type": "computer_use_preview",
"environment": tool.computer.environment,
"display_width": tool.computer.dimensions[0],
"display_height": tool.computer.dimensions[1],
}
includes = None
else:
raise UserError(f"Unknown tool type: {type(tool)}, tool")
return converted_tool, includes