open_router: Fix tool_choice getting serialized to null (#34532)
Closes #34314 This PR resolves an issue where serde(untagged) caused Rust None values to serialize as null, which OpenRouter's Mistral API (when tool_choice is present) incorrectly interprets as a defined value, leading to a 400 error. By replacing serde(untagged) with serde(snake_case), None values are now correctly omitted from the serialized JSON, fixing the problem. P.S. A separate PR will address serde(untagged) usage for other providers, as null is not expected for them either. Release Notes: - Fix ToolChoice getting serialized to null on OpenRouter
This commit is contained in:
parent
b0e0485b32
commit
8ee5bf2c38
1 changed files with 2 additions and 1 deletions
|
@ -153,11 +153,12 @@ pub struct RequestUsage {
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Serialize, Deserialize)]
|
#[derive(Debug, Serialize, Deserialize)]
|
||||||
#[serde(untagged)]
|
#[serde(rename_all = "lowercase")]
|
||||||
pub enum ToolChoice {
|
pub enum ToolChoice {
|
||||||
Auto,
|
Auto,
|
||||||
Required,
|
Required,
|
||||||
None,
|
None,
|
||||||
|
#[serde(untagged)]
|
||||||
Other(ToolDefinition),
|
Other(ToolDefinition),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue