feat(web): memory conversation add communities
This commit is contained in:
@@ -1771,6 +1771,8 @@ Memory Bear: After the rebellion, regional warlordism intensified for several re
|
|||||||
memoryConversationAnalysisEmpty: 'No conversation analysis available.',
|
memoryConversationAnalysisEmpty: 'No conversation analysis available.',
|
||||||
memoryConversationAnalysisEmptySubTitle: 'Conversation analysis will appear here.',
|
memoryConversationAnalysisEmptySubTitle: 'Conversation analysis will appear here.',
|
||||||
|
|
||||||
|
communities: 'Cluster Communities',
|
||||||
|
summaries: 'Memory Summaries',
|
||||||
uploadFile: 'Upload File',
|
uploadFile: 'Upload File',
|
||||||
fileType: 'File Type',
|
fileType: 'File Type',
|
||||||
image: 'Image',
|
image: 'Image',
|
||||||
|
|||||||
@@ -1767,6 +1767,8 @@ export const zh = {
|
|||||||
memoryConversationAnalysisEmpty: '目前没有可用的对话分析内容',
|
memoryConversationAnalysisEmpty: '目前没有可用的对话分析内容',
|
||||||
memoryConversationAnalysisEmptySubTitle: '输入您的用户ID后,点击"测试记忆"查看对话记忆',
|
memoryConversationAnalysisEmptySubTitle: '输入您的用户ID后,点击"测试记忆"查看对话记忆',
|
||||||
|
|
||||||
|
communities: '聚类社区',
|
||||||
|
summaries: '记忆摘要',
|
||||||
uploadFile: '上传文件',
|
uploadFile: '上传文件',
|
||||||
fileType: '文件类型',
|
fileType: '文件类型',
|
||||||
image: '图片',
|
image: '图片',
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
/*
|
/*
|
||||||
* @Author: ZhaoYing
|
* @Author: ZhaoYing
|
||||||
* @Date: 2026-02-03 17:09:03
|
* @Date: 2026-02-03 17:09:03
|
||||||
* @Last Modified by: ZhaoYing
|
* @Last Modified by: ZhaoYing
|
||||||
* @Last Modified time: 2026-02-03 17:09:03
|
* @Last Modified time: 2026-03-17 16:21:47
|
||||||
*/
|
*/
|
||||||
/**
|
/**
|
||||||
* Memory Conversation Page
|
* Memory Conversation Page
|
||||||
@@ -92,7 +92,7 @@ export interface LogItem {
|
|||||||
type: string;
|
type: string;
|
||||||
title: string;
|
title: string;
|
||||||
data?: DataItem[] | AnyObject;
|
data?: DataItem[] | AnyObject;
|
||||||
raw_results?: string | AnyObject;
|
raw_results?: string | Record<string, AnyObject>;
|
||||||
summary?: string;
|
summary?: string;
|
||||||
query?: string;
|
query?: string;
|
||||||
reason?: string;
|
reason?: string;
|
||||||
@@ -264,22 +264,25 @@ const MemoryConversation: FC = () => {
|
|||||||
</ContentWrapper>
|
</ContentWrapper>
|
||||||
))}
|
))}
|
||||||
</Space>
|
</Space>
|
||||||
: log.type === 'search_result' && log.raw_results
|
: log.type === 'search_result' && log.raw_results && typeof log.raw_results !== 'string'
|
||||||
? <ContentWrapper>
|
? <ContentWrapper>
|
||||||
<div className="rb:font-medium rb:text-[#212332] rb:mb-2">{log.query}</div>
|
<div className="rb:font-medium rb:text-[#212332] rb:mb-2">{log.query}</div>
|
||||||
<div className='rb:mt-2 rb:text-[12px] rb:text-[#5B6167]'>
|
{(log.raw_results.reranked_results as AnyObject)?.communities?.length > 0 && <>
|
||||||
{typeof log.raw_results === 'string'
|
<div className="rb:font-medium rb:text-[#212332] rb:text-[12px]">{t('memoryConversation.communities')}</div>
|
||||||
? <Markdown content={log.raw_results} />
|
<ul className='rb:mt-2 rb:text-[12px] rb:text-[#5B6167] rb:list-disc rb:pl-4'>
|
||||||
: <>
|
{((log.raw_results.reranked_results as AnyObject)?.communities as { content: string }[]).map((item, index: number) => (
|
||||||
{log.raw_results.reranked_results?.statements.length > 0 && log.raw_results.reranked_results?.statements.map((item: { statement: string }, index: number) => (
|
<li key={index}>{item.content}</li>
|
||||||
<div key={index}>{item.statement}</div>
|
))}
|
||||||
))}
|
</ul>
|
||||||
{log.raw_results.reranked_results?.summaries.length > 0 && log.raw_results.reranked_results?.summaries.map((item: { content: string }, index: number) => (
|
</>}
|
||||||
<div key={index}>{item.content}</div>
|
{(log.raw_results.reranked_results as AnyObject)?.summaries?.length > 0 && <>
|
||||||
))}
|
<div className="rb:font-medium rb:text-[#212332] rb:text-[12px]">{t('memoryConversation.summaries')}</div>
|
||||||
</>
|
<ul className='rb:mt-2 rb:text-[12px] rb:text-[#5B6167] rb:list-disc rb:pl-4'>
|
||||||
}
|
{((log.raw_results.reranked_results as AnyObject)?.summaries as { content: string }[]).map((item, index: number) => (
|
||||||
</div>
|
<li key={index}>{item.content}</li>
|
||||||
|
))}
|
||||||
|
</ul>
|
||||||
|
</>}
|
||||||
</ContentWrapper>
|
</ContentWrapper>
|
||||||
: log.type === 'retrieval_summary' && log.summary
|
: log.type === 'retrieval_summary' && log.summary
|
||||||
? <ContentWrapper><div className="rb:text-[12px] rb:text-[#5B6167]">{log.summary}</div></ContentWrapper>
|
? <ContentWrapper><div className="rb:text-[12px] rb:text-[#5B6167]">{log.summary}</div></ContentWrapper>
|
||||||
@@ -296,22 +299,22 @@ const MemoryConversation: FC = () => {
|
|||||||
</ContentWrapper>
|
</ContentWrapper>
|
||||||
: log.type === 'input_summary' && log.raw_results
|
: log.type === 'input_summary' && log.raw_results
|
||||||
? <ContentWrapper>
|
? <ContentWrapper>
|
||||||
<div className="rb:font-medium rb:text-[#212332] rb:mb-2">{log.query}</div>
|
<div className="rb:font-medium rb:text-[#212332] rb:mb-2">{log.query}</div>
|
||||||
<div className="rb:font-medium rb:text-[12px] rb:text-[#5B6167] rb:mb-2">{log.summary}</div>
|
<div className="rb:font-medium rb:text-[12px] rb:text-[#5B6167] rb:mb-2">{log.summary}</div>
|
||||||
<div className='rb:mt-2 rb:text-[12px] rb:text-[#5B6167]'>
|
<div className='rb:mt-2 rb:text-[12px] rb:text-[#5B6167]'>
|
||||||
{typeof log.raw_results === 'string'
|
{typeof log.raw_results === 'string'
|
||||||
? <Markdown content={log.raw_results} />
|
? <Markdown content={log.raw_results} />
|
||||||
: <>
|
: <>
|
||||||
{log.raw_results.reranked_results?.statements.length > 0 && log.raw_results.reranked_results?.statements.map((item: { statement: string; } , index: number) => (
|
{(log.raw_results.reranked_results as AnyObject)?.statements?.length > 0 && ((log.raw_results.reranked_results as AnyObject)?.statements as { statement: string }[]).map((item, index: number) => (
|
||||||
<div key={index}>{item.statement}</div>
|
<div key={index}>{item.statement}</div>
|
||||||
))}
|
))}
|
||||||
{log.raw_results.reranked_results?.summaries.length > 0 && log.raw_results.reranked_results?.summaries.map((item: { content: string; }, index: number) => (
|
{(log.raw_results.reranked_results as AnyObject)?.summaries?.length > 0 && ((log.raw_results.reranked_results as AnyObject)?.summaries as { content: string }[]).map((item, index: number) => (
|
||||||
<div key={index}>{item.content}</div>
|
<div key={index}>{item.content}</div>
|
||||||
))}
|
))}
|
||||||
</>
|
</>
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
</ContentWrapper>
|
</ContentWrapper>
|
||||||
: null
|
: null
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user