From b4e81615b101bc98107adf24c84e6ae44ab0b45b Mon Sep 17 00:00:00 2001 From: zhaoying Date: Tue, 10 Mar 2026 13:35:52 +0800 Subject: [PATCH] feat(web): rag user memery add refresh --- web/src/api/memory.ts | 4 +++ web/src/views/UserMemoryDetail/Rag.tsx | 39 ++++++++++++++++++++++---- 2 files changed, 38 insertions(+), 5 deletions(-) diff --git a/web/src/api/memory.ts b/web/src/api/memory.ts index 2c840c9a..491f78ea 100644 --- a/web/src/api/memory.ts +++ b/web/src/api/memory.ts @@ -224,6 +224,10 @@ export const getConversationDetail = (end_user_id: string, conversation_id: stri export const forgetTrigger = (data: { max_merge_batch_size: number; min_days_since_access: number; end_user_id: string;}) => { return request.post(`/memory/forget-memory/trigger`, data) } +// RAG type - Refresh RAG user summary and memory insight +export const generateRagProfile = (end_user_id: string) => { + return request.post(`/dashboard/generate_rag_profile`, { end_user_id }) +} /*************** end User Memory APIs ******************************/ /****************** Memory Management APIs *******************************/ diff --git a/web/src/views/UserMemoryDetail/Rag.tsx b/web/src/views/UserMemoryDetail/Rag.tsx index 2d3443ce..0f82ee05 100644 --- a/web/src/views/UserMemoryDetail/Rag.tsx +++ b/web/src/views/UserMemoryDetail/Rag.tsx @@ -13,7 +13,8 @@ import { type FC, useEffect, useState } from 'react' import { useTranslation } from 'react-i18next' import clsx from 'clsx' -import { Row, Col, Skeleton } from 'antd' +import { Row, Col, Skeleton, Spin, Flex, Tooltip } from 'antd' +import { LoadingOutlined } from '@ant-design/icons'; import { useParams } from 'react-router-dom' import aboutUs from '@/assets/images/userMemory/aboutUs.svg' @@ -26,6 +27,7 @@ import { getUserProfile, getTotalRagMemoryCountByUser, getChunkInsight, + generateRagProfile } from '@/api/memory' import Empty from '@/components/Empty' import ConversationMemory from './components/ConversationMemory' @@ -133,16 +135,43 @@ const Rag: FC = () => { }) } const name = loading.detail ? '' : data?.name && data?.name !== '' ? data.name : id + + const [refreshLoading, setRefreshLoading] = useState(false) + const handleRefresh = () => { + if (refreshLoading || !id) return + setRefreshLoading(true) + generateRagProfile(id as string) + .then(() => { + getSummary() + getInsightReport() + }) + .finally(() => { + setRefreshLoading(false) + }) + } return (
{name?.[0]}
-
- {name}
-
{personas?.join(' | ')}
-
+ +
+ {name}
+
{personas?.join(' | ')}
+
+ + {refreshLoading + ? } /> + : ( +
+ ) + } +
+