mirror of
https://github.com/eliasstepanik/core.git
synced 2026-01-11 18:48:27 +00:00
add timings in knowledge graph
This commit is contained in:
parent
7205b909a4
commit
1bae793675
@ -112,11 +112,8 @@ export class KnowledgeGraphService {
|
||||
sessionContext,
|
||||
);
|
||||
|
||||
const relatedEpisodesEntities = await getRelatedEpisodesEntities({
|
||||
embedding: await this.getEmbedding(normalizedEpisodeBody),
|
||||
userId: params.userId,
|
||||
minSimilarity: 0.7,
|
||||
});
|
||||
const normalizedTime = Date.now() - startTime;
|
||||
logger.log(`Normalized episode body in ${normalizedTime} ms`);
|
||||
|
||||
if (normalizedEpisodeBody === "NOTHING_TO_REMEMBER") {
|
||||
logger.log("Nothing to remember");
|
||||
@ -127,6 +124,15 @@ export class KnowledgeGraphService {
|
||||
};
|
||||
}
|
||||
|
||||
const relatedEpisodesEntities = await getRelatedEpisodesEntities({
|
||||
embedding: await this.getEmbedding(normalizedEpisodeBody),
|
||||
userId: params.userId,
|
||||
minSimilarity: 0.7,
|
||||
});
|
||||
|
||||
const relatedTime = Date.now() - normalizedTime;
|
||||
logger.log(`Related episodes entities in ${relatedTime} ms`);
|
||||
|
||||
// Step 2: Episode Creation - Create or retrieve the episode
|
||||
const episode: EpisodicNode = {
|
||||
uuid: crypto.randomUUID(),
|
||||
@ -149,6 +155,9 @@ export class KnowledgeGraphService {
|
||||
previousEpisodes,
|
||||
);
|
||||
|
||||
const extractedTime = Date.now();
|
||||
logger.log(`Extracted entities in ${extractedTime - relatedTime} ms`);
|
||||
|
||||
// Step 3.1: Context-aware entity resolution with preset type evolution
|
||||
await this.resolveEntitiesWithContext(
|
||||
extractedNodes,
|
||||
@ -161,6 +170,9 @@ export class KnowledgeGraphService {
|
||||
episode,
|
||||
);
|
||||
|
||||
const expandedTime = Date.now();
|
||||
logger.log(`Expanded entities in ${expandedTime - extractedTime} ms`);
|
||||
|
||||
// Step 4: Statement Extrraction - Extract statements (triples) instead of direct edges
|
||||
const extractedStatements = await this.extractStatements(
|
||||
episode,
|
||||
@ -168,6 +180,11 @@ export class KnowledgeGraphService {
|
||||
previousEpisodes,
|
||||
);
|
||||
|
||||
const extractedStatementsTime = Date.now();
|
||||
logger.log(
|
||||
`Extracted statements in ${extractedStatementsTime - expandedTime} ms`,
|
||||
);
|
||||
|
||||
// Step 5: Entity Resolution - Resolve extracted nodes to existing nodes or create new ones
|
||||
const resolvedTriples = await this.resolveExtractedNodes(
|
||||
extractedStatements,
|
||||
@ -175,6 +192,11 @@ export class KnowledgeGraphService {
|
||||
previousEpisodes,
|
||||
);
|
||||
|
||||
const resolvedTriplesTime = Date.now();
|
||||
logger.log(
|
||||
`Resolved Entities in ${resolvedTriplesTime - extractedStatementsTime} ms`,
|
||||
);
|
||||
|
||||
// Step 6: Statement Resolution - Resolve statements and detect contradictions
|
||||
const { resolvedStatements, invalidatedStatements } =
|
||||
await this.resolveStatements(
|
||||
@ -183,12 +205,22 @@ export class KnowledgeGraphService {
|
||||
previousEpisodes,
|
||||
);
|
||||
|
||||
const resolvedStatementsTime = Date.now();
|
||||
logger.log(
|
||||
`Resolved statements in ${resolvedStatementsTime - resolvedTriplesTime} ms`,
|
||||
);
|
||||
|
||||
// Step 7: ADd attributes to entity nodes
|
||||
const updatedTriples = await this.addAttributesToEntities(
|
||||
resolvedStatements,
|
||||
episode,
|
||||
);
|
||||
|
||||
const updatedTriplesTime = Date.now();
|
||||
logger.log(
|
||||
`Updated triples in ${updatedTriplesTime - resolvedStatementsTime} ms`,
|
||||
);
|
||||
|
||||
for (const triple of updatedTriples) {
|
||||
const { subject, predicate, object, statement, provenance } = triple;
|
||||
const safeTriple = {
|
||||
@ -215,6 +247,9 @@ export class KnowledgeGraphService {
|
||||
// Save triples in parallel for better performance
|
||||
await Promise.all(updatedTriples.map((triple) => saveTriple(triple)));
|
||||
|
||||
const saveTriplesTime = Date.now();
|
||||
logger.log(`Saved triples in ${saveTriplesTime - updatedTriplesTime} ms`);
|
||||
|
||||
// Invalidate invalidated statements
|
||||
await invalidateStatements({ statementIds: invalidatedStatements });
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user