| import { createContext, useContext } from 'use-context-selector' |
| import { PromptMode } from '@/models/debug' |
| import type { |
| AnnotationReplyConfig, |
| BlockStatus, |
| ChatPromptConfig, |
| CitationConfig, |
| CompletionPromptConfig, |
| ConversationHistoriesRole, |
| DatasetConfigs, |
| Inputs, |
| ModelConfig, |
| ModerationConfig, |
| MoreLikeThisConfig, |
| PromptConfig, |
| PromptItem, |
| SpeechToTextConfig, |
| SuggestedQuestionsAfterAnswerConfig, |
| TextToSpeechConfig, |
| } from '@/models/debug' |
| import type { ExternalDataTool } from '@/models/common' |
| import type { DataSet } from '@/models/datasets' |
| import type { VisionSettings } from '@/types/app' |
| import { ModelModeType, RETRIEVE_TYPE, Resolution, TransferMethod } from '@/types/app' |
| import { ANNOTATION_DEFAULT, DEFAULT_AGENT_SETTING, DEFAULT_CHAT_PROMPT_CONFIG, DEFAULT_COMPLETION_PROMPT_CONFIG } from '@/config' |
| import type { FormValue } from '@/app/components/header/account-setting/model-provider-page/declarations' |
| import type { Collection } from '@/app/components/tools/types' |
|
|
| type IDebugConfiguration = { |
| appId: string |
| isAPIKeySet: boolean |
| isTrailFinished: boolean |
| mode: string |
| modelModeType: ModelModeType |
| promptMode: PromptMode |
| setPromptMode: (promptMode: PromptMode) => void |
| isAdvancedMode: boolean |
| isAgent: boolean |
| isFunctionCall: boolean |
| isOpenAI: boolean |
| collectionList: Collection[] |
| canReturnToSimpleMode: boolean |
| setCanReturnToSimpleMode: (canReturnToSimpleMode: boolean) => void |
| chatPromptConfig: ChatPromptConfig |
| completionPromptConfig: CompletionPromptConfig |
| currentAdvancedPrompt: PromptItem | PromptItem[] |
| setCurrentAdvancedPrompt: (prompt: PromptItem | PromptItem[], isUserChanged?: boolean) => void |
| showHistoryModal: () => void |
| conversationHistoriesRole: ConversationHistoriesRole |
| setConversationHistoriesRole: (conversationHistoriesRole: ConversationHistoriesRole) => void |
| hasSetBlockStatus: BlockStatus |
| conversationId: string | null |
| setConversationId: (conversationId: string | null) => void |
| introduction: string |
| setIntroduction: (introduction: string) => void |
| suggestedQuestions: string[] |
| setSuggestedQuestions: (questions: string[]) => void |
| controlClearChatMessage: number |
| setControlClearChatMessage: (controlClearChatMessage: number) => void |
| prevPromptConfig: PromptConfig |
| setPrevPromptConfig: (prevPromptConfig: PromptConfig) => void |
| moreLikeThisConfig: MoreLikeThisConfig |
| setMoreLikeThisConfig: (moreLikeThisConfig: MoreLikeThisConfig) => void |
| suggestedQuestionsAfterAnswerConfig: SuggestedQuestionsAfterAnswerConfig |
| setSuggestedQuestionsAfterAnswerConfig: (suggestedQuestionsAfterAnswerConfig: SuggestedQuestionsAfterAnswerConfig) => void |
| speechToTextConfig: SpeechToTextConfig |
| setSpeechToTextConfig: (speechToTextConfig: SpeechToTextConfig) => void |
| textToSpeechConfig: TextToSpeechConfig |
| setTextToSpeechConfig: (textToSpeechConfig: TextToSpeechConfig) => void |
| citationConfig: CitationConfig |
| setCitationConfig: (citationConfig: CitationConfig) => void |
| annotationConfig: AnnotationReplyConfig |
| setAnnotationConfig: (annotationConfig: AnnotationReplyConfig) => void |
| moderationConfig: ModerationConfig |
| setModerationConfig: (moderationConfig: ModerationConfig) => void |
| externalDataToolsConfig: ExternalDataTool[] |
| setExternalDataToolsConfig: (externalDataTools: ExternalDataTool[]) => void |
| formattingChanged: boolean |
| setFormattingChanged: (formattingChanged: boolean) => void |
| inputs: Inputs |
| setInputs: (inputs: Inputs) => void |
| query: string |
| setQuery: (query: string) => void |
| |
| completionParams: FormValue |
| setCompletionParams: (completionParams: FormValue) => void |
| |
| modelConfig: ModelConfig |
| setModelConfig: (modelConfig: ModelConfig) => void |
| dataSets: DataSet[] |
| setDataSets: (dataSet: DataSet[]) => void |
| showSelectDataSet: () => void |
| |
| datasetConfigs: DatasetConfigs |
| setDatasetConfigs: (config: DatasetConfigs) => void |
| hasSetContextVar: boolean |
| isShowVisionConfig: boolean |
| visionConfig: VisionSettings |
| setVisionConfig: (visionConfig: VisionSettings, noNotice?: boolean) => void |
| rerankSettingModalOpen: boolean |
| setRerankSettingModalOpen: (rerankSettingModalOpen: boolean) => void |
| } |
|
|
| const DebugConfigurationContext = createContext<IDebugConfiguration>({ |
| appId: '', |
| isAPIKeySet: false, |
| isTrailFinished: false, |
| mode: '', |
| modelModeType: ModelModeType.chat, |
| promptMode: PromptMode.simple, |
| setPromptMode: () => { }, |
| isAdvancedMode: false, |
| isAgent: false, |
| isFunctionCall: false, |
| isOpenAI: false, |
| collectionList: [], |
| canReturnToSimpleMode: false, |
| setCanReturnToSimpleMode: () => { }, |
| chatPromptConfig: DEFAULT_CHAT_PROMPT_CONFIG, |
| completionPromptConfig: DEFAULT_COMPLETION_PROMPT_CONFIG, |
| currentAdvancedPrompt: [], |
| showHistoryModal: () => { }, |
| conversationHistoriesRole: { |
| user_prefix: 'user', |
| assistant_prefix: 'assistant', |
| }, |
| setConversationHistoriesRole: () => { }, |
| setCurrentAdvancedPrompt: () => { }, |
| hasSetBlockStatus: { |
| context: false, |
| history: false, |
| query: false, |
| }, |
| conversationId: '', |
| setConversationId: () => { }, |
| introduction: '', |
| setIntroduction: () => { }, |
| suggestedQuestions: [], |
| setSuggestedQuestions: () => { }, |
| controlClearChatMessage: 0, |
| setControlClearChatMessage: () => { }, |
| prevPromptConfig: { |
| prompt_template: '', |
| prompt_variables: [], |
| }, |
| setPrevPromptConfig: () => { }, |
| moreLikeThisConfig: { |
| enabled: false, |
| }, |
| setMoreLikeThisConfig: () => { }, |
| suggestedQuestionsAfterAnswerConfig: { |
| enabled: false, |
| }, |
| setSuggestedQuestionsAfterAnswerConfig: () => { }, |
| speechToTextConfig: { |
| enabled: false, |
| }, |
| setSpeechToTextConfig: () => { }, |
| textToSpeechConfig: { |
| enabled: false, |
| voice: '', |
| language: '', |
| }, |
| setTextToSpeechConfig: () => { }, |
| citationConfig: { |
| enabled: false, |
| }, |
| setCitationConfig: () => { }, |
| moderationConfig: { |
| enabled: false, |
| }, |
| annotationConfig: { |
| id: '', |
| enabled: false, |
| score_threshold: ANNOTATION_DEFAULT.score_threshold, |
| embedding_model: { |
| embedding_model_name: '', |
| embedding_provider_name: '', |
| }, |
| }, |
| setAnnotationConfig: () => { }, |
| setModerationConfig: () => { }, |
| externalDataToolsConfig: [], |
| setExternalDataToolsConfig: () => { }, |
| formattingChanged: false, |
| setFormattingChanged: () => { }, |
| inputs: {}, |
| setInputs: () => { }, |
| query: '', |
| setQuery: () => { }, |
| completionParams: { |
| max_tokens: 16, |
| temperature: 1, |
| top_p: 1, |
| presence_penalty: 1, |
| frequency_penalty: 1, |
| }, |
| setCompletionParams: () => { }, |
| modelConfig: { |
| provider: 'OPENAI', |
| model_id: 'gpt-3.5-turbo', |
| mode: ModelModeType.unset, |
| configs: { |
| prompt_template: '', |
| prompt_variables: [], |
| }, |
| more_like_this: null, |
| opening_statement: '', |
| suggested_questions: [], |
| sensitive_word_avoidance: null, |
| speech_to_text: null, |
| text_to_speech: null, |
| file_upload: null, |
| suggested_questions_after_answer: null, |
| retriever_resource: null, |
| annotation_reply: null, |
| dataSets: [], |
| agentConfig: DEFAULT_AGENT_SETTING, |
| }, |
| setModelConfig: () => { }, |
| dataSets: [], |
| showSelectDataSet: () => { }, |
| setDataSets: () => { }, |
| datasetConfigs: { |
| retrieval_model: RETRIEVE_TYPE.multiWay, |
| reranking_model: { |
| reranking_provider_name: '', |
| reranking_model_name: '', |
| }, |
| top_k: 2, |
| score_threshold_enabled: false, |
| score_threshold: 0.7, |
| datasets: { |
| datasets: [], |
| }, |
| }, |
| setDatasetConfigs: () => { }, |
| hasSetContextVar: false, |
| isShowVisionConfig: false, |
| visionConfig: { |
| enabled: false, |
| number_limits: 2, |
| detail: Resolution.low, |
| transfer_methods: [TransferMethod.remote_url], |
| }, |
| setVisionConfig: () => { }, |
| rerankSettingModalOpen: false, |
| setRerankSettingModalOpen: () => { }, |
| }) |
|
|
| export const useDebugConfigurationContext = () => useContext(DebugConfigurationContext) |
|
|
| export default DebugConfigurationContext |
|
|