|
@@ -79,11 +79,18 @@ const state: any = reactive({
|
|
|
goodMap: new Map(),
|
|
|
badMap: new Map(),
|
|
|
autoList: [],
|
|
|
- chatConfig: {}
|
|
|
+ chatConfig: {},
|
|
|
+ isSuggest: true
|
|
|
})
|
|
|
const ref_text = ref()
|
|
|
const ref_chatMsg = ref()
|
|
|
const ref_auto = ref()
|
|
|
+const scrollToEnd = () => {
|
|
|
+ ref_chatMsg.value.scrollTo({
|
|
|
+ top: ref_chatMsg.value.scrollHeight,
|
|
|
+ behavior: 'smooth'
|
|
|
+ });
|
|
|
+}
|
|
|
const onSend = (text = '') => {
|
|
|
if ((isValue(state.text.trim()) || text) && !state.loading) {
|
|
|
state.loading = true
|
|
@@ -93,6 +100,14 @@ const onSend = (text = '') => {
|
|
|
state.params.query = state.text + ''
|
|
|
state.text = ''
|
|
|
}
|
|
|
+ state.isSuggest = true
|
|
|
+ if (state.chatConfig.sensitive_word_avoidance.enabled && state.chatConfig.sensitive_word_avoidance.type === 'keywords') {
|
|
|
+ state.chatConfig.sensitive_word_avoidance.config.keywords.split('\n').forEach(v => {
|
|
|
+ if (state.params.query.includes(v)) {
|
|
|
+ state.isSuggest = false
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
emit('getText', state.params.query)
|
|
|
const ask = {
|
|
|
type: 'ask',
|
|
@@ -111,10 +126,7 @@ const onSend = (text = '') => {
|
|
|
}, {
|
|
|
onData: (message: string, isFirstMessage: boolean, { conversationId: newConversationId, messageId, taskId }: any) => {
|
|
|
answer.content += message
|
|
|
- ref_chatMsg.value.scrollTo({
|
|
|
- top: ref_chatMsg.value.scrollHeight,
|
|
|
- behavior: 'smooth'
|
|
|
- });
|
|
|
+ scrollToEnd()
|
|
|
},
|
|
|
onFile(file) {},
|
|
|
onThought(thought) {},
|
|
@@ -126,9 +138,10 @@ const onSend = (text = '') => {
|
|
|
answer.messageId = messageEnd.message_id
|
|
|
state.params.parent_message_id = messageEnd.message_id
|
|
|
state.loading = false
|
|
|
- if (state.chatConfig?.suggested_questions_after_answer?.enabled) {
|
|
|
+ if (state.chatConfig?.suggested_questions_after_answer?.enabled && state.isSuggest) {
|
|
|
fetchSuggestedQuestions(state.params.parent_message_id, true, window.czrConfig.dify.appId).then((res: any) => {
|
|
|
answer.suggest = res.data
|
|
|
+ scrollToEnd()
|
|
|
})
|
|
|
}
|
|
|
},
|