pub struct OpenAiSchemaAdapter;Available on crate features
models and openai only.Expand description
Schema adapter for OpenAI non-strict mode.
Applies minimal safe fixes without destroying schema semantics. Does NOT
remove $ref, $defs, anyOf, oneOf, additionalProperties, or
collapse type arrays.
Transform order:
strip_schema_keywordstrip_conditional_keywordsconvert_const_to_enumadd_implicit_object_typestrip_unsupported_formats
§Example
use adk_model::openai::OpenAiSchemaAdapter;
use adk_core::SchemaAdapter;
use serde_json::json;
let adapter = OpenAiSchemaAdapter;
let schema = json!({
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"name": { "type": "string" }
},
"$ref": "#/$defs/Base",
"anyOf": [{"type": "string"}, {"type": "number"}],
"additionalProperties": true
});
let result = adapter.normalize_schema(schema);
// $schema removed
assert!(result.get("$schema").is_none());
// $ref, anyOf, additionalProperties preserved
assert!(result.get("$ref").is_some());
assert!(result.get("anyOf").is_some());
assert!(result.get("additionalProperties").is_some());Trait Implementations§
Source§impl Debug for OpenAiSchemaAdapter
impl Debug for OpenAiSchemaAdapter
Source§impl SchemaAdapter for OpenAiSchemaAdapter
impl SchemaAdapter for OpenAiSchemaAdapter
Source§fn normalize_schema(&self, schema: Value) -> Value
fn normalize_schema(&self, schema: Value) -> Value
Normalize a raw JSON Schema for this provider. Read more
Source§fn normalize_tool_name<'a>(&self, name: &'a str) -> Cow<'a, str>
fn normalize_tool_name<'a>(&self, name: &'a str) -> Cow<'a, str>
Normalize a tool name for this provider’s limits. Read more
Source§fn empty_schema(&self) -> Value
fn empty_schema(&self) -> Value
Fallback schema when a tool provides no
parameters_schema. Read moreAuto Trait Implementations§
impl Freeze for OpenAiSchemaAdapter
impl RefUnwindSafe for OpenAiSchemaAdapter
impl Send for OpenAiSchemaAdapter
impl Sync for OpenAiSchemaAdapter
impl Unpin for OpenAiSchemaAdapter
impl UnsafeUnpin for OpenAiSchemaAdapter
impl UnwindSafe for OpenAiSchemaAdapter
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