| 733 | |
| 734 | @staticmethod |
| 735 | def from_dict(obj: Any) -> ModelInfo: |
| 736 | assert isinstance(obj, dict) |
| 737 | id = obj.get("id") |
| 738 | name = obj.get("name") |
| 739 | capabilities_dict = obj.get("capabilities") |
| 740 | if id is None or name is None or capabilities_dict is None: |
| 741 | raise ValueError( |
| 742 | f"Missing required fields in ModelInfo: id={id}, name={name}, " |
| 743 | f"capabilities={capabilities_dict}" |
| 744 | ) |
| 745 | capabilities = ModelCapabilities.from_dict(capabilities_dict) |
| 746 | policy_dict = obj.get("policy") |
| 747 | policy = ModelPolicy.from_dict(policy_dict) if policy_dict else None |
| 748 | billing_dict = obj.get("billing") |
| 749 | billing = ModelBilling.from_dict(billing_dict) if billing_dict else None |
| 750 | supported_reasoning_efforts = obj.get("supportedReasoningEfforts") |
| 751 | default_reasoning_effort = obj.get("defaultReasoningEffort") |
| 752 | return ModelInfo( |
| 753 | id=str(id), |
| 754 | name=str(name), |
| 755 | capabilities=capabilities, |
| 756 | policy=policy, |
| 757 | billing=billing, |
| 758 | supported_reasoning_efforts=supported_reasoning_efforts, |
| 759 | default_reasoning_effort=default_reasoning_effort, |
| 760 | ) |
| 761 | |
| 762 | def to_dict(self) -> dict: |
| 763 | result: dict = {} |