debug-configuration.ts 5.3 KB

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