episodes touch
This commit is contained in:
@@ -331,6 +331,9 @@ async function assembleContext(externalId, userMessage) {
|
||||
const scoredPool = buildScoredPool(fusedWithScores, recentEpisodes, entityBoostedIds, { entityWeight });
|
||||
const { guaranteed, selected } = selectWithinBudget(scoredPool, contextBudget, minRecentEpisodes, recentEpisodes);
|
||||
|
||||
const selectedIds = selected.map(ep => ep.id);
|
||||
memory.touchEpisodes(selectedIds);
|
||||
|
||||
// 7. Graph neighborhood expansion
|
||||
let neighborhood = { nodes: [], edges: [] };
|
||||
if (entityIds.length > 0) {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
const { getEnv, SERVICES, EPISODIC } = require('@nexusai/shared');
|
||||
const { getEnv, SERVICES, EPISODIC, logger } = require('@nexusai/shared');
|
||||
|
||||
const BASE_URL = getEnv('MEMORY_SERVICE_URL', SERVICES.MEMORY_URL);
|
||||
|
||||
@@ -223,6 +223,16 @@ async function getEntityIdsBySession(sessionId){
|
||||
return entityIds;
|
||||
}
|
||||
|
||||
// orchestration-service/src/services/memory.js
|
||||
async function touchEpisodes(ids) {
|
||||
if (!ids.length) return;
|
||||
fetch(`${BASE_URL}/episodes/touch`, {
|
||||
method: 'POST',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
body: JSON.stringify({ ids }),
|
||||
}).catch(err => logger.warn(`[memory] touch failed: ${err.message}`));
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
getSessionByExternalId,
|
||||
createSession,
|
||||
@@ -250,4 +260,5 @@ module.exports = {
|
||||
searchEpisodes,
|
||||
getEpisodesByEntities,
|
||||
getEntityIdsBySession,
|
||||
touchEpisodes,
|
||||
}
|
||||
Reference in New Issue
Block a user