Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion eval_protocol/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -525,7 +525,7 @@ class Message(BaseModel):
),
)

def dump_mdoel_for_chat_completion_request(self):
def dump_model_for_chat_completion_request(self):
"""Only keep chat completion accepted fields"""
return self.model_dump(
exclude_none=True,
Expand Down
4 changes: 2 additions & 2 deletions eval_protocol/pytest/default_agent_rollout_processor.py
Original file line number Diff line number Diff line change
Expand Up @@ -141,8 +141,8 @@ async def _call_model(self, messages: list[Message], tools: Optional[List[dict[s
# Convert Message models to plain dicts for LLM call
# Filter out fields that are not supported by OpenAI/LiteLLM APIs (e.g., weight, control_plane_step, reasoning_content)
messages_payload: List[Dict[str, Any]] = [
message.dump_mdoel_for_chat_completion_request()
if hasattr(message, "dump_mdoel_for_chat_completion_request")
message.dump_model_for_chat_completion_request()
if hasattr(message, "dump_model_for_chat_completion_request")
else (message.model_dump() if hasattr(message, "model_dump") else message) # type: ignore[misc]
for message in messages
]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ async def process_row(row: EvaluationRow) -> EvaluationRow:

# Filter out fields that are not supported by OpenAI/LiteLLM APIs (e.g., weight, control_plane_step, reasoning_content)
# Use the Message class method that excludes unsupported fields
messages_payload = [message.dump_mdoel_for_chat_completion_request() for message in messages_for_request]
messages_payload = [message.dump_model_for_chat_completion_request() for message in messages_for_request]

# Normalize Fireworks model names for LiteLLM routing
completion_params = normalize_fireworks_model_for_litellm(config.completion_params) or {}
Expand Down
8 changes: 4 additions & 4 deletions eval_protocol/pytest/tracing_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -157,13 +157,13 @@ def build_init_request(
completion_params_base_url: Optional[str] = completion_params_dict.get("base_url")

# Strip non-OpenAI fields from messages
# Use dump_mdoel_for_chat_completion_request() to automatically exclude unsupported fields (weight, control_plane_step, reasoning_content)
# Use dump_model_for_chat_completion_request() to automatically exclude unsupported fields (weight, control_plane_step, reasoning_content)
clean_messages = []
for m in row.messages:
md: Dict[str, Any]
if hasattr(m, "dump_mdoel_for_chat_completion_request"):
if hasattr(m, "dump_model_for_chat_completion_request"):
# Use the Message method that automatically filters unsupported fields
md = m.dump_mdoel_for_chat_completion_request()
md = m.dump_model_for_chat_completion_request()
elif hasattr(m, "model_dump"):
md = m.model_dump()
elif isinstance(m, dict):
Expand All @@ -177,7 +177,7 @@ def build_init_request(
"tool_call_id": getattr(m, "tool_call_id", None),
"name": getattr(m, "name", None),
}
# Additional filtering to ensure only allowed fields are kept (already handled by dump_mdoel_for_chat_completion_request for Message objects)
# Additional filtering to ensure only allowed fields are kept (already handled by dump_model_for_chat_completion_request for Message objects)
allowed_message_fields = {"role", "content", "tool_calls", "tool_call_id", "name"}
clean_messages.append({k: v for k, v in md.items() if k in allowed_message_fields and v is not None})

Expand Down
2 changes: 1 addition & 1 deletion scripts/test_remote_rollout_prompt_token_ids.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ def _free_port() -> int:

def _message_to_dict(message: Message | dict[str, Any]) -> dict[str, Any]:
if isinstance(message, Message):
return message.dump_mdoel_for_chat_completion_request()
return message.dump_model_for_chat_completion_request()
return {k: v for k, v in dict(message).items() if v is not None}


Expand Down
4 changes: 2 additions & 2 deletions tests/remote_server/remote_server.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,8 @@ def _worker():
# excluding any None fields (Fireworks rejects extra keys even when null).
messages_payload = []
for m in req.messages:
if hasattr(m, "dump_mdoel_for_chat_completion_request"):
md = m.dump_mdoel_for_chat_completion_request() # type: ignore[attr-defined]
if hasattr(m, "dump_model_for_chat_completion_request"):
md = m.dump_model_for_chat_completion_request() # type: ignore[attr-defined]
elif hasattr(m, "model_dump"):
md = m.model_dump(exclude_none=True) # type: ignore[call-arg]
elif isinstance(m, dict):
Expand Down
6 changes: 3 additions & 3 deletions tests/test_message_field_filtering.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@


def test_dump_model_excludes_unsupported_fields():
"""Test that dump_mdoel_for_chat_completion_request excludes unsupported fields."""
"""Test that dump_model_for_chat_completion_request excludes unsupported fields."""
# Create a message with all possible fields including unsupported ones
message = Message(
role="user",
Expand All @@ -21,7 +21,7 @@ def test_dump_model_excludes_unsupported_fields():
)

# Get the filtered dictionary
filtered = message.dump_mdoel_for_chat_completion_request()
filtered = message.dump_model_for_chat_completion_request()

# Verify unsupported fields are excluded
assert "weight" not in filtered, "weight field should be excluded"
Expand All @@ -48,7 +48,7 @@ def test_dump_model_with_only_supported_fields():
tool_call_id=None,
)

filtered = message.dump_mdoel_for_chat_completion_request()
filtered = message.dump_model_for_chat_completion_request()

# Should only contain supported fields
assert filtered["role"] == "assistant"
Expand Down
2 changes: 1 addition & 1 deletion tests/test_models.py
Original file line number Diff line number Diff line change
Expand Up @@ -718,7 +718,7 @@ def test_message_dump_for_chat_completion_request():
"reasoning_content": "I am thinking about the user's question",
}
message = Message(**example)
dictionary = message.dump_mdoel_for_chat_completion_request()
dictionary = message.dump_model_for_chat_completion_request()
assert "weight" not in dictionary
assert "reasoning_content" not in dictionary
assert dictionary["content"] == "Hello, how are you?"
Expand Down