fix(anthropic): validate and clean json schemas for structured outputs #459
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This pull request fixes a "Bad request" error that occurs when using
f.json()or a baref.object()in a structured output with Anthropic models. The Anthropic API requires that all object schemas in a structured output must haveadditionalPropertiesexplicitly set tofalse, which is incompatible with arbitrary JSON objects.This PR introduces the following changes:
cleanSchemaForAnthropicfunction insrc/ax/ai/anthropic/api.tshas been updated to detect unsupported schemas (i.e., those representing arbitrary JSON objects). When such a schema is found, it throws a descriptive error with suggested workarounds.additionalProperties: falseto ensure compliance with the Anthropic API.src/ax/ai/anthropic/api.test.tsto verify that the correct error is thrown for unsupported schemas.This solution provides a better developer experience by catching the error early and providing clear guidance, while also ensuring that valid schemas are correctly processed.
Fixes #458
PR created automatically by Jules for task 4936239086328272522 started by @dosco