浏览代码

fix: the input field of tool panel not worked as expected (#6003)

tags/0.6.13
非法操作 1年前
父节点
当前提交
eee779a923
没有帐户链接到提交者的电子邮件

+ 6
- 6
api/core/tools/tool_manager.py 查看文件

'invoke_from': invoke_from, 'invoke_from': invoke_from,
'tool_invoke_from': tool_invoke_from, 'tool_invoke_from': tool_invoke_from,
}) })
elif provider_type == 'api': elif provider_type == 'api':
if tenant_id is None: if tenant_id is None:
raise ValueError('tenant id is required for api provider') raise ValueError('tenant id is required for api provider')
init runtime parameter init runtime parameter
""" """
parameter_value = parameters.get(parameter_rule.name) parameter_value = parameters.get(parameter_rule.name)
if not parameter_value:
if not parameter_value and parameter_value != 0:
# get default value # get default value
parameter_value = parameter_rule.default parameter_value = parameter_rule.default
if not parameter_value and parameter_rule.required: if not parameter_value and parameter_rule.required:
if cls._builtin_providers_loaded: if cls._builtin_providers_loaded:
yield from list(cls._builtin_providers.values()) yield from list(cls._builtin_providers.values())
return return
with cls._builtin_provider_lock: with cls._builtin_provider_lock:
if cls._builtin_providers_loaded: if cls._builtin_providers_loaded:
yield from list(cls._builtin_providers.values()) yield from list(cls._builtin_providers.values())
return return
yield from cls._list_builtin_providers() yield from cls._list_builtin_providers()
@classmethod @classmethod
def _list_builtin_providers(cls) -> Generator[BuiltinToolProviderController, None, None]: def _list_builtin_providers(cls) -> Generator[BuiltinToolProviderController, None, None]:
""" """


controller = ApiToolProviderController.from_db( controller = ApiToolProviderController.from_db(
provider, provider,
ApiProviderAuthType.API_KEY if provider.credentials['auth_type'] == 'api_key' else
ApiProviderAuthType.API_KEY if provider.credentials['auth_type'] == 'api_key' else
ApiProviderAuthType.NONE ApiProviderAuthType.NONE
) )
controller.load_bundled_tools(provider.tools) controller.load_bundled_tools(provider.tools)

+ 1
- 0
web/app/components/base/select/index.tsx 查看文件

onClick={(e) => { onClick={(e) => {
e.stopPropagation() e.stopPropagation()
setSelectedItem(null) setSelectedItem(null)
onSelect({ value: null })
}} }}
className="h-5 w-5 text-gray-400 cursor-pointer" className="h-5 w-5 text-gray-400 cursor-pointer"
aria-hidden="false" aria-hidden="false"

+ 8
- 2
web/app/components/header/account-setting/model-provider-page/model-modal/Form.tsx 查看文件

validated={validatedSuccess} validated={validatedSuccess}
placeholder={placeholder?.[language] || placeholder?.en_US} placeholder={placeholder?.[language] || placeholder?.en_US}
disabled={disabed} disabled={disabed}
type={formSchema.type === FormTypeEnum.textNumber ? 'number' : 'text'}
type={formSchema.type === FormTypeEnum.textNumber ? 'number' : formSchema.type === FormTypeEnum.secretInput ? 'password' : 'text'}
{...(formSchema.type === FormTypeEnum.textNumber ? { min: (formSchema as CredentialFormSchemaNumberInput).min, max: (formSchema as CredentialFormSchemaNumberInput).max } : {})} {...(formSchema.type === FormTypeEnum.textNumber ? { min: (formSchema as CredentialFormSchemaNumberInput).min, max: (formSchema as CredentialFormSchemaNumberInput).max } : {})}
/> />
{fieldMoreInfo?.(formSchema)} {fieldMoreInfo?.(formSchema)}
variable, variable,
label, label,
show_on, show_on,
required,
} = formSchema as CredentialFormSchemaRadio } = formSchema as CredentialFormSchemaRadio


if (show_on.length && !show_on.every(showOnItem => value[showOnItem.variable] === showOnItem.value)) if (show_on.length && !show_on.every(showOnItem => value[showOnItem.variable] === showOnItem.value))
<div className='flex items-center justify-between py-2 text-sm text-gray-900'> <div className='flex items-center justify-between py-2 text-sm text-gray-900'>
<div className='flex items-center space-x-2'> <div className='flex items-center space-x-2'>
<span className={cn(fieldLabelClassName, 'py-2 text-sm text-gray-900')}>{label[language] || label.en_US}</span> <span className={cn(fieldLabelClassName, 'py-2 text-sm text-gray-900')}>{label[language] || label.en_US}</span>
{
required && (
<span className='ml-1 text-red-500'>*</span>
)
}
{tooltipContent} {tooltipContent}
</div> </div>
<Radio.Group <Radio.Group
className='flex items-center' className='flex items-center'
value={value[variable] ? 1 : 0}
value={value[variable] === null ? undefined : (value[variable] ? 1 : 0)}
onChange={val => handleFormChange(variable, val === 1)} onChange={val => handleFormChange(variable, val === 1)}
> >
<Radio value={1} className='!mr-1'>True</Radio> <Radio value={1} className='!mr-1'>True</Radio>

+ 1
- 1
web/app/components/header/account-setting/model-provider-page/model-modal/Input.tsx 查看文件

onChange={e => onChange(e.target.value)} onChange={e => onChange(e.target.value)}
onBlur={e => toLimit(e.target.value)} onBlur={e => toLimit(e.target.value)}
onFocus={onFocus} onFocus={onFocus}
value={value || ''}
value={value}
disabled={disabled} disabled={disabled}
type={type} type={type}
min={min} min={min}

正在加载...
取消
保存