mirror of
https://github.com/langgenius/dify.git
synced 2024-11-16 19:59:50 +08:00
12435774ca
Co-authored-by: Joel <iamjoel007@gmail.com>
52 lines
1.5 KiB
TypeScript
52 lines
1.5 KiB
TypeScript
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 []
|
|
}
|