| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196 |
- import type { ToolCredential, ToolParameter } from '../types'
- import { FormTypeEnum } from '@/app/components/header/account-setting/model-provider-page/declarations'
- import { VarType as VarKindType } from '@/app/components/workflow/nodes/tool/types'
-
- export const toType = (type: string) => {
- switch (type) {
- case 'string':
- return 'text-input'
- case 'number':
- return 'number-input'
- default:
- return type
- }
- }
- export const toolParametersToFormSchemas = (parameters: ToolParameter[]) => {
- if (!parameters)
- return []
-
- const formSchemas = parameters.map((parameter) => {
- return {
- ...parameter,
- variable: parameter.name,
- type: toType(parameter.type),
- _type: parameter.type,
- show_on: [],
- options: parameter.options?.map((option) => {
- return {
- ...option,
- show_on: [],
- }
- }),
- tooltip: parameter.human_description,
- }
- })
- return formSchemas
- }
-
- export const toolCredentialToFormSchemas = (parameters: ToolCredential[]) => {
- if (!parameters)
- return []
-
- const formSchemas = parameters.map((parameter) => {
- return {
- ...parameter,
- variable: parameter.name,
- label: parameter.label,
- tooltip: parameter.help,
- show_on: [],
- options: parameter.options?.map((option) => {
- return {
- ...option,
- show_on: [],
- }
- }),
- }
- })
- return formSchemas
- }
-
- export const addDefaultValue = (value: Record<string, any>, formSchemas: { variable: string; type: string; default?: any }[]) => {
- const newValues = { ...value }
- formSchemas.forEach((formSchema) => {
- const itemValue = value[formSchema.variable]
- if ((formSchema.default !== undefined) && (value === undefined || itemValue === null || itemValue === '' || itemValue === undefined))
- newValues[formSchema.variable] = formSchema.default
- })
- return newValues
- }
-
- const correctInitialData = (type: string, target: any, defaultValue: any) => {
- if (type === 'text-input' || type === 'secret-input')
- target.type = 'mixed'
-
- if (type === 'boolean') {
- if (typeof defaultValue === 'string')
- target.value = defaultValue === 'true' || defaultValue === '1'
-
- if (typeof defaultValue === 'boolean')
- target.value = defaultValue
-
- if (typeof defaultValue === 'number')
- target.value = defaultValue === 1
- }
-
- if (type === 'number-input') {
- if (typeof defaultValue === 'string' && defaultValue !== '')
- target.value = Number.parseFloat(defaultValue)
- }
-
- if (type === 'app-selector' || type === 'model-selector')
- target.value = defaultValue
-
- return target
- }
-
- export const generateFormValue = (value: Record<string, any>, formSchemas: { variable: string; default?: any; type: string }[], isReasoning = false) => {
- const newValues = {} as any
- formSchemas.forEach((formSchema) => {
- const itemValue = value[formSchema.variable]
- if ((formSchema.default !== undefined) && (value === undefined || itemValue === null || itemValue === '' || itemValue === undefined)) {
- const value = formSchema.default
- newValues[formSchema.variable] = {
- value: {
- type: 'constant',
- value: formSchema.default,
- },
- ...(isReasoning ? { auto: 1, value: null } : {}),
- }
- if (!isReasoning)
- newValues[formSchema.variable].value = correctInitialData(formSchema.type, newValues[formSchema.variable].value, value)
- }
- })
- return newValues
- }
-
- export const getPlainValue = (value: Record<string, any>) => {
- const plainValue = { ...value }
- Object.keys(plainValue).forEach((key) => {
- plainValue[key] = {
- ...value[key].value,
- }
- })
- return plainValue
- }
-
- export const getStructureValue = (value: Record<string, any>) => {
- const newValue = { ...value } as any
- Object.keys(newValue).forEach((key) => {
- newValue[key] = {
- value: value[key],
- }
- })
- return newValue
- }
-
- export const getConfiguredValue = (value: Record<string, any>, formSchemas: { variable: string; type: string; default?: any }[]) => {
- const newValues = { ...value }
- formSchemas.forEach((formSchema) => {
- const itemValue = value[formSchema.variable]
- if ((formSchema.default !== undefined) && (value === undefined || itemValue === null || itemValue === '' || itemValue === undefined)) {
- const value = formSchema.default
- newValues[formSchema.variable] = {
- type: 'constant',
- value: formSchema.default,
- }
- newValues[formSchema.variable] = correctInitialData(formSchema.type, newValues[formSchema.variable], value)
- }
- })
- return newValues
- }
-
- const getVarKindType = (type: FormTypeEnum) => {
- if (type === FormTypeEnum.file || type === FormTypeEnum.files)
- return VarKindType.variable
- if (type === FormTypeEnum.select || type === FormTypeEnum.boolean || type === FormTypeEnum.textNumber)
- return VarKindType.constant
- if (type === FormTypeEnum.textInput || type === FormTypeEnum.secretInput)
- return VarKindType.mixed
- }
-
- export const generateAgentToolValue = (value: Record<string, any>, formSchemas: { variable: string; default?: any; type: string }[], isReasoning = false) => {
- const newValues = {} as any
- if (!isReasoning) {
- formSchemas.forEach((formSchema) => {
- const itemValue = value[formSchema.variable]
- newValues[formSchema.variable] = {
- value: {
- type: 'constant',
- value: itemValue.value,
- },
- }
- newValues[formSchema.variable].value = correctInitialData(formSchema.type, newValues[formSchema.variable].value, itemValue.value)
- })
- }
- else {
- formSchemas.forEach((formSchema) => {
- const itemValue = value[formSchema.variable]
- if (itemValue.auto === 1) {
- newValues[formSchema.variable] = {
- auto: 1,
- value: null,
- }
- }
- else {
- newValues[formSchema.variable] = {
- auto: 0,
- value: itemValue.value || {
- type: getVarKindType(formSchema.type as FormTypeEnum),
- value: null,
- },
- }
- }
- })
- }
- return newValues
- }
|