MCPcopy
hub / github.com/CaviraOSS/OpenMemory / calc_mean_vec

Function calc_mean_vec

backend/src/memory/hsg.ts:464–490  ·  view source on GitHub ↗
(
    emb_res: EmbeddingResult[],
    secs: string[],
)

Source from the content-addressed store, hash-verified

462 }
463}
464export function calc_mean_vec(
465 emb_res: EmbeddingResult[],
466 secs: string[],
467): number[] {
468 const dim = emb_res[0].vector.length;
469 const wsum = new Array(dim).fill(0);
470 const sec_scores = emb_res.map((r) => ({
471 vector: r.vector,
472 confidence: sector_configs[r.sector]?.weight || 1.0,
473 }));
474 const beta = hybrid_params.beta;
475 const exp_sum = sec_scores.reduce(
476 (sum, s) => sum + Math.exp(beta * s.confidence),
477 0,
478 );
479 for (const result of emb_res) {
480 const sec_wt = sector_configs[result.sector]?.weight || 1.0;
481 const sm_wt = Math.exp(beta * sec_wt) / exp_sum;
482 for (let i = 0; i < dim; i++) {
483 wsum[i] += result.vector[i] * sm_wt;
484 }
485 }
486 const norm =
487 Math.sqrt(wsum.reduce((sum, v) => sum + v * v, 0)) +
488 hybrid_params.epsilon;
489 return wsum.map((v) => v / norm);
490}
491export async function create_single_waypoint(
492 new_id: string,
493 new_mean: number[],

Callers 2

add_hsg_memoryFunction · 0.70
update_memoryFunction · 0.70

Calls 1

expMethod · 0.45

Tested by

no test coverage detected