2023-06-01 23:19:36 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/* eslint-disable import/no-mutable-exports */  
						 
					
						
							
								
									
										
										
										
											2024-04-08 18:51:46 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								import  {  InputVarType  }  from  '@/app/components/workflow/types'  
						 
					
						
							
								
									
										
										
										
											2024-01-31 12:32:13 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								import  {  AgentStrategy  }  from  '@/types/app'  
						 
					
						
							
								
									
										
										
										
											2024-04-08 21:36:27 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								import  {  PromptRole  }  from  '@/models/debug'  
						 
					
						
							
								
									
										
										
										
											2023-05-15 08:51:32 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-06-01 23:19:36 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								export  let  apiPrefix  =  ''  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								export  let  publicApiPrefix  =  ''  
						 
					
						
							
								
									
										
										
										
											2023-05-15 08:51:32 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// NEXT_PUBLIC_API_PREFIX=/console/api NEXT_PUBLIC_PUBLIC_API_PREFIX=/api npm run start
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  ( process . env . NEXT_PUBLIC_API_PREFIX  &&  process . env . NEXT_PUBLIC_PUBLIC_API_PREFIX )  {  
						 
					
						
							
								
									
										
										
										
											2023-06-01 23:19:36 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  apiPrefix  =  process . env . NEXT_PUBLIC_API_PREFIX 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  publicApiPrefix  =  process . env . NEXT_PUBLIC_PUBLIC_API_PREFIX 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								else  if  (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  globalThis . document ? . body ? . getAttribute ( 'data-api-prefix' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  &&  globalThis . document ? . body ? . getAttribute ( 'data-pubic-api-prefix' ) 
							 
						 
					
						
							
								
									
										
										
										
											2023-05-15 08:51:32 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								)  {  
						 
					
						
							
								
									
										
										
										
											2024-05-09 13:49:19 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  // Not build can not get env from process.env.NEXT_PUBLIC_ in browser https://nextjs.org/docs/basic-features/environment-variables#exposing-environment-variables-to-the-browser
 
							 
						 
					
						
							
								
									
										
										
										
											2023-05-15 08:51:32 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								  apiPrefix  =  globalThis . document . body . getAttribute ( 'data-api-prefix' )  as  string 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  publicApiPrefix  =  globalThis . document . body . getAttribute ( 'data-pubic-api-prefix' )  as  string 
							 
						 
					
						
							
								
									
										
										
										
											2023-06-01 23:19:36 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								else  {  
						 
					
						
							
								
									
										
										
										
											2024-01-31 12:32:13 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  // const domainParts = globalThis.location?.host?.split('.');
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  // in production env, the host is dify.app . In other env, the host is [dev].dify.app
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  // const env = domainParts.length === 2 ? 'ai' : domainParts?.[0];
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  apiPrefix  =  'http://localhost:5001/console/api' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  publicApiPrefix  =  'http://localhost:5001/api'  // avoid browser private mode api cross origin
 
							 
						 
					
						
							
								
									
										
										
										
											2023-05-15 08:51:32 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-06-01 23:19:36 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								export  const  API_PREFIX : string  =  apiPrefix  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								export  const  PUBLIC_API_PREFIX : string  =  publicApiPrefix  
						 
					
						
							
								
									
										
										
										
											2023-05-15 08:51:32 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-31 12:32:13 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								const  EDITION  =  process . env . NEXT_PUBLIC_EDITION  ||  globalThis . document ? . body ? . getAttribute ( 'data-public-edition' )  ||  'SELF_HOSTED'  
						 
					
						
							
								
									
										
										
										
											2023-05-15 08:51:32 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								export  const  IS_CE_EDITION  =  EDITION  ===  'SELF_HOSTED'  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-06-06 15:01:58 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								export  const  SUPPORT_MAIL_LOGIN  =  ! ! ( process . env . NEXT_PUBLIC_SUPPORT_MAIL_LOGIN  ||  globalThis . document ? . body ? . getAttribute ( 'data-public-support-mail-login' ) )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-05-15 08:51:32 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								export  const  TONE_LIST  =  [  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    id : 1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    name :  'Creative' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    config :  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      temperature : 0.8 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      top_p : 0.9 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      presence_penalty : 0.1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      frequency_penalty : 0.1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    id : 2 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    name :  'Balanced' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    config :  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      temperature : 0.5 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      top_p : 0.85 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      presence_penalty : 0.2 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      frequency_penalty : 0.3 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    id : 3 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    name :  'Precise' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    config :  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      temperature : 0.2 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      top_p : 0.75 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      presence_penalty : 0.5 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      frequency_penalty : 0.5 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    id : 4 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    name :  'Custom' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								]  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-10-12 23:14:28 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								export  const  DEFAULT_CHAT_PROMPT_CONFIG  =  {  
						 
					
						
							
								
									
										
										
										
											2024-04-08 21:36:27 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  prompt :  [ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      role : PromptRole.system , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      text :  '' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  ] , 
							 
						 
					
						
							
								
									
										
										
										
											2023-10-12 23:14:28 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								export  const  DEFAULT_COMPLETION_PROMPT_CONFIG  =  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  prompt :  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    text :  '' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  conversation_histories_role :  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    user_prefix :  '' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    assistant_prefix :  '' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-09-10 00:12:34 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								export  const  getMaxToken  =  ( modelId : string )  = >  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  return  ( modelId  ===  'gpt-4'  ||  modelId  ===  'gpt-3.5-turbo-16k' )  ?  8000  : 4000 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-05-15 08:51:32 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								export  const  LOCALE_COOKIE_NAME  =  'locale'  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								export  const  DEFAULT_VALUE_MAX_LEN  =  48  
						 
					
						
							
								
									
										
										
										
											2023-09-10 00:12:34 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								export  const  DEFAULT_PARAGRAPH_VALUE_MAX_LEN  =  1000  
						 
					
						
							
								
									
										
										
										
											2023-05-15 08:51:32 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-06-01 23:19:36 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								export  const  zhRegex  =  /^[\u4E00-\u9FA5]$/m  
						 
					
						
							
								
									
										
										
										
											2023-05-22 10:39:51 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								export  const  emojiRegex  =  /^[\uD800-\uDBFF][\uDC00-\uDFFF]$/m  
						 
					
						
							
								
									
										
										
										
											2024-06-17 22:32:59 +09:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								export  const  emailRegex  =  /^[\w.!#$%&'*+\-/=?^{|}~]+@([\w-]+\.)+[\w-]{2,}$/m  
						 
					
						
							
								
									
										
										
										
											2023-05-15 08:51:32 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								const  MAX_ZN_VAR_NAME_LENGHT  =  8  
						 
					
						
							
								
									
										
										
										
											2023-10-12 23:14:28 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								const  MAX_EN_VAR_VALUE_LENGHT  =  30  
						 
					
						
							
								
									
										
										
										
											2023-05-15 08:51:32 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								export  const  getMaxVarNameLength  =  ( value : string )  = >  {  
						 
					
						
							
								
									
										
										
										
											2023-06-01 23:19:36 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  if  ( zhRegex . test ( value ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2023-05-15 08:51:32 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    return  MAX_ZN_VAR_NAME_LENGHT 
							 
						 
					
						
							
								
									
										
										
										
											2023-06-01 23:19:36 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-05-15 08:51:32 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								  return  MAX_EN_VAR_VALUE_LENGHT 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-10-12 23:14:28 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								export  const  MAX_VAR_KEY_LENGHT  =  30  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								export  const  MAX_PROMPT_MESSAGE_LENGTH  =  10  
						 
					
						
							
								
									
										
										
										
											2023-05-15 08:51:32 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								export  const  VAR_ITEM_TEMPLATE  =  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  key :  '' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  name :  '' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  type :  'string' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  max_length : DEFAULT_VALUE_MAX_LEN , 
							 
						 
					
						
							
								
									
										
										
										
											2023-06-01 23:19:36 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  required : true , 
							 
						 
					
						
							
								
									
										
										
										
											2023-05-15 08:51:32 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-04-08 18:51:46 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								export  const  VAR_ITEM_TEMPLATE_IN_WORKFLOW  =  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  variable :  '' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  label :  '' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  type :  InputVarType . textInput , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  max_length : DEFAULT_VALUE_MAX_LEN , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  required : true , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  options :  [ ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-05-25 16:59:47 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								export  const  appDefaultIconBackground  =  '#D5F5F6'  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								export  const  NEED_REFRESH_APP_LIST_KEY  =  'needRefreshAppList'  
						 
					
						
							
								
									
										
										
										
											2023-11-18 11:53:35 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								export  const  DATASET_DEFAULT  =  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  top_k : 2 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  score_threshold : 0.5 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2023-12-18 15:41:24 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								export  const  APP_PAGE_LIMIT  =  10  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								export  const  ANNOTATION_DEFAULT  =  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  score_threshold : 0.9 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2024-01-23 19:31:56 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-02-20 19:03:10 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								export  const  MAX_TOOLS_NUM  =  10  
						 
					
						
							
								
									
										
										
										
											2024-01-23 19:31:56 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								export  const  DEFAULT_AGENT_SETTING  =  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  enabled : false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  max_iteration : 5 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  strategy : AgentStrategy.functionCall , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  tools :  [ ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								export  const  DEFAULT_AGENT_PROMPT  =  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  chat :  ` Respond to the human as helpfully and accurately as possible. 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  { { instruction } } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  You  have  access  to  the  following  tools : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  { { tools } } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  Use  a  json  blob  to  specify  a  tool  by  providing  an  { { TOOL_NAME_KEY } }  key  ( tool  name )  and  an  { { ACTION_INPUT_KEY } }  key  ( tool  input ) . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  Valid  "{{TOOL_NAME_KEY}}"  values :  "Final Answer"  or  { { tool_names } } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  Provide  only  ONE  action  per  $JSON_BLOB ,  as  shown : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  \ ` \` \` 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    "{{TOOL_NAME_KEY}}" :  $TOOL_NAME , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    "{{ACTION_INPUT_KEY}}" :  $ACTION_INPUT 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  \ ` \` \` 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  Follow  this  format : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  Question : input  question  to  answer 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  Thought : consider  previous  and  subsequent  steps 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  Action : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  \ ` \` \` 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  $JSON_BLOB 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  \ ` \` \` 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  Observation : action  result 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  . . .  ( repeat  Thought / Action / Observation  N  times ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  Thought : I  know  what  to  respond 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  Action : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  \ ` \` \` 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    "{{TOOL_NAME_KEY}}" :  "Final Answer" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    "{{ACTION_INPUT_KEY}}" :  "Final response to human" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  \ ` \` \` 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  Begin !  Reminder  to  ALWAYS  respond  with  a  valid  json  blob  of  a  single  action .  Use  tools  if  necessary .  Respond  directly  if  appropriate .  Format  is  Action : \ ` \` \` $ JSON_BLOB \` \` \` then Observation:. ` , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  completion :  ` 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  Respond  to  the  human  as  helpfully  and  accurately  as  possible .  
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{ { instruction } }  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								You  have  access  to  the  following  tools :  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{ { tools } }  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Use  a  json  blob  to  specify  a  tool  by  providing  an  { { TOOL_NAME_KEY } }  key  ( tool  name )  and  an  { { ACTION_INPUT_KEY } }  key  ( tool  input ) .  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Valid  "{{TOOL_NAME_KEY}}"  values :  "Final Answer"  or  { { tool_names } }  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Provide  only  ONE  action  per  $JSON_BLOB ,  as  shown :  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								\ ` \` \` 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{ { { {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  "{{TOOL_NAME_KEY}}" :  $TOOL_NAME , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  "{{ACTION_INPUT_KEY}}" :  $ACTION_INPUT 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} } } }  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								\ ` \` \` 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Follow  this  format :  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Question : input  question  to  answer  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Thought : consider  previous  and  subsequent  steps  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Action :  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								\ ` \` \` 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								$JSON_BLOB  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								\ ` \` \` 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Observation : action  result  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								. . .  ( repeat  Thought / Action / Observation  N  times )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Thought : I  know  what  to  respond  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Action :  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								\ ` \` \` 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{ { { {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  "{{TOOL_NAME_KEY}}" :  "Final Answer" , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  "{{ACTION_INPUT_KEY}}" :  "Final response to human" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} } } }  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								\ ` \` \` 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Begin !  Reminder  to  ALWAYS  respond  with  a  valid  json  blob  of  a  single  action .  Use  tools  if  necessary .  Respond  directly  if  appropriate .  Format  is  Action : \ ` \` \` $ JSON_BLOB \` \` \` then Observation:.
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Question :  { { query } }  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Thought :  { { agent_scratchpad } }  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  ` ,
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2024-04-08 18:51:46 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-04-24 11:41:12 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								export  const  VAR_REGEX  =  /\{\{(#[a-zA-Z0-9_-]{1,50}(\.[a-zA-Z_][a-zA-Z0-9_]{0,29}){1,10}#)\}\}/gi