| 
									
										
										
										
											2024-10-21 10:32:37 +08:00
										 |  |  | import { SupportUploadFileTypes, type ValueSelector } from '../../workflow/types' | 
					
						
							| 
									
										
										
										
											2024-04-08 18:51:46 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-10-12 23:14:28 +08:00
										 |  |  | 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) | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2024-04-08 18:51:46 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | /* | 
					
						
							|  |  |  | * {{#1711617514996.name#}} => [1711617514996, name] | 
					
						
							|  |  |  | * {{#1711617514996.sys.query#}} => [sys, query] | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | export const getInputVars = (text: string): ValueSelector[] => { | 
					
						
							| 
									
										
										
										
											2024-04-25 18:01:53 +08:00
										 |  |  |   if (!text) | 
					
						
							|  |  |  |     return [] | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-04-08 18:51:46 +08:00
										 |  |  |   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 [] | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2024-10-21 10:32:37 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | export const FILE_EXTS: Record<string, string[]> = { | 
					
						
							|  |  |  |   [SupportUploadFileTypes.image]: ['JPG', 'JPEG', 'PNG', 'GIF', 'WEBP', 'SVG'], | 
					
						
							| 
									
										
										
										
											2025-02-12 18:04:28 +08:00
										 |  |  |   [SupportUploadFileTypes.document]: ['TXT', 'MD', 'MDX', 'MARKDOWN', 'PDF', 'HTML', 'XLSX', 'XLS', 'DOC', 'DOCX', 'CSV', 'EML', 'MSG', 'PPTX', 'PPT', 'XML', 'EPUB'], | 
					
						
							| 
									
										
										
										
											2025-04-11 17:53:18 +08:00
										 |  |  |   [SupportUploadFileTypes.audio]: ['MP3', 'M4A', 'WAV', 'AMR', 'MPGA'], | 
					
						
							|  |  |  |   [SupportUploadFileTypes.video]: ['MP4', 'MOV', 'MPEG', 'WEBM'], | 
					
						
							| 
									
										
										
										
											2024-10-21 10:32:37 +08:00
										 |  |  | } |