1.5.2前端

AI完善
master
xs 4 months ago
parent 4c5052af94
commit 4a981e5ce9

@ -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 }

@ -38,7 +38,7 @@
>
<div class="chat-info">
<div class="chat-title-row">
<span class="chat-title">{{ chat.messageTopic }}</span>
<span class="chat-title" :title="chat.messageTopic">{{ chat.messageTopic }}</span>
<!-- 加载动画 -->
<div v-if="loadingChatId === chat.sessionId" class="loading-indicator">
<el-icon class="is-loading">
@ -469,6 +469,8 @@ const platformIcon = ref('');//ai平台图标
const chatList = ref<ChatSession[]>([])
const selectedKnowledgeBaseId = ref()
const embeddingModelId = ref();
const retrieveLimit = ref();
const aiKnowledgeBaseList = ref<AiKnowledgeBaseVO[]>([])
//
@ -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知识库';

@ -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) {

Loading…
Cancel
Save