mirror of
https://github.com/windmill-labs/windmill.git
synced 2026-08-19 00:02:03 +00:00
fix structured output for anthropic (#7384)
This commit is contained in:
@@ -147,7 +147,15 @@ impl OpenAIQueryBuilder {
|
||||
.map(|props| !props.is_empty())
|
||||
.unwrap_or(false);
|
||||
|
||||
let response_format = if has_output_properties && args.output_schema.is_some() {
|
||||
let should_use_structured_output_tool =
|
||||
should_use_structured_output_tool(&self.provider_kind, args.model);
|
||||
|
||||
// Only use response_format for providers that support it (not Claude/Anthropic)
|
||||
// Claude models use a tool for structured output instead
|
||||
let response_format = if has_output_properties
|
||||
&& args.output_schema.is_some()
|
||||
&& !should_use_structured_output_tool
|
||||
{
|
||||
let schema = args.output_schema.unwrap();
|
||||
let strict_schema = schema.clone().make_strict();
|
||||
Some(ResponseFormat {
|
||||
@@ -162,10 +170,8 @@ impl OpenAIQueryBuilder {
|
||||
None
|
||||
};
|
||||
|
||||
let should_use_structured_output_tool =
|
||||
should_use_structured_output_tool(&self.provider_kind, args.model);
|
||||
// Force usage of structured output tool for Claude models when structured output provided
|
||||
let tool_choice = if should_use_structured_output_tool && response_format.is_some() {
|
||||
// Force usage of structured output tool for Claude models when structured output is provided
|
||||
let tool_choice = if should_use_structured_output_tool && has_output_properties {
|
||||
Some(ToolChoice::Required)
|
||||
} else {
|
||||
None
|
||||
|
||||
Reference in New Issue
Block a user