Spaces:
Running
Running
import type { ValueSelector } from '../../workflow/types' | |
export const CONTEXT_PLACEHOLDER_TEXT = '{{#context#}}' | |
export const HISTORY_PLACEHOLDER_TEXT = '{{#histories#}}' | |
export const QUERY_PLACEHOLDER_TEXT = '{{#query#}}' | |
export const PRE_PROMPT_PLACEHOLDER_TEXT = '{{#pre_prompt#}}' | |
export const UPDATE_DATASETS_EVENT_EMITTER = 'prompt-editor-context-block-update-datasets' | |
export const UPDATE_HISTORY_EVENT_EMITTER = 'prompt-editor-history-block-update-role' | |
export const checkHasContextBlock = (text: string) => { | |
if (!text) | |
return false | |
return text.includes(CONTEXT_PLACEHOLDER_TEXT) | |
} | |
export const checkHasHistoryBlock = (text: string) => { | |
if (!text) | |
return false | |
return text.includes(HISTORY_PLACEHOLDER_TEXT) | |
} | |
export const checkHasQueryBlock = (text: string) => { | |
if (!text) | |
return false | |
return text.includes(QUERY_PLACEHOLDER_TEXT) | |
} | |
/* | |
* {{#1711617514996.name#}} => [1711617514996, name] | |
* {{#1711617514996.sys.query#}} => [sys, query] | |
*/ | |
export const getInputVars = (text: string): ValueSelector[] => { | |
if (!text) | |
return [] | |
const allVars = text.match(/{{#([^#]*)#}}/g) | |
if (allVars && allVars?.length > 0) { | |
// {{#context#}}, {{#query#}} is not input vars | |
const inputVars = allVars | |
.filter(item => item.includes('.')) | |
.map((item) => { | |
const valueSelector = item.replace('{{#', '').replace('#}}', '').split('.') | |
if (valueSelector[1] === 'sys' && /^\d+$/.test(valueSelector[0])) | |
return valueSelector.slice(1) | |
return valueSelector | |
}) | |
return inputVars | |
} | |
return [] | |
} | |