|
|
@@ -4,7 +4,7 @@
|
|
|
<ChatAsideMenu />
|
|
|
|
|
|
<template v-if="query_value_status === 2">
|
|
|
- <ConversationChatContainer :agent_id="chat_agent" :session_id="chat_session" />
|
|
|
+ <ConversationChatContainer :agent_id="chat_agent" :session_id="chat_session" :key="chat_agent" />
|
|
|
</template>
|
|
|
|
|
|
<template v-if="query_value_status === 3">
|
|
|
@@ -22,7 +22,7 @@
|
|
|
|
|
|
<script setup>
|
|
|
import { ref, onMounted } from 'vue';
|
|
|
-import { useRoute, useRouter } from 'vue-router';
|
|
|
+import { useRoute, useRouter, onBeforeRouteUpdate } from 'vue-router';
|
|
|
import LayoutExperience from './layout/LayoutExperience.vue';
|
|
|
import ContentContainer from './layout/ContentContainer.vue';
|
|
|
|
|
|
@@ -97,6 +97,61 @@ async function isValidAgent(agent_id) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+/**
|
|
|
+ * 获取默认的对话ID
|
|
|
+ */
|
|
|
+async function getDefaultAgentId() {
|
|
|
+ let default_agent_id = null;
|
|
|
+
|
|
|
+ const agent_list = allAgent.getList();
|
|
|
+ const len = agent_list.length;
|
|
|
+
|
|
|
+ if (len > 1) {
|
|
|
+ for (let i = 0; i < len; i++) {
|
|
|
+ const item = agent_list[i];
|
|
|
+ if (item.name === '知识问答') {
|
|
|
+ default_agent_id = item.id;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (!default_agent_id) {
|
|
|
+ // 未搜索到: 使用第一个
|
|
|
+ default_agent_id = agent_list[0].id;
|
|
|
+ }
|
|
|
+ } else if (len === 1) {
|
|
|
+ // 仅有一个
|
|
|
+ default_agent_id = agent_list[0].id;
|
|
|
+ } else {
|
|
|
+ // 为0: 使用配置的ID
|
|
|
+ default_agent_id = getConfigField('DEFAULT_CHAT_AGENT_ID');
|
|
|
+ }
|
|
|
+ if (!default_agent_id) {
|
|
|
+ // 如果ID依然不生效,则需要请求api
|
|
|
+ // TODO: 请求API
|
|
|
+ }
|
|
|
+
|
|
|
+ return default_agent_id;
|
|
|
+}
|
|
|
+
|
|
|
+onBeforeRouteUpdate(async (to, from) => {
|
|
|
+ // console.log(to, from);
|
|
|
+ // // 路由发生了变化
|
|
|
+ if (to.path === '/chat' || to.path === '/chat/qa') {
|
|
|
+ const default_agent_id = await getDefaultAgentId();
|
|
|
+
|
|
|
+ if (!to.query.agent) {
|
|
|
+ chat_agent.value = default_agent_id;
|
|
|
+
|
|
|
+ router.replace({
|
|
|
+ path: '/chat/qa',
|
|
|
+ query: {
|
|
|
+ agent: default_agent_id
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+});
|
|
|
+
|
|
|
onMounted(async () => {
|
|
|
const query = route.query;
|
|
|
|
|
|
@@ -115,34 +170,7 @@ onMounted(async () => {
|
|
|
* 默认的agent,和赵秦刚沟通,为知识问答(2024-12-18)
|
|
|
* 下列为知识问答的ID
|
|
|
*/
|
|
|
- let default_agent_id = null;
|
|
|
-
|
|
|
- const agent_list = allAgent.getList();
|
|
|
- const len = agent_list.length;
|
|
|
-
|
|
|
- if (len > 1) {
|
|
|
- for (let i = 0; i < len; i++) {
|
|
|
- const item = agent_list[i];
|
|
|
- if (item.name === '知识问答') {
|
|
|
- default_agent_id = item.id;
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- if (!default_agent_id) {
|
|
|
- // 未搜索到: 使用第一个
|
|
|
- default_agent_id = agent_list[0].id;
|
|
|
- }
|
|
|
- } else if (len === 1) {
|
|
|
- // 仅有一个
|
|
|
- default_agent_id = agent_list[0].id;
|
|
|
- } else {
|
|
|
- // 为0: 使用配置的ID
|
|
|
- default_agent_id = getConfigField('DEFAULT_CHAT_AGENT_ID');
|
|
|
- }
|
|
|
- if (!default_agent_id) {
|
|
|
- // 如果ID依然不生效,则需要请求api
|
|
|
- // TODO: 请求API
|
|
|
- }
|
|
|
+ const default_agent_id = await getDefaultAgentId();
|
|
|
|
|
|
chat_agent.value = default_agent_id;
|
|
|
// ------------------------------------------------------
|