debug-configuration.ts 6.2 KB

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