diff --git a/src/router/index.ts b/src/router/index.ts
index 22df47a..60733d1 100644
--- a/src/router/index.ts
+++ b/src/router/index.ts
@@ -540,7 +540,7 @@ export const dynamicRoutes: RouteRecordRaw[] = [
permissions: ['ai:aiKnowledgeBaseDocs:qa'],
children: [
{
- path: 'index/:knowledgeBaseId',
+ path: 'index/:knowledgeBaseId/:embeddingModelId/:retrieveLimit',
component: () => import('@/views/ai/skill/aiChat/index.vue'),
name: 'KnowledgeBaseQA',
meta: { title: '知识库问答', activeMenu: '/ai/skill/aiChat', noCache: true }
diff --git a/src/views/ai/skill/aiChat/index.vue b/src/views/ai/skill/aiChat/index.vue
index 3baf040..4358b44 100644
--- a/src/views/ai/skill/aiChat/index.vue
+++ b/src/views/ai/skill/aiChat/index.vue
@@ -38,7 +38,7 @@
>
-
{{ chat.messageTopic }}
+
{{ chat.messageTopic }}
@@ -469,6 +469,8 @@ const platformIcon = ref('');//ai平台图标
const chatList = ref([])
const selectedKnowledgeBaseId = ref()
+const embeddingModelId = ref();
+const retrieveLimit = ref();
const aiKnowledgeBaseList = ref([])
// 可用模型
@@ -488,9 +490,17 @@ const selectedModel = ref(0)
const getAiChatSessions = async () => {
sidebarLoading.value = true;
chatList.value = [];
- const res = await getAiChatMessageList({knowledgeBaseId: selectedKnowledgeBaseId.value});
- chatList.value = res.data;
- console.log(res)
+ const res = await getAiChatMessageList({knowledgeBaseId: selectedKnowledgeBaseId.value ? selectedKnowledgeBaseId.value : -1 });
+ chatList.value = res.data.map(item => ({
+ ...item,
+ messageTopic: typeof item.messageTopic === 'string'
+ ? item.messageTopic.replace(/^["']|["']$/g, '')
+ : item.messageTopic
+ }));
+ // chatList.value.forEach(cl =>{
+ // cl.messageTopic = JSON.parse(cl.messageTopic)
+ // });
+ // console.log(res)
sidebarLoading.value = false;
}
@@ -500,7 +510,7 @@ const getAiModelList = async () => {
const res = await getAiModelJoinList({modelTypeId: 1});
aiModelList.value = res.data;
await setDefaultAiModel();
- console.log(res)
+ // console.log(res)
// platformList.value = res.data;
// loading.value = false;
}
@@ -511,7 +521,7 @@ const setDefaultAiModel = async () => {
// alert(JSON.stringify(item))
selectedModel.value = item.modelId;
provider.value = item.platformCode;
- console.log(item.platformIcon)
+ // console.log(item.platformIcon)
platformIcon.value = item.platformIcon;
}
})
@@ -622,7 +632,7 @@ const selectChat = async (chatSessionId: string) => {
deletingChatId.value = null
activeChatSessionId.value = chatSessionId
- console.log(activeChatSessionId.value)
+ // console.log(activeChatSessionId.value)
if (!currentChat.value.messages) {
// 设置加载状态
@@ -636,12 +646,15 @@ const selectChat = async (chatSessionId: string) => {
// 验证当前会话ID是否还是用户选择的那个
if (activeChatSessionId.value === chatSessionId) {
- console.log(res)
+ // console.log(res)
// res.data已经是对象数组
+
currentChat.value.messages = res.data.map(item => {
return {
role: item.role,
- content: item.content,
+ content: typeof item.content === 'string'
+ ? item.content.replace(/^["']|["']$/g, '')
+ : item.content,
timestamp: item.timestamp
// 可以根据需要转换字段
};
@@ -865,7 +878,7 @@ const sendMessage = async () => {
return
}
- console.log(activeChatSessionId.value)
+ // console.log(activeChatSessionId.value)
// 如果没有当前对话,自动创建一个新的
if (!currentChat.value) {
newChatFirstMessage()
@@ -904,14 +917,16 @@ const sendMessage = async () => {
sendMessages.push(userMessage);
}
- console.log(sendMessages.map(m => ({role: m.role, content: m.content})));
+ // console.log(sendMessages.map(m => ({role: m.role, content: m.content})));
const response = await service.post('/ai/assistant/chatStream?provider=' + provider.value, {
messages: sendMessages.map(m => ({role: m.role, content: m.content})),
carryHistoryFlag: carryHistory.value ? "1" : "0",
modelId: selectedModel.value,
sessionId: activeChatSessionId.value,
- knowledgeBaseId: selectedKnowledgeBaseId.value
+ knowledgeBaseId: selectedKnowledgeBaseId.value,
+ embeddingModelId: embeddingModelId.value,
+ retrieveLimit:retrieveLimit.value
}, {
responseType: 'text',
headers: {
@@ -920,14 +935,12 @@ const sendMessage = async () => {
},
onDownloadProgress: progress => {
const raw = progress.event.target.responseText
- console.log(1)
- console.log(raw)
- console.log(2)
+ // console.log(raw)
processStream(raw)
}
})
- console.log("----" + streamingContent.value);
+ // console.log("----" + streamingContent.value);
// 添加用户消息到messages数组
currentChat.value.messages.push({
role: 'assistant',
@@ -953,7 +966,6 @@ const processStream = (raw) => {
let fullText = ''
chunks.forEach(chunk => {
- // console.log(chunk)
const content = chunk.substring(5)
if (content && content !== '[DONE]') {
fullText += content
@@ -1148,6 +1160,8 @@ const getKnowledgeBaseSelectList = async () => {
// 生命周期
onMounted(() => {
let knowledgeBaseId = proxy.$route.params?.knowledgeBaseId
+ embeddingModelId.value = proxy.$route.params?.embeddingModelId
+ retrieveLimit.value = proxy.$route.params?.retrieveLimit
if (knowledgeBaseId && knowledgeBaseId !== '') {
selectedKnowledgeBaseId.value = parseInt(knowledgeBaseId);
chatTitle.value = 'AI知识库';
diff --git a/src/views/ai/skill/aiKnowledge/index.vue b/src/views/ai/skill/aiKnowledge/index.vue
index 4301e6a..972883c 100644
--- a/src/views/ai/skill/aiKnowledge/index.vue
+++ b/src/views/ai/skill/aiKnowledge/index.vue
@@ -469,7 +469,7 @@ function deleteKb(kb: any) {
}
function goQA(kb: any) {
- router.push({name: 'KnowledgeBaseQA', params: {knowledgeBaseId: kb.knowledgeBaseId}})
+ router.push({name: 'KnowledgeBaseQA', params: {knowledgeBaseId: kb.knowledgeBaseId,embeddingModelId:kb.modelId,retrieveLimit:kb.retrieveLimit ? kb.retrieveLimit:5}})
}
function openArrangeDialog(kb: any) {