Build the provider directive for an already-resolved mode.
(req: &StructuredRequest, mode: StructuredMode)
| 903 | |
| 904 | /// Build the provider directive for an already-resolved mode. |
| 905 | fn build_directive(req: &StructuredRequest, mode: StructuredMode) -> StructuredDirective { |
| 906 | match mode { |
| 907 | StructuredMode::Tool => StructuredDirective { |
| 908 | force_tool: Some(format!("emit_{}", req.schema_name)), |
| 909 | response_format: None, |
| 910 | }, |
| 911 | StructuredMode::Strict => StructuredDirective { |
| 912 | force_tool: None, |
| 913 | response_format: Some(ResponseFormat::JsonSchema { |
| 914 | name: req.schema_name.clone(), |
| 915 | schema: req.schema.clone(), |
| 916 | }), |
| 917 | }, |
| 918 | StructuredMode::Json => StructuredDirective { |
| 919 | force_tool: None, |
| 920 | response_format: Some(ResponseFormat::JsonObject), |
| 921 | }, |
| 922 | StructuredMode::Auto | StructuredMode::Prompt => StructuredDirective::default(), |
| 923 | } |
| 924 | } |
| 925 | |
| 926 | fn build_initial_messages(req: &StructuredRequest, mode: StructuredMode) -> Vec<Message> { |
| 927 | match mode { |
no test coverage detected