Co-authored-by: Gio Gutierrez <giovannygutierrez@gmail.com>tags/0.15.0
| @@ -18,6 +18,18 @@ parameter_rules: | |||
| default: 512 | |||
| min: 1 | |||
| max: 8192 | |||
| - name: response_format | |||
| label: | |||
| zh_Hans: 回复格式 | |||
| en_US: Response Format | |||
| type: string | |||
| help: | |||
| zh_Hans: 指定模型必须输出的格式 | |||
| en_US: specifying the format that the model must output | |||
| required: false | |||
| options: | |||
| - text | |||
| - json_object | |||
| pricing: | |||
| input: '0.05' | |||
| output: '0.1' | |||
| @@ -18,6 +18,18 @@ parameter_rules: | |||
| default: 512 | |||
| min: 1 | |||
| max: 8192 | |||
| - name: response_format | |||
| label: | |||
| zh_Hans: 回复格式 | |||
| en_US: Response Format | |||
| type: string | |||
| help: | |||
| zh_Hans: 指定模型必须输出的格式 | |||
| en_US: specifying the format that the model must output | |||
| required: false | |||
| options: | |||
| - text | |||
| - json_object | |||
| pricing: | |||
| input: '0.05' | |||
| output: '0.1' | |||
| @@ -18,6 +18,18 @@ parameter_rules: | |||
| default: 512 | |||
| min: 1 | |||
| max: 8192 | |||
| - name: response_format | |||
| label: | |||
| zh_Hans: 回复格式 | |||
| en_US: Response Format | |||
| type: string | |||
| help: | |||
| zh_Hans: 指定模型必须输出的格式 | |||
| en_US: specifying the format that the model must output | |||
| required: false | |||
| options: | |||
| - text | |||
| - json_object | |||
| pricing: | |||
| input: '0.05' | |||
| output: '0.1' | |||
| @@ -6,6 +6,7 @@ label: | |||
| model_type: llm | |||
| features: | |||
| - agent-thought | |||
| - multi-tool-call | |||
| model_properties: | |||
| mode: chat | |||
| context_size: 131072 | |||
| @@ -19,6 +20,18 @@ parameter_rules: | |||
| default: 512 | |||
| min: 1 | |||
| max: 8192 | |||
| - name: response_format | |||
| label: | |||
| zh_Hans: 回复格式 | |||
| en_US: Response Format | |||
| type: string | |||
| help: | |||
| zh_Hans: 指定模型必须输出的格式 | |||
| en_US: specifying the format that the model must output | |||
| required: false | |||
| options: | |||
| - text | |||
| - json_object | |||
| pricing: | |||
| input: '0.05' | |||
| output: '0.1' | |||
| @@ -5,6 +5,7 @@ label: | |||
| model_type: llm | |||
| features: | |||
| - agent-thought | |||
| - multi-tool-call | |||
| model_properties: | |||
| mode: chat | |||
| context_size: 131072 | |||
| @@ -18,6 +19,18 @@ parameter_rules: | |||
| default: 512 | |||
| min: 1 | |||
| max: 8192 | |||
| - name: response_format | |||
| label: | |||
| zh_Hans: 回复格式 | |||
| en_US: Response Format | |||
| type: string | |||
| help: | |||
| zh_Hans: 指定模型必须输出的格式 | |||
| en_US: specifying the format that the model must output | |||
| required: false | |||
| options: | |||
| - text | |||
| - json_object | |||
| pricing: | |||
| input: '0.05' | |||
| output: '0.1' | |||
| @@ -19,6 +19,18 @@ parameter_rules: | |||
| default: 512 | |||
| min: 1 | |||
| max: 8192 | |||
| - name: response_format | |||
| label: | |||
| zh_Hans: 回复格式 | |||
| en_US: Response Format | |||
| type: string | |||
| help: | |||
| zh_Hans: 指定模型必须输出的格式 | |||
| en_US: specifying the format that the model must output | |||
| required: false | |||
| options: | |||
| - text | |||
| - json_object | |||
| pricing: | |||
| input: '0.05' | |||
| output: '0.1' | |||
| @@ -19,6 +19,18 @@ parameter_rules: | |||
| default: 512 | |||
| min: 1 | |||
| max: 8192 | |||
| - name: response_format | |||
| label: | |||
| zh_Hans: 回复格式 | |||
| en_US: Response Format | |||
| type: string | |||
| help: | |||
| zh_Hans: 指定模型必须输出的格式 | |||
| en_US: specifying the format that the model must output | |||
| required: false | |||
| options: | |||
| - text | |||
| - json_object | |||
| pricing: | |||
| input: '0.05' | |||
| output: '0.1' | |||
| @@ -18,6 +18,18 @@ parameter_rules: | |||
| default: 512 | |||
| min: 1 | |||
| max: 8192 | |||
| - name: response_format | |||
| label: | |||
| zh_Hans: 回复格式 | |||
| en_US: Response Format | |||
| type: string | |||
| help: | |||
| zh_Hans: 指定模型必须输出的格式 | |||
| en_US: specifying the format that the model must output | |||
| required: false | |||
| options: | |||
| - text | |||
| - json_object | |||
| pricing: | |||
| input: '0.05' | |||
| output: '0.1' | |||
| @@ -18,6 +18,18 @@ parameter_rules: | |||
| default: 512 | |||
| min: 1 | |||
| max: 8192 | |||
| - name: response_format | |||
| label: | |||
| zh_Hans: 回复格式 | |||
| en_US: Response Format | |||
| type: string | |||
| help: | |||
| zh_Hans: 指定模型必须输出的格式 | |||
| en_US: specifying the format that the model must output | |||
| required: false | |||
| options: | |||
| - text | |||
| - json_object | |||
| pricing: | |||
| input: '0.05' | |||
| output: '0.1' | |||
| @@ -19,6 +19,18 @@ parameter_rules: | |||
| default: 512 | |||
| min: 1 | |||
| max: 8192 | |||
| - name: response_format | |||
| label: | |||
| zh_Hans: 回复格式 | |||
| en_US: Response Format | |||
| type: string | |||
| help: | |||
| zh_Hans: 指定模型必须输出的格式 | |||
| en_US: specifying the format that the model must output | |||
| required: false | |||
| options: | |||
| - text | |||
| - json_object | |||
| pricing: | |||
| input: '0.05' | |||
| output: '0.1' | |||
| @@ -19,6 +19,18 @@ parameter_rules: | |||
| default: 512 | |||
| min: 1 | |||
| max: 8192 | |||
| - name: response_format | |||
| label: | |||
| zh_Hans: 回复格式 | |||
| en_US: Response Format | |||
| type: string | |||
| help: | |||
| zh_Hans: 指定模型必须输出的格式 | |||
| en_US: specifying the format that the model must output | |||
| required: false | |||
| options: | |||
| - text | |||
| - json_object | |||
| pricing: | |||
| input: '0.05' | |||
| output: '0.1' | |||
| @@ -5,6 +5,7 @@ label: | |||
| model_type: llm | |||
| features: | |||
| - agent-thought | |||
| - multi-tool-call | |||
| model_properties: | |||
| mode: chat | |||
| context_size: 131072 | |||
| @@ -18,6 +19,18 @@ parameter_rules: | |||
| default: 1024 | |||
| min: 1 | |||
| max: 32768 | |||
| - name: response_format | |||
| label: | |||
| zh_Hans: 回复格式 | |||
| en_US: Response Format | |||
| type: string | |||
| help: | |||
| zh_Hans: 指定模型必须输出的格式 | |||
| en_US: specifying the format that the model must output | |||
| required: false | |||
| options: | |||
| - text | |||
| - json_object | |||
| pricing: | |||
| input: "0.05" | |||
| output: "0.1" | |||
| @@ -5,6 +5,7 @@ label: | |||
| model_type: llm | |||
| features: | |||
| - agent-thought | |||
| - multi-tool-call | |||
| model_properties: | |||
| mode: chat | |||
| context_size: 131072 | |||
| @@ -18,6 +19,18 @@ parameter_rules: | |||
| default: 1024 | |||
| min: 1 | |||
| max: 32768 | |||
| - name: response_format | |||
| label: | |||
| zh_Hans: 回复格式 | |||
| en_US: Response Format | |||
| type: string | |||
| help: | |||
| zh_Hans: 指定模型必须输出的格式 | |||
| en_US: specifying the format that the model must output | |||
| required: false | |||
| options: | |||
| - text | |||
| - json_object | |||
| pricing: | |||
| input: "0.05" | |||
| output: "0.1" | |||
| @@ -18,6 +18,18 @@ parameter_rules: | |||
| default: 512 | |||
| min: 1 | |||
| max: 8192 | |||
| - name: response_format | |||
| label: | |||
| zh_Hans: 回复格式 | |||
| en_US: Response Format | |||
| type: string | |||
| help: | |||
| zh_Hans: 指定模型必须输出的格式 | |||
| en_US: specifying the format that the model must output | |||
| required: false | |||
| options: | |||
| - text | |||
| - json_object | |||
| pricing: | |||
| input: '0.20' | |||
| output: '0.20' | |||
| @@ -18,6 +18,18 @@ parameter_rules: | |||
| default: 512 | |||
| min: 1 | |||
| max: 4096 | |||
| - name: response_format | |||
| label: | |||
| zh_Hans: 回复格式 | |||
| en_US: Response Format | |||
| type: string | |||
| help: | |||
| zh_Hans: 指定模型必须输出的格式 | |||
| en_US: specifying the format that the model must output | |||
| required: false | |||
| options: | |||
| - text | |||
| - json_object | |||
| pricing: | |||
| input: '0.7' | |||
| output: '0.8' | |||
| @@ -18,6 +18,18 @@ parameter_rules: | |||
| default: 512 | |||
| min: 1 | |||
| max: 8192 | |||
| - name: response_format | |||
| label: | |||
| zh_Hans: 回复格式 | |||
| en_US: Response Format | |||
| type: string | |||
| help: | |||
| zh_Hans: 指定模型必须输出的格式 | |||
| en_US: specifying the format that the model must output | |||
| required: false | |||
| options: | |||
| - text | |||
| - json_object | |||
| pricing: | |||
| input: '0.59' | |||
| output: '0.79' | |||
| @@ -5,6 +5,7 @@ label: | |||
| model_type: llm | |||
| features: | |||
| - agent-thought | |||
| - multi-tool-call | |||
| model_properties: | |||
| mode: chat | |||
| context_size: 8192 | |||
| @@ -18,6 +19,18 @@ parameter_rules: | |||
| default: 512 | |||
| min: 1 | |||
| max: 8192 | |||
| - name: response_format | |||
| label: | |||
| zh_Hans: 回复格式 | |||
| en_US: Response Format | |||
| type: string | |||
| help: | |||
| zh_Hans: 指定模型必须输出的格式 | |||
| en_US: specifying the format that the model must output | |||
| required: false | |||
| options: | |||
| - text | |||
| - json_object | |||
| pricing: | |||
| input: '0.05' | |||
| output: '0.08' | |||
| @@ -5,6 +5,7 @@ label: | |||
| model_type: llm | |||
| features: | |||
| - agent-thought | |||
| - multi-tool-call | |||
| model_properties: | |||
| mode: chat | |||
| context_size: 8192 | |||
| @@ -18,6 +19,18 @@ parameter_rules: | |||
| default: 512 | |||
| min: 1 | |||
| max: 8192 | |||
| - name: response_format | |||
| label: | |||
| zh_Hans: 回复格式 | |||
| en_US: Response Format | |||
| type: string | |||
| help: | |||
| zh_Hans: 指定模型必须输出的格式 | |||
| en_US: specifying the format that the model must output | |||
| required: false | |||
| options: | |||
| - text | |||
| - json_object | |||
| pricing: | |||
| input: '0.05' | |||
| output: '0.08' | |||
| @@ -37,6 +37,9 @@ parameter_rules: | |||
| options: | |||
| - text | |||
| - json_object | |||
| - json_schema | |||
| - name: json_schema | |||
| use_template: json_schema | |||
| pricing: | |||
| input: '2.50' | |||
| output: '10.00' | |||
| @@ -332,6 +332,23 @@ class OAIAPICompatLargeLanguageModel(_CommonOaiApiCompat, LargeLanguageModel): | |||
| if not endpoint_url.endswith("/"): | |||
| endpoint_url += "/" | |||
| response_format = model_parameters.get("response_format") | |||
| if response_format: | |||
| if response_format == "json_schema": | |||
| json_schema = model_parameters.get("json_schema") | |||
| if not json_schema: | |||
| raise ValueError("Must define JSON Schema when the response format is json_schema") | |||
| try: | |||
| schema = json.loads(json_schema) | |||
| except: | |||
| raise ValueError(f"not correct json_schema format: {json_schema}") | |||
| model_parameters.pop("json_schema") | |||
| model_parameters["response_format"] = {"type": "json_schema", "json_schema": schema} | |||
| else: | |||
| model_parameters["response_format"] = {"type": response_format} | |||
| elif "json_schema" in model_parameters: | |||
| del model_parameters["json_schema"] | |||
| data = {"model": model, "stream": stream, **model_parameters} | |||
| completion_type = LLMMode.value_of(credentials["mode"]) | |||