Przeglądaj źródła

feat: add json response format for siliconflow models (#10657)

orangeclk 5 miesięcy temu
rodzic
commit
317ae9233e

+ 12 - 0
api/core/model_runtime/model_providers/siliconflow/llm/deepseek-v2.5.yaml

@@ -32,6 +32,18 @@ parameter_rules:
     required: false
   - name: frequency_penalty
     use_template: frequency_penalty
+  - 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: '1.33'
   output: '1.33'

+ 12 - 0
api/core/model_runtime/model_providers/siliconflow/llm/gemma-2-27b-it.yaml

@@ -32,6 +32,18 @@ parameter_rules:
     required: false
   - name: frequency_penalty
     use_template: frequency_penalty
+  - 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: '1.26'
   output: '1.26'

+ 12 - 0
api/core/model_runtime/model_providers/siliconflow/llm/gemma-2-9b-it.yaml

@@ -32,6 +32,18 @@ parameter_rules:
     required: false
   - name: frequency_penalty
     use_template: frequency_penalty
+  - 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'
   output: '0'

+ 12 - 0
api/core/model_runtime/model_providers/siliconflow/llm/glm4-9b-chat.yaml

@@ -32,6 +32,18 @@ parameter_rules:
     required: false
   - name: frequency_penalty
     use_template: frequency_penalty
+  - 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'
   output: '0'

+ 12 - 0
api/core/model_runtime/model_providers/siliconflow/llm/internlm2_5-20b-chat.yaml

@@ -32,6 +32,18 @@ parameter_rules:
     required: false
   - name: frequency_penalty
     use_template: frequency_penalty
+  - 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: '1'
   output: '1'

+ 12 - 0
api/core/model_runtime/model_providers/siliconflow/llm/internlm2_5-7b-chat.yaml

@@ -32,6 +32,18 @@ parameter_rules:
     required: false
   - name: frequency_penalty
     use_template: frequency_penalty
+  - 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'
   output: '0'

+ 3 - 0
api/core/model_runtime/model_providers/siliconflow/llm/llm.py

@@ -29,6 +29,9 @@ class SiliconflowLargeLanguageModel(OAIAPICompatLargeLanguageModel):
         user: Optional[str] = None,
     ) -> Union[LLMResult, Generator]:
         self._add_custom_parameters(credentials)
+        # {"response_format": "json_object"} need convert to {"response_format": {"type": "json_object"}}
+        if "response_format" in model_parameters:
+            model_parameters["response_format"] = {"type": model_parameters.get("response_format")}
         return super()._invoke(model, credentials, prompt_messages, model_parameters, tools, stop, stream)
 
     def validate_credentials(self, model: str, credentials: dict) -> None:

+ 12 - 0
api/core/model_runtime/model_providers/siliconflow/llm/meta-mlama-3.1-405b-instruct.yaml

@@ -32,6 +32,18 @@ parameter_rules:
     required: false
   - name: frequency_penalty
     use_template: frequency_penalty
+  - 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: '21'
   output: '21'

+ 12 - 0
api/core/model_runtime/model_providers/siliconflow/llm/meta-mlama-3.1-70b-instruct.yaml

@@ -32,6 +32,18 @@ parameter_rules:
     required: false
   - name: frequency_penalty
     use_template: frequency_penalty
+  - 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: '4.13'
   output: '4.13'

+ 12 - 0
api/core/model_runtime/model_providers/siliconflow/llm/meta-mlama-3.1-8b-instruct.yaml

@@ -32,6 +32,18 @@ parameter_rules:
     required: false
   - name: frequency_penalty
     use_template: frequency_penalty
+  - 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'
   output: '0'

+ 12 - 0
api/core/model_runtime/model_providers/siliconflow/llm/qwen2.5-14b-instruct.yaml

@@ -32,6 +32,18 @@ parameter_rules:
     required: false
   - name: frequency_penalty
     use_template: frequency_penalty
+  - 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.7'

+ 12 - 0
api/core/model_runtime/model_providers/siliconflow/llm/qwen2.5-32b-instruct.yaml

@@ -32,6 +32,18 @@ parameter_rules:
     required: false
   - name: frequency_penalty
     use_template: frequency_penalty
+  - 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: '1.26'
   output: '1.26'

+ 12 - 0
api/core/model_runtime/model_providers/siliconflow/llm/qwen2.5-72b-instruct.yaml

@@ -32,6 +32,18 @@ parameter_rules:
     required: false
   - name: frequency_penalty
     use_template: frequency_penalty
+  - 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: '4.13'
   output: '4.13'

+ 12 - 0
api/core/model_runtime/model_providers/siliconflow/llm/qwen2.5-7b-instruct.yaml

@@ -32,6 +32,18 @@ parameter_rules:
     required: false
   - name: frequency_penalty
     use_template: frequency_penalty
+  - 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'
   output: '0'

+ 11 - 1
api/core/model_runtime/model_providers/siliconflow/llm/qwen2.5-coder-7b-instruct.yaml

@@ -66,7 +66,17 @@ parameter_rules:
       zh_Hans: 用于控制模型生成时的重复度。提高repetition_penalty时可以降低模型生成的重复度。1.0表示不做惩罚。
       en_US: Used to control the repeatability when generating models. Increasing repetition_penalty can reduce the duplication of model generation. 1.0 means no punishment.
   - name: response_format
-    use_template: 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'
   output: '0'

+ 11 - 1
api/core/model_runtime/model_providers/siliconflow/llm/qwen2.5-math-72b-instruct.yaml

@@ -66,7 +66,17 @@ parameter_rules:
       zh_Hans: 用于控制模型生成时的重复度。提高repetition_penalty时可以降低模型生成的重复度。1.0表示不做惩罚。
       en_US: Used to control the repeatability when generating models. Increasing repetition_penalty can reduce the duplication of model generation. 1.0 means no punishment.
   - name: response_format
-    use_template: 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: '4.13'
   output: '4.13'