Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

debug-configuration.ts 8.1KB

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