feat: support image quality control
This commit is contained in:
@@ -57,6 +57,7 @@ const embeddingFields: FieldDefinition[] = [
|
||||
const imageFields: FieldDefinition[] = [
|
||||
{ key: 'support_base64_input', label: 'Base64 输入', type: 'boolean' },
|
||||
{ key: 'support_url_input', label: 'URL 输入', type: 'boolean' },
|
||||
{ key: 'support_quality_control', label: '生成质量控制', hint: '支持请求中的 quality 参数', type: 'boolean' },
|
||||
{ key: 'input_multiple_images', label: '多图输入', type: 'boolean' },
|
||||
{ key: 'input_max_images_count', label: '最多输入图片', placeholder: '10', type: 'number' },
|
||||
{ key: 'output_multiple_images', label: '多图输出', type: 'boolean' },
|
||||
@@ -778,6 +779,7 @@ function enabledBooleanLabels(config?: Record<string, unknown>) {
|
||||
supportWebSearch: '联网搜索',
|
||||
support_base64_input: 'Base64 输入',
|
||||
support_url_input: 'URL 输入',
|
||||
support_quality_control: '质量控制',
|
||||
input_multiple_images: '多图输入',
|
||||
output_multiple_images: '多图输出',
|
||||
input_audio: '音频输入',
|
||||
|
||||
@@ -17,6 +17,7 @@ export type CapabilityFlagKey =
|
||||
| 'supportThinkingModeSwitch'
|
||||
| 'supportStructuredOutput'
|
||||
| 'supportWebSearch'
|
||||
| 'supportQualityControl'
|
||||
| 'inputMultipleImages'
|
||||
| 'outputMultipleImages'
|
||||
| 'supportBase64Input'
|
||||
@@ -81,6 +82,7 @@ const flagKeys: CapabilityFlagKey[] = [
|
||||
'supportThinkingModeSwitch',
|
||||
'supportStructuredOutput',
|
||||
'supportWebSearch',
|
||||
'supportQualityControl',
|
||||
'inputMultipleImages',
|
||||
'outputMultipleImages',
|
||||
'supportBase64Input',
|
||||
@@ -114,6 +116,7 @@ const managedRootKeys = new Set<string>([
|
||||
'supportWebSearch',
|
||||
'supportBase64Input',
|
||||
'supportUrlInput',
|
||||
'supportQualityControl',
|
||||
'maxContextTokens',
|
||||
'maxInputTokens',
|
||||
'maxOutputTokens',
|
||||
@@ -135,6 +138,7 @@ const managedNestedKeys = new Set<string>([
|
||||
'dimensions',
|
||||
'support_base64_input',
|
||||
'support_url_input',
|
||||
'support_quality_control',
|
||||
'input_multiple_images',
|
||||
'input_max_images_count',
|
||||
'output_multiple_images',
|
||||
@@ -204,6 +208,7 @@ export function capabilitiesToForm(value?: Record<string, unknown>, modelType =
|
||||
state.flags.supportWebSearch = boolFrom(source.supportWebSearch ?? nestedValue(source, 'supportWebSearch'));
|
||||
state.flags.supportBase64Input = boolFrom(source.supportBase64Input ?? nestedValue(source, 'support_base64_input'));
|
||||
state.flags.supportUrlInput = boolFrom(source.supportUrlInput ?? nestedValue(source, 'support_url_input'));
|
||||
state.flags.supportQualityControl = boolFrom(source.supportQualityControl ?? nestedValue(source, 'support_quality_control'));
|
||||
state.flags.inputMultipleImages = nestedBool(source, 'input_multiple_images');
|
||||
state.flags.outputMultipleImages = nestedBool(source, 'output_multiple_images');
|
||||
state.flags.outputAudio = nestedBool(source, 'output_audio');
|
||||
@@ -278,10 +283,10 @@ export function defaultCapabilityConfig(type: string): Record<string, unknown> {
|
||||
}
|
||||
if (type === 'text_embedding') return { dimensions: [] };
|
||||
if (type === 'image_generate') {
|
||||
return { output_resolutions: ['1K'], output_multiple_images: false };
|
||||
return { output_resolutions: ['1K'], output_multiple_images: false, support_quality_control: false };
|
||||
}
|
||||
if (type === 'image_edit') {
|
||||
return { input_multiple_images: false, output_resolutions: ['1K'], output_multiple_images: false };
|
||||
return { input_multiple_images: false, output_resolutions: ['1K'], output_multiple_images: false, support_quality_control: false };
|
||||
}
|
||||
if (type === 'video_generate') {
|
||||
return { output_resolutions: ['720p'], duration_range: [5, 10], output_audio: false };
|
||||
@@ -346,6 +351,7 @@ function rootCompatibilityConfig(source: Record<string, unknown>) {
|
||||
'supportWebSearch',
|
||||
'supportBase64Input',
|
||||
'supportUrlInput',
|
||||
'supportQualityControl',
|
||||
'maxContextTokens',
|
||||
'maxInputTokens',
|
||||
'maxOutputTokens',
|
||||
@@ -361,6 +367,7 @@ function toCapabilityKey(key: string) {
|
||||
const map: Record<string, string> = {
|
||||
supportBase64Input: 'support_base64_input',
|
||||
supportUrlInput: 'support_url_input',
|
||||
supportQualityControl: 'support_quality_control',
|
||||
maxContextTokens: 'max_context_tokens',
|
||||
maxInputTokens: 'max_input_tokens',
|
||||
maxOutputTokens: 'max_output_tokens',
|
||||
|
||||
Reference in New Issue
Block a user