many fixes

This commit is contained in:
Ashwin Bharambe 2025-06-02 15:03:52 -07:00
parent 021976713b
commit 2d40ce2271
4 changed files with 11 additions and 12 deletions

View file

@ -899,5 +899,8 @@ class OpenAIResponsesImpl:
else: else:
raise ValueError(f"Unknown result content type: {type(result.content)}") raise ValueError(f"Unknown result content type: {type(result.content)}")
input_message = OpenAIToolMessageParam(content=content, tool_call_id=tool_call_id) input_message = OpenAIToolMessageParam(content=content, tool_call_id=tool_call_id)
else:
text = str(error_exc)
input_message = OpenAIToolMessageParam(content=text, tool_call_id=tool_call_id)
return message, input_message return message, input_message

View file

@ -24,16 +24,16 @@ def default_tools():
) -> list[types.TextContent | types.ImageContent | types.EmbeddedResource]: ) -> list[types.TextContent | types.ImageContent | types.EmbeddedResource]:
return [types.TextContent(type="text", text="Hello, world!")] return [types.TextContent(type="text", text="Hello, world!")]
async def get_boiling_point(liquid_name: str, celcius: bool = True) -> int: async def get_boiling_point(liquid_name: str, celsius: bool = True) -> int:
""" """
Returns the boiling point of a liquid in Celcius or Fahrenheit. Returns the boiling point of a liquid in Celsius or Fahrenheit.
:param liquid_name: The name of the liquid :param liquid_name: The name of the liquid
:param celcius: Whether to return the boiling point in Celcius :param celsius: Whether to return the boiling point in Celsius
:return: The boiling point of the liquid in Celcius or Fahrenheit :return: The boiling point of the liquid in Celcius or Fahrenheit
""" """
if liquid_name.lower() == "polyjuice": if liquid_name.lower() == "myawesomeliquid":
if celcius: if celsius:
return -100 return -100
else: else:
return -212 return -212

View file

@ -36,7 +36,7 @@ test_response_mcp_tool:
test_params: test_params:
case: case:
- case_id: "boiling_point_tool" - case_id: "boiling_point_tool"
input: "What is the boiling point of polyjuice?" input: "What is the boiling point of myawesomeliquid in Celsius?"
tools: tools:
- type: mcp - type: mcp
server_label: "localmcp" server_label: "localmcp"
@ -100,7 +100,7 @@ test_response_multi_turn_tool_execution:
test_params: test_params:
case: case:
- case_id: "user_file_access_check" - case_id: "user_file_access_check"
input: "I need to check if user 'alice' can access the file 'document.txt'. First, get alice's user ID, then check if that user ID can access the file 'document.txt'. Tell me the final result." input: "I need to check if user 'alice' can access the file 'document.txt'. First, get alice's user ID, then check if that user ID can access the file 'document.txt'. Do this as a series of steps, where each step is a separate message. Return only one tool call per step. Summarize the final result with a single 'yes' or 'no' response."
tools: tools:
- type: mcp - type: mcp
server_label: "localmcp" server_label: "localmcp"

View file

@ -291,14 +291,10 @@ def test_response_non_streaming_mcp_tool(request, openai_client, model, provider
call = response.output[1] call = response.output[1]
assert call.type == "mcp_call" assert call.type == "mcp_call"
assert call.name == "get_boiling_point" assert call.name == "get_boiling_point"
assert json.loads(call.arguments) == {"liquid_name": "polyjuice", "celcius": True} assert json.loads(call.arguments) == {"liquid_name": "myawesomeliquid", "celsius": True}
assert call.error is None assert call.error is None
assert "-100" in call.output assert "-100" in call.output
from rich.pretty import pprint
pprint(response)
# sometimes the model will call the tool again, so we need to get the last message # sometimes the model will call the tool again, so we need to get the last message
message = response.output[-1] message = response.output[-1]
text_content = message.content[0].text text_content = message.content[0].text