feat: 添加realtime_dialog和realtime_dialog_external_rag_test项目,更新test2项目

This commit is contained in:
User
2026-03-13 13:06:46 +08:00
parent 9dab61345c
commit 5521b673f5
215 changed files with 7626 additions and 1876 deletions

View File

@@ -35,6 +35,51 @@ class ArkChatService {
};
}
async summarizeContextForHandoff(messages, maxRounds = 3) {
const normalizedMessages = (Array.isArray(messages) ? messages : [])
.filter((item) => item && (item.role === 'user' || item.role === 'assistant') && String(item.content || '').trim());
let startIndex = 0;
let userRounds = 0;
for (let index = normalizedMessages.length - 1; index >= 0; index -= 1) {
if (normalizedMessages[index].role === 'user') {
userRounds += 1;
startIndex = index;
if (userRounds >= Math.max(1, maxRounds)) {
break;
}
}
}
const recentMessages = normalizedMessages.slice(startIndex);
if (!recentMessages.length) {
return '';
}
const transcript = recentMessages
.map((item, index) => `${index + 1}. ${item.role === 'user' ? '用户' : '助手'}${String(item.content || '').trim()}`)
.join('\n');
if (this._isMockMode()) {
const lastUserMessage = [...recentMessages].reverse().find((item) => item.role === 'user');
return lastUserMessage ? `用户当前主要在追问:${lastUserMessage.content}` : '';
}
const result = await this.chat([
{
role: 'system',
content: '你是对话交接摘要助手。请基于最近几轮对话生成一段简洁中文摘要供另一个模型无缝接管会话。摘要必须同时包含用户当前主要问题、已经确认的信息、仍待解决的问题。不要使用标题、项目符号或编号不要虚构事实控制在120字以内。',
},
{
role: 'user',
content: `请总结以下最近${Math.ceil(recentMessages.length / 2)}轮对话:\n${transcript}`,
},
], []);
return String(result.content || '').trim();
}
/**
* 非流式调用方舟 LLM
*/