debug-configuration.ts 5.8 KB

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