def __init__(
self,
types: ClassInfo,
/,
name: str | None = None,
description: str | None = None,
embed: bool = True,
) -> None:
self._adapter, self._embedded_type = make_adapter(types, embed=embed)
schema = self._adapter.json_schema() if self._adapter else None
if not name:
name = schema_title if (schema_title := (schema or {}).pop("title", None)) else "ResponseSchema"
self.name = name
if not description:
if schema_description := (schema or {}).pop("description", None):
self.description = schema_description
elif (docstring := getattr(types, "__doc__", None)) and "PEP" not in docstring:
self.description = docstring
else:
self.description = None
else:
self.description = description
self.json_schema = schema
self.system_prompt = None