|
|
|
@@ -100,7 +100,7 @@ export const useChat = ( |
|
|
|
const handleUpdateChatList = useCallback((newChatList: ChatItem[]) => { |
|
|
|
setChatList(newChatList) |
|
|
|
chatListRef.current = newChatList |
|
|
|
}, [setChatList]) |
|
|
|
}, []) |
|
|
|
const handleResponsing = useCallback((isResponsing: boolean) => { |
|
|
|
setIsResponsing(isResponsing) |
|
|
|
isResponsingRef.current = isResponsing |
|
|
|
@@ -110,19 +110,29 @@ export const useChat = ( |
|
|
|
return replaceStringWithValues(str, promptVariablesConfig?.promptVariables || [], promptVariablesConfig?.inputs || {}) |
|
|
|
}, [promptVariablesConfig?.inputs, promptVariablesConfig?.promptVariables]) |
|
|
|
useEffect(() => { |
|
|
|
if (config?.opening_statement && chatListRef.current.filter(item => item.isOpeningStatement).length === 0) { |
|
|
|
handleUpdateChatList([ |
|
|
|
{ |
|
|
|
id: `${Date.now()}`, |
|
|
|
content: getIntroduction(config.opening_statement), |
|
|
|
isAnswer: true, |
|
|
|
isOpeningStatement: true, |
|
|
|
suggestedQuestions: config.suggested_questions, |
|
|
|
}, |
|
|
|
...chatListRef.current, |
|
|
|
]) |
|
|
|
if (config?.opening_statement) { |
|
|
|
handleUpdateChatList(produce(chatListRef.current, (draft) => { |
|
|
|
const index = draft.findIndex(item => item.isOpeningStatement) |
|
|
|
|
|
|
|
if (index > -1) { |
|
|
|
draft[index] = { |
|
|
|
...draft[index], |
|
|
|
content: getIntroduction(config.opening_statement), |
|
|
|
suggestedQuestions: config.suggested_questions, |
|
|
|
} |
|
|
|
} |
|
|
|
else { |
|
|
|
draft.unshift({ |
|
|
|
id: `${Date.now()}`, |
|
|
|
content: getIntroduction(config.opening_statement), |
|
|
|
isAnswer: true, |
|
|
|
isOpeningStatement: true, |
|
|
|
suggestedQuestions: config.suggested_questions, |
|
|
|
}) |
|
|
|
} |
|
|
|
})) |
|
|
|
} |
|
|
|
}, []) |
|
|
|
}, [config?.opening_statement, getIntroduction, config?.suggested_questions, handleUpdateChatList]) |
|
|
|
|
|
|
|
const handleStop = useCallback(() => { |
|
|
|
hasStopResponded.current = true |