fix: Do not inject tools when models don't support them; detect this conflict before API calls happen

This commit is contained in:
2026-03-17 09:35:51 -06:00
parent f41c85b703
commit d43c4232a2
3 changed files with 20 additions and 5 deletions
+10 -5
View File
@@ -239,12 +239,17 @@ impl Input {
patch_messages(&mut messages, model);
model.guard_max_input_tokens(&messages)?;
let (temperature, top_p) = (self.role().temperature(), self.role().top_p());
let functions = self.config.read().select_functions(self.role());
if let Some(vec) = &functions {
for def in vec {
debug!("Function definition: {:?}", def.name);
let functions = if model.supports_function_calling() {
let fns = self.config.read().select_functions(self.role());
if let Some(vec) = &fns {
for def in vec {
debug!("Function definition: {:?}", def.name);
}
}
}
fns
} else {
None
};
Ok(ChatCompletionsData {
messages,
temperature,