summary system backend implementation
This commit is contained in:
@@ -4,6 +4,7 @@ const embedding = require("../services/embedding");
|
||||
const qdrant = require("../services/qdrant");
|
||||
const { ORCHESTRATION } = require("@nexusai/shared");
|
||||
const appSettings = require("../config/settings");
|
||||
const {triggerSummary} = require('../services/summarization')
|
||||
|
||||
function buildPrompt(recentEpisodes, semanticEpisodes, entities, userMessage, systemPrompt) {
|
||||
const parts = [systemPrompt ?? ORCHESTRATION.SYSTEM_PROMPT];
|
||||
@@ -193,12 +194,18 @@ async function chat(externalId, userMessage, options = {}) {
|
||||
console.error(`[orchestration] Failed to save episode`, err.message),
|
||||
);
|
||||
|
||||
// 7. Auto-name on first message
|
||||
// 7. Trigger summarization check (fire-and-forget)
|
||||
// Pass full episodes list so summarization can sum tokens accurately
|
||||
const allEpisodes = await memory.getRecentEpisodes(session.id, 9999);
|
||||
triggerSummary(session, allEpisodes);
|
||||
|
||||
|
||||
// 8. Auto-name on first message
|
||||
if (isFirstMessage && !session.name) {
|
||||
autoNameSession(externalId, userMessage, result.text).catch(() => {}); // already logged inside autoNameSession
|
||||
}
|
||||
|
||||
// 8. Return response
|
||||
// 9. Return response
|
||||
return {
|
||||
sessionId: externalId,
|
||||
response: result.text,
|
||||
@@ -311,6 +318,8 @@ async function chatStream(externalId, userMessage, onChunk, options = {}) {
|
||||
|
||||
if (fullText.trim()) {
|
||||
await memory.createEpisode(session.id, userMessage, fullText, tokenCount, session.project_id ?? null);
|
||||
const allEpisodes = await memory.getRecentEpisodes(session.id, 9999);
|
||||
triggerSummary(session, allEpisodes);
|
||||
} else {
|
||||
console.warn(
|
||||
"[orchestration] Stream finished with no assistant text; episode not saved",
|
||||
|
||||
Reference in New Issue
Block a user