| import { PromptVariable, UserInputFormItem } from '@/types/app' | |
| export function replaceVarWithValues(str: string, promptVariables: PromptVariable[], inputs: Record<string, any>) { | |
| return str.replace(/\{\{([^}]+)\}\}/g, (match, key) => { | |
| const name = inputs[key] | |
| if (name) | |
| return name | |
| const valueObj: PromptVariable | undefined = promptVariables.find(v => v.key === key) | |
| return valueObj ? `{{${valueObj.key}}}` : match | |
| }) | |
| } | |
| export const userInputsFormToPromptVariables = (useInputs: UserInputFormItem[] | null) => { | |
| if (!useInputs) return [] | |
| const promptVariables: PromptVariable[] = [] | |
| useInputs.forEach((item: any) => { | |
| const type = item['text-input'] ? 'string' : 'select' | |
| const content = type === 'string' ? item['text-input'] : item['select'] | |
| if (type === 'string') { | |
| promptVariables.push({ | |
| key: content.variable, | |
| name: content.label, | |
| required: content.required, | |
| type: 'string', | |
| max_length: content.max_length, | |
| options: [], | |
| }) | |
| } else { | |
| promptVariables.push({ | |
| key: content.variable, | |
| name: content.label, | |
| required: content.required, | |
| type: 'select', | |
| options: content.options, | |
| }) | |
| } | |
| }) | |
| return promptVariables | |
| } |