pub struct OpenAiStrictSchemaAdapter;Available on crate features
models and openai only.Expand description
Schema adapter for OpenAI strict mode.
Applies conservative transforms and recursively sets additionalProperties: false
on all object schemas. Preserves $ref, $defs, anyOf, oneOf, and type arrays.
Transform order:
strip_schema_keywordstrip_conditional_keywordsconvert_const_to_enumadd_implicit_object_typestrip_unsupported_formats- Recursively set
additionalProperties: falseon all object schemas
§Example
use adk_model::openai::OpenAiStrictSchemaAdapter;
use adk_core::SchemaAdapter;
use serde_json::json;
let adapter = OpenAiStrictSchemaAdapter;
let schema = json!({
"type": "object",
"properties": {
"name": { "type": "string" },
"address": {
"type": "object",
"properties": {
"street": { "type": "string" }
}
}
}
});
let result = adapter.normalize_schema(schema);
assert_eq!(result["additionalProperties"], false);
assert_eq!(result["properties"]["address"]["additionalProperties"], false);Trait Implementations§
Source§impl Debug for OpenAiStrictSchemaAdapter
impl Debug for OpenAiStrictSchemaAdapter
Source§impl SchemaAdapter for OpenAiStrictSchemaAdapter
impl SchemaAdapter for OpenAiStrictSchemaAdapter
Source§fn empty_schema(&self) -> Value
fn empty_schema(&self) -> Value
Returns {"type": "object", "properties": {}, "additionalProperties": false}.
OpenAI strict mode requires additionalProperties: false even on the
empty fallback schema.
Auto Trait Implementations§
impl Freeze for OpenAiStrictSchemaAdapter
impl RefUnwindSafe for OpenAiStrictSchemaAdapter
impl Send for OpenAiStrictSchemaAdapter
impl Sync for OpenAiStrictSchemaAdapter
impl Unpin for OpenAiStrictSchemaAdapter
impl UnsafeUnpin for OpenAiStrictSchemaAdapter
impl UnwindSafe for OpenAiStrictSchemaAdapter
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more