mirror of
				https://github.com/langgenius/dify.git
				synced 2025-10-31 10:53:02 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			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 []
 | |
| }
 | 
