debug-configuration.ts 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235
  1. import { createContext } from 'use-context-selector'
  2. import { PromptMode } from '@/models/debug'
  3. import type {
  4. AnnotationReplyConfig,
  5. BlockStatus,
  6. ChatPromptConfig,
  7. CitationConfig,
  8. CompletionPromptConfig,
  9. ConversationHistoriesRole,
  10. DatasetConfigs,
  11. Inputs,
  12. ModelConfig,
  13. ModerationConfig,
  14. MoreLikeThisConfig,
  15. PromptConfig,
  16. PromptItem,
  17. SpeechToTextConfig,
  18. SuggestedQuestionsAfterAnswerConfig,
  19. } from '@/models/debug'
  20. import type { ExternalDataTool } from '@/models/common'
  21. import type { DataSet } from '@/models/datasets'
  22. import type { VisionSettings } from '@/types/app'
  23. import { ModelModeType, RETRIEVE_TYPE, Resolution, TransferMethod } from '@/types/app'
  24. import { ANNOTATION_DEFAULT, DEFAULT_AGENT_SETTING, DEFAULT_CHAT_PROMPT_CONFIG, DEFAULT_COMPLETION_PROMPT_CONFIG } from '@/config'
  25. import type { FormValue } from '@/app/components/header/account-setting/model-provider-page/declarations'
  26. import type { Collection } from '@/app/components/tools/types'
  27. type IDebugConfiguration = {
  28. appId: string
  29. hasSetAPIKEY: boolean
  30. isTrailFinished: boolean
  31. mode: string
  32. modelModeType: ModelModeType
  33. promptMode: PromptMode
  34. setPromptMode: (promptMode: PromptMode) => void
  35. isAdvancedMode: boolean
  36. isAgent: boolean
  37. isFunctionCall: boolean
  38. isOpenAI: boolean
  39. collectionList: Collection[]
  40. canReturnToSimpleMode: boolean
  41. setCanReturnToSimpleMode: (canReturnToSimpleMode: boolean) => void
  42. chatPromptConfig: ChatPromptConfig
  43. completionPromptConfig: CompletionPromptConfig
  44. currentAdvancedPrompt: PromptItem | PromptItem[]
  45. setCurrentAdvancedPrompt: (prompt: PromptItem | PromptItem[], isUserChanged?: boolean) => void
  46. showHistoryModal: () => void
  47. conversationHistoriesRole: ConversationHistoriesRole
  48. setConversationHistoriesRole: (conversationHistoriesRole: ConversationHistoriesRole) => void
  49. hasSetBlockStatus: BlockStatus
  50. conversationId: string | null // after first chat send
  51. setConversationId: (conversationId: string | null) => void
  52. introduction: string
  53. setIntroduction: (introduction: string) => void
  54. suggestedQuestions: string[]
  55. setSuggestedQuestions: (questions: string[]) => void
  56. controlClearChatMessage: number
  57. setControlClearChatMessage: (controlClearChatMessage: number) => void
  58. prevPromptConfig: PromptConfig
  59. setPrevPromptConfig: (prevPromptConfig: PromptConfig) => void
  60. moreLikeThisConfig: MoreLikeThisConfig
  61. setMoreLikeThisConfig: (moreLikeThisConfig: MoreLikeThisConfig) => void
  62. suggestedQuestionsAfterAnswerConfig: SuggestedQuestionsAfterAnswerConfig
  63. setSuggestedQuestionsAfterAnswerConfig: (suggestedQuestionsAfterAnswerConfig: SuggestedQuestionsAfterAnswerConfig) => void
  64. speechToTextConfig: SpeechToTextConfig
  65. setSpeechToTextConfig: (speechToTextConfig: SpeechToTextConfig) => void
  66. citationConfig: CitationConfig
  67. setCitationConfig: (citationConfig: CitationConfig) => void
  68. annotationConfig: AnnotationReplyConfig
  69. setAnnotationConfig: (annotationConfig: AnnotationReplyConfig) => void
  70. moderationConfig: ModerationConfig
  71. setModerationConfig: (moderationConfig: ModerationConfig) => void
  72. externalDataToolsConfig: ExternalDataTool[]
  73. setExternalDataToolsConfig: (externalDataTools: ExternalDataTool[]) => void
  74. formattingChanged: boolean
  75. setFormattingChanged: (formattingChanged: boolean) => void
  76. inputs: Inputs
  77. setInputs: (inputs: Inputs) => void
  78. query: string // user question
  79. setQuery: (query: string) => void
  80. // Belows are draft infos
  81. completionParams: FormValue
  82. setCompletionParams: (completionParams: FormValue) => void
  83. // model_config
  84. modelConfig: ModelConfig
  85. setModelConfig: (modelConfig: ModelConfig) => void
  86. dataSets: DataSet[]
  87. setDataSets: (dataSet: DataSet[]) => void
  88. showSelectDataSet: () => void
  89. // dataset config
  90. datasetConfigs: DatasetConfigs
  91. setDatasetConfigs: (config: DatasetConfigs) => void
  92. hasSetContextVar: boolean
  93. isShowVisionConfig: boolean
  94. visionConfig: VisionSettings
  95. setVisionConfig: (visionConfig: VisionSettings) => void
  96. }
  97. const DebugConfigurationContext = createContext<IDebugConfiguration>({
  98. appId: '',
  99. hasSetAPIKEY: false,
  100. isTrailFinished: false,
  101. mode: '',
  102. modelModeType: ModelModeType.chat,
  103. promptMode: PromptMode.simple,
  104. setPromptMode: () => { },
  105. isAdvancedMode: false,
  106. isAgent: false,
  107. isFunctionCall: false,
  108. isOpenAI: false,
  109. collectionList: [],
  110. canReturnToSimpleMode: false,
  111. setCanReturnToSimpleMode: () => { },
  112. chatPromptConfig: DEFAULT_CHAT_PROMPT_CONFIG,
  113. completionPromptConfig: DEFAULT_COMPLETION_PROMPT_CONFIG,
  114. currentAdvancedPrompt: [],
  115. showHistoryModal: () => { },
  116. conversationHistoriesRole: {
  117. user_prefix: 'user',
  118. assistant_prefix: 'assistant',
  119. },
  120. setConversationHistoriesRole: () => { },
  121. setCurrentAdvancedPrompt: () => { },
  122. hasSetBlockStatus: {
  123. context: false,
  124. history: false,
  125. query: false,
  126. },
  127. conversationId: '',
  128. setConversationId: () => { },
  129. introduction: '',
  130. setIntroduction: () => { },
  131. suggestedQuestions: [],
  132. setSuggestedQuestions: () => {},
  133. controlClearChatMessage: 0,
  134. setControlClearChatMessage: () => { },
  135. prevPromptConfig: {
  136. prompt_template: '',
  137. prompt_variables: [],
  138. },
  139. setPrevPromptConfig: () => { },
  140. moreLikeThisConfig: {
  141. enabled: false,
  142. },
  143. setMoreLikeThisConfig: () => { },
  144. suggestedQuestionsAfterAnswerConfig: {
  145. enabled: false,
  146. },
  147. setSuggestedQuestionsAfterAnswerConfig: () => { },
  148. speechToTextConfig: {
  149. enabled: false,
  150. },
  151. setSpeechToTextConfig: () => { },
  152. citationConfig: {
  153. enabled: false,
  154. },
  155. setCitationConfig: () => { },
  156. moderationConfig: {
  157. enabled: false,
  158. },
  159. annotationConfig: {
  160. id: '',
  161. enabled: false,
  162. score_threshold: ANNOTATION_DEFAULT.score_threshold,
  163. embedding_model: {
  164. embedding_model_name: '',
  165. embedding_provider_name: '',
  166. },
  167. },
  168. setAnnotationConfig: () => { },
  169. setModerationConfig: () => { },
  170. externalDataToolsConfig: [],
  171. setExternalDataToolsConfig: () => { },
  172. formattingChanged: false,
  173. setFormattingChanged: () => { },
  174. inputs: {},
  175. setInputs: () => { },
  176. query: '',
  177. setQuery: () => { },
  178. completionParams: {
  179. max_tokens: 16,
  180. temperature: 1, // 0-2
  181. top_p: 1,
  182. presence_penalty: 1, // -2-2
  183. frequency_penalty: 1, // -2-2
  184. },
  185. setCompletionParams: () => { },
  186. modelConfig: {
  187. provider: 'OPENAI', // 'OPENAI'
  188. model_id: 'gpt-3.5-turbo', // 'gpt-3.5-turbo'
  189. mode: ModelModeType.unset,
  190. configs: {
  191. prompt_template: '',
  192. prompt_variables: [],
  193. },
  194. opening_statement: null,
  195. more_like_this: null,
  196. suggested_questions_after_answer: null,
  197. speech_to_text: null,
  198. retriever_resource: null,
  199. sensitive_word_avoidance: null,
  200. dataSets: [],
  201. agentConfig: DEFAULT_AGENT_SETTING,
  202. },
  203. setModelConfig: () => { },
  204. dataSets: [],
  205. showSelectDataSet: () => { },
  206. setDataSets: () => { },
  207. datasetConfigs: {
  208. retrieval_model: RETRIEVE_TYPE.oneWay,
  209. reranking_model: {
  210. reranking_provider_name: '',
  211. reranking_model_name: '',
  212. },
  213. top_k: 2,
  214. score_threshold_enabled: false,
  215. score_threshold: 0.7,
  216. datasets: {
  217. datasets: [],
  218. },
  219. },
  220. setDatasetConfigs: () => { },
  221. hasSetContextVar: false,
  222. isShowVisionConfig: false,
  223. visionConfig: {
  224. enabled: false,
  225. number_limits: 2,
  226. detail: Resolution.low,
  227. transfer_methods: [TransferMethod.remote_url],
  228. },
  229. setVisionConfig: () => { },
  230. })
  231. export default DebugConfigurationContext