mirror of
https://github.com/fawney19/Aether.git
synced 2026-10-04 16:37:46 +08:00
fix(gemini): normalize mixed tools for same-format providers
This commit is contained in:
@@ -218,6 +218,18 @@ fn enable_server_side_tool_invocations_for_mixed_tools(
|
||||
if !gemini_model_supports_mixed_tools(mapped_model) {
|
||||
return None;
|
||||
}
|
||||
ensure_server_side_tool_invocations_for_mixed_tools(output)
|
||||
}
|
||||
|
||||
pub fn ensure_server_side_tool_invocations_for_mixed_tools(output: &mut Value) -> Option<()> {
|
||||
let output_object = output.as_object_mut()?;
|
||||
let tools = output_object.get("tools").and_then(Value::as_array);
|
||||
let Some(tools) = tools else {
|
||||
return Some(());
|
||||
};
|
||||
if !gemini_tools_are_mixed(tools) {
|
||||
return Some(());
|
||||
}
|
||||
|
||||
let tool_config = output_object
|
||||
.entry("toolConfig".to_string())
|
||||
|
||||
@@ -12,6 +12,7 @@ pub use formats::context::{
|
||||
ConversionFieldRecord, ConversionFieldStatus, ConversionReport, Converted, FormatContext,
|
||||
FormatError,
|
||||
};
|
||||
pub use formats::gemini::generate_content::request::ensure_server_side_tool_invocations_for_mixed_tools;
|
||||
pub use formats::id::{
|
||||
api_format_alias_matches, api_format_defaults_to_client_error_failover,
|
||||
api_format_defaults_to_non_stream, api_format_permission_covers,
|
||||
|
||||
Reference in New Issue
Block a user