debug-configuration.ts 6.7 KB

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