Feat/chat add origin (#1130)

This commit is contained in:
zxhlyh
2023-09-09 19:17:12 +08:00
committed by GitHub
parent 6effcd3755
commit 84c76bc04a
74 changed files with 2454 additions and 28 deletions

View File

@@ -199,6 +199,7 @@ const Main: FC<IMainProps> = () => {
const [suggestedQuestionsAfterAnswerConfig, setSuggestedQuestionsAfterAnswerConfig] = useState<SuggestedQuestionsAfterAnswerConfig | null>(null)
const [speechToTextConfig, setSpeechToTextConfig] = useState<SuggestedQuestionsAfterAnswerConfig | null>(null)
const [citationConfig, setCitationConfig] = useState<SuggestedQuestionsAfterAnswerConfig | null>(null)
const [conversationIdChangeBecauseOfNew, setConversationIdChangeBecauseOfNew, getConversationIdChangeBecauseOfNew] = useGetState(false)
@@ -271,6 +272,7 @@ const Main: FC<IMainProps> = () => {
content: item.answer,
feedback: item.feedback,
isAnswer: true,
citation: item.retriever_resources,
})
})
setChatList(newChatList)
@@ -374,7 +376,7 @@ const Main: FC<IMainProps> = () => {
const isNotNewConversation = allConversations.some(item => item.id === _conversationId)
setAllConversationList(allConversations)
// fetch new conversation info
const { user_input_form, opening_statement: introduction, suggested_questions_after_answer, speech_to_text }: any = appParams
const { user_input_form, opening_statement: introduction, suggested_questions_after_answer, speech_to_text, retriever_resource }: any = appParams
const prompt_variables = userInputsFormToPromptVariables(user_input_form)
setNewConversationInfo({
@@ -387,6 +389,7 @@ const Main: FC<IMainProps> = () => {
} as PromptConfig)
setSuggestedQuestionsAfterAnswerConfig(suggested_questions_after_answer)
setSpeechToTextConfig(speech_to_text)
setCitationConfig(retriever_resource)
if (isNotNewConversation)
setCurrConversationId(_conversationId, APP_ID, false)
@@ -593,6 +596,19 @@ const Main: FC<IMainProps> = () => {
})
setChatList(newListWithAnswer)
},
onMessageEnd: (messageEnd) => {
responseItem.citation = messageEnd.retriever_resources
const newListWithAnswer = produce(
getChatList().filter(item => item.id !== responseItem.id && item.id !== placeholderAnswerId),
(draft) => {
if (!draft.find(item => item.id === questionId))
draft.push({ ...questionItem })
draft.push({ ...responseItem })
})
setChatList(newListWithAnswer)
},
onError() {
setErrorHappened(true)
// role back placeholder answer
@@ -783,6 +799,7 @@ const Main: FC<IMainProps> = () => {
isShowSuggestion={doShowSuggestion}
suggestionList={suggestQuestions}
isShowSpeechToText={speechToTextConfig?.enabled}
isShowCitation={citationConfig?.enabled}
dataSets={dataSets}
/>
</div>