Underground-Digital/Workflow-Engine
0
1import { createContext, useContext } from 'use-context-selector'2import { PromptMode } from '@/models/debug'3import type {4 AnnotationReplyConfig,5 BlockStatus,6 ChatPromptConfig,7 CitationConfig,8 CompletionPromptConfig,9 ConversationHistoriesRole,10 DatasetConfigs,11 Inputs,12 ModelConfig,13 ModerationConfig,14 MoreLikeThisConfig,15 PromptConfig,16 PromptItem,17 SpeechToTextConfig,18 SuggestedQuestionsAfterAnswerConfig,19 TextToSpeechConfig,20} from '@/models/debug'21import type { ExternalDataTool } from '@/models/common'22import type { DataSet } from '@/models/datasets'23import type { VisionSettings } from '@/types/app'24import { ModelModeType, RETRIEVE_TYPE, Resolution, TransferMethod } from '@/types/app'25import { ANNOTATION_DEFAULT, DEFAULT_AGENT_SETTING, DEFAULT_CHAT_PROMPT_CONFIG, DEFAULT_COMPLETION_PROMPT_CONFIG } from '@/config'26import type { FormValue } from '@/app/components/header/account-setting/model-provider-page/declarations'27import type { Collection } from '@/app/components/tools/types'28 29type IDebugConfiguration = {30 appId: string31 isAPIKeySet: boolean32 isTrailFinished: boolean33 mode: string34 modelModeType: ModelModeType35 promptMode: PromptMode36 setPromptMode: (promptMode: PromptMode) => void37 isAdvancedMode: boolean38 isAgent: boolean39 isFunctionCall: boolean40 isOpenAI: boolean41 collectionList: Collection[]42 canReturnToSimpleMode: boolean43 setCanReturnToSimpleMode: (canReturnToSimpleMode: boolean) => void44 chatPromptConfig: ChatPromptConfig45 completionPromptConfig: CompletionPromptConfig46 currentAdvancedPrompt: PromptItem | PromptItem[]47 setCurrentAdvancedPrompt: (prompt: PromptItem | PromptItem[], isUserChanged?: boolean) => void48 showHistoryModal: () => void49 conversationHistoriesRole: ConversationHistoriesRole50 setConversationHistoriesRole: (conversationHistoriesRole: ConversationHistoriesRole) => void51 hasSetBlockStatus: BlockStatus52 conversationId: string | null // after first chat send53 setConversationId: (conversationId: string | null) => void54 introduction: string55 setIntroduction: (introduction: string) => void56 suggestedQuestions: string[]57 setSuggestedQuestions: (questions: string[]) => void58 controlClearChatMessage: number59 setControlClearChatMessage: (controlClearChatMessage: number) => void60 prevPromptConfig: PromptConfig61 setPrevPromptConfig: (prevPromptConfig: PromptConfig) => void62 moreLikeThisConfig: MoreLikeThisConfig63 setMoreLikeThisConfig: (moreLikeThisConfig: MoreLikeThisConfig) => void64 suggestedQuestionsAfterAnswerConfig: SuggestedQuestionsAfterAnswerConfig65 setSuggestedQuestionsAfterAnswerConfig: (suggestedQuestionsAfterAnswerConfig: SuggestedQuestionsAfterAnswerConfig) => void66 speechToTextConfig: SpeechToTextConfig67 setSpeechToTextConfig: (speechToTextConfig: SpeechToTextConfig) => void68 textToSpeechConfig: TextToSpeechConfig69 setTextToSpeechConfig: (textToSpeechConfig: TextToSpeechConfig) => void70 citationConfig: CitationConfig71 setCitationConfig: (citationConfig: CitationConfig) => void72 annotationConfig: AnnotationReplyConfig73 setAnnotationConfig: (annotationConfig: AnnotationReplyConfig) => void74 moderationConfig: ModerationConfig75 setModerationConfig: (moderationConfig: ModerationConfig) => void76 externalDataToolsConfig: ExternalDataTool[]77 setExternalDataToolsConfig: (externalDataTools: ExternalDataTool[]) => void78 formattingChanged: boolean79 setFormattingChanged: (formattingChanged: boolean) => void80 inputs: Inputs81 setInputs: (inputs: Inputs) => void82 query: string // user question83 setQuery: (query: string) => void84 // Belows are draft infos85 completionParams: FormValue86 setCompletionParams: (completionParams: FormValue) => void87 // model_config88 modelConfig: ModelConfig89 setModelConfig: (modelConfig: ModelConfig) => void90 dataSets: DataSet[]91 setDataSets: (dataSet: DataSet[]) => void92 showSelectDataSet: () => void93 // dataset config94 datasetConfigs: DatasetConfigs95 setDatasetConfigs: (config: DatasetConfigs) => void96 hasSetContextVar: boolean97 isShowVisionConfig: boolean98 visionConfig: VisionSettings99 setVisionConfig: (visionConfig: VisionSettings, noNotice?: boolean) => void100 rerankSettingModalOpen: boolean101 setRerankSettingModalOpen: (rerankSettingModalOpen: boolean) => void102}103 104const DebugConfigurationContext = createContext<IDebugConfiguration>({105 appId: '',106 isAPIKeySet: false,107 isTrailFinished: false,108 mode: '',109 modelModeType: ModelModeType.chat,110 promptMode: PromptMode.simple,111 setPromptMode: () => { },112 isAdvancedMode: false,113 isAgent: false,114 isFunctionCall: false,115 isOpenAI: false,116 collectionList: [],117 canReturnToSimpleMode: false,118 setCanReturnToSimpleMode: () => { },119 chatPromptConfig: DEFAULT_CHAT_PROMPT_CONFIG,120 completionPromptConfig: DEFAULT_COMPLETION_PROMPT_CONFIG,121 currentAdvancedPrompt: [],122 showHistoryModal: () => { },123 conversationHistoriesRole: {124 user_prefix: 'user',125 assistant_prefix: 'assistant',126 },127 setConversationHistoriesRole: () => { },128 setCurrentAdvancedPrompt: () => { },129 hasSetBlockStatus: {130 context: false,131 history: false,132 query: false,133 },134 conversationId: '',135 setConversationId: () => { },136 introduction: '',137 setIntroduction: () => { },138 suggestedQuestions: [],139 setSuggestedQuestions: () => { },140 controlClearChatMessage: 0,141 setControlClearChatMessage: () => { },142 prevPromptConfig: {143 prompt_template: '',144 prompt_variables: [],145 },146 setPrevPromptConfig: () => { },147 moreLikeThisConfig: {148 enabled: false,149 },150 setMoreLikeThisConfig: () => { },151 suggestedQuestionsAfterAnswerConfig: {152 enabled: false,153 },154 setSuggestedQuestionsAfterAnswerConfig: () => { },155 speechToTextConfig: {156 enabled: false,157 },158 setSpeechToTextConfig: () => { },159 textToSpeechConfig: {160 enabled: false,161 voice: '',162 language: '',163 },164 setTextToSpeechConfig: () => { },165 citationConfig: {166 enabled: false,167 },168 setCitationConfig: () => { },169 moderationConfig: {170 enabled: false,171 },172 annotationConfig: {173 id: '',174 enabled: false,175 score_threshold: ANNOTATION_DEFAULT.score_threshold,176 embedding_model: {177 embedding_model_name: '',178 embedding_provider_name: '',179 },180 },181 setAnnotationConfig: () => { },182 setModerationConfig: () => { },183 externalDataToolsConfig: [],184 setExternalDataToolsConfig: () => { },185 formattingChanged: false,186 setFormattingChanged: () => { },187 inputs: {},188 setInputs: () => { },189 query: '',190 setQuery: () => { },191 completionParams: {192 max_tokens: 16,193 temperature: 1, // 0-2194 top_p: 1,195 presence_penalty: 1, // -2-2196 frequency_penalty: 1, // -2-2197 },198 setCompletionParams: () => { },199 modelConfig: {200 provider: 'OPENAI', // 'OPENAI'201 model_id: 'gpt-3.5-turbo', // 'gpt-3.5-turbo'202 mode: ModelModeType.unset,203 configs: {204 prompt_template: '',205 prompt_variables: [],206 },207 more_like_this: null,208 opening_statement: '',209 suggested_questions: [],210 sensitive_word_avoidance: null,211 speech_to_text: null,212 text_to_speech: null,213 file_upload: null,214 suggested_questions_after_answer: null,215 retriever_resource: null,216 annotation_reply: null,217 dataSets: [],218 agentConfig: DEFAULT_AGENT_SETTING,219 },220 setModelConfig: () => { },221 dataSets: [],222 showSelectDataSet: () => { },223 setDataSets: () => { },224 datasetConfigs: {225 retrieval_model: RETRIEVE_TYPE.multiWay,226 reranking_model: {227 reranking_provider_name: '',228 reranking_model_name: '',229 },230 top_k: 2,231 score_threshold_enabled: false,232 score_threshold: 0.7,233 datasets: {234 datasets: [],235 },236 },237 setDatasetConfigs: () => { },238 hasSetContextVar: false,239 isShowVisionConfig: false,240 visionConfig: {241 enabled: false,242 number_limits: 2,243 detail: Resolution.low,244 transfer_methods: [TransferMethod.remote_url],245 },246 setVisionConfig: () => { },247 rerankSettingModalOpen: false,248 setRerankSettingModalOpen: () => { },249})250 251export const useDebugConfigurationContext = () => useContext(DebugConfigurationContext)252 253export default DebugConfigurationContext254 