@cogitator-ai/memory 0.1.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +572 -21
- package/dist/__tests__/context-builder.test.js +2 -2
- package/dist/__tests__/context-builder.test.js.map +1 -1
- package/dist/__tests__/memory-adapter.test.js +1 -1
- package/dist/__tests__/memory-adapter.test.js.map +1 -1
- package/dist/__tests__/token-counter.test.js +1 -1
- package/dist/__tests__/token-counter.test.js.map +1 -1
- package/dist/adapters/base.d.ts.map +1 -1
- package/dist/adapters/base.js.map +1 -1
- package/dist/adapters/memory.d.ts.map +1 -1
- package/dist/adapters/memory.js.map +1 -1
- package/dist/adapters/postgres.d.ts.map +1 -1
- package/dist/adapters/postgres.js +11 -15
- package/dist/adapters/postgres.js.map +1 -1
- package/dist/adapters/redis.d.ts.map +1 -1
- package/dist/adapters/redis.js.map +1 -1
- package/dist/context-builder.d.ts.map +1 -1
- package/dist/context-builder.js +7 -15
- package/dist/context-builder.js.map +1 -1
- package/dist/embedding/factory.d.ts.map +1 -1
- package/dist/embedding/factory.js.map +1 -1
- package/dist/embedding/openai.d.ts.map +1 -1
- package/dist/embedding/openai.js +1 -3
- package/dist/embedding/openai.js.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/knowledge-graph/entity-extractor.d.ts +30 -0
- package/dist/knowledge-graph/entity-extractor.d.ts.map +1 -0
- package/dist/knowledge-graph/entity-extractor.js +158 -0
- package/dist/knowledge-graph/entity-extractor.js.map +1 -0
- package/dist/knowledge-graph/graph-adapter.d.ts +56 -0
- package/dist/knowledge-graph/graph-adapter.d.ts.map +1 -0
- package/dist/knowledge-graph/graph-adapter.js +652 -0
- package/dist/knowledge-graph/graph-adapter.js.map +1 -0
- package/dist/knowledge-graph/graph-context-builder.d.ts +23 -0
- package/dist/knowledge-graph/graph-context-builder.d.ts.map +1 -0
- package/dist/knowledge-graph/graph-context-builder.js +202 -0
- package/dist/knowledge-graph/graph-context-builder.js.map +1 -0
- package/dist/knowledge-graph/index.d.ts +9 -0
- package/dist/knowledge-graph/index.d.ts.map +1 -0
- package/dist/knowledge-graph/index.js +6 -0
- package/dist/knowledge-graph/index.js.map +1 -0
- package/dist/knowledge-graph/inference-engine.d.ts +17 -0
- package/dist/knowledge-graph/inference-engine.d.ts.map +1 -0
- package/dist/knowledge-graph/inference-engine.js +270 -0
- package/dist/knowledge-graph/inference-engine.js.map +1 -0
- package/dist/knowledge-graph/schema.d.ts +854 -0
- package/dist/knowledge-graph/schema.d.ts.map +1 -0
- package/dist/knowledge-graph/schema.js +166 -0
- package/dist/knowledge-graph/schema.js.map +1 -0
- package/package.json +6 -5
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { ExtractedEntitySchema, ExtractedRelationSchema } from './schema';
|
|
3
|
+
const ExtractionOutputSchema = z.object({
|
|
4
|
+
entities: z.array(ExtractedEntitySchema),
|
|
5
|
+
relations: z.array(ExtractedRelationSchema),
|
|
6
|
+
});
|
|
7
|
+
const ENTITY_TYPES = [
|
|
8
|
+
'person',
|
|
9
|
+
'organization',
|
|
10
|
+
'location',
|
|
11
|
+
'concept',
|
|
12
|
+
'event',
|
|
13
|
+
'object',
|
|
14
|
+
];
|
|
15
|
+
const RELATION_TYPES = [
|
|
16
|
+
'knows',
|
|
17
|
+
'works_at',
|
|
18
|
+
'located_in',
|
|
19
|
+
'part_of',
|
|
20
|
+
'related_to',
|
|
21
|
+
'created_by',
|
|
22
|
+
'belongs_to',
|
|
23
|
+
'associated_with',
|
|
24
|
+
'causes',
|
|
25
|
+
'precedes',
|
|
26
|
+
];
|
|
27
|
+
export class LLMEntityExtractor {
|
|
28
|
+
backend;
|
|
29
|
+
config;
|
|
30
|
+
constructor(backend, config = {}) {
|
|
31
|
+
this.backend = backend;
|
|
32
|
+
this.config = {
|
|
33
|
+
minConfidence: config.minConfidence ?? 0.7,
|
|
34
|
+
maxEntitiesPerText: config.maxEntitiesPerText ?? 20,
|
|
35
|
+
maxRelationsPerText: config.maxRelationsPerText ?? 30,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
async extract(text, context) {
|
|
39
|
+
const systemPrompt = this.buildSystemPrompt(context);
|
|
40
|
+
const userPrompt = this.buildUserPrompt(text, context);
|
|
41
|
+
const response = await this.backend.chat({
|
|
42
|
+
messages: [
|
|
43
|
+
{ role: 'system', content: systemPrompt },
|
|
44
|
+
{ role: 'user', content: userPrompt },
|
|
45
|
+
],
|
|
46
|
+
responseFormat: { type: 'json_object' },
|
|
47
|
+
});
|
|
48
|
+
const parsed = this.parseResponse(response.content);
|
|
49
|
+
const filteredEntities = parsed.entities
|
|
50
|
+
.filter((e) => e.confidence >= this.config.minConfidence)
|
|
51
|
+
.slice(0, this.config.maxEntitiesPerText);
|
|
52
|
+
const entityNames = new Set(filteredEntities.map((e) => e.name.toLowerCase()));
|
|
53
|
+
const filteredRelations = parsed.relations
|
|
54
|
+
.filter((r) => r.confidence >= this.config.minConfidence &&
|
|
55
|
+
entityNames.has(r.sourceEntity.toLowerCase()) &&
|
|
56
|
+
entityNames.has(r.targetEntity.toLowerCase()))
|
|
57
|
+
.slice(0, this.config.maxRelationsPerText);
|
|
58
|
+
return {
|
|
59
|
+
entities: filteredEntities,
|
|
60
|
+
relations: filteredRelations,
|
|
61
|
+
text,
|
|
62
|
+
timestamp: new Date(),
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
async extractBatch(texts, context) {
|
|
66
|
+
const results = [];
|
|
67
|
+
for (const text of texts) {
|
|
68
|
+
const result = await this.extract(text, context);
|
|
69
|
+
results.push(result);
|
|
70
|
+
}
|
|
71
|
+
return results;
|
|
72
|
+
}
|
|
73
|
+
buildSystemPrompt(context) {
|
|
74
|
+
const entityTypesStr = (context?.entityTypeHints ?? ENTITY_TYPES).join(', ');
|
|
75
|
+
const relationTypesStr = (context?.relationTypeHints ?? RELATION_TYPES).join(', ');
|
|
76
|
+
return `You are an entity and relationship extraction system. Your task is to extract structured information from text.
|
|
77
|
+
|
|
78
|
+
## Entity Types
|
|
79
|
+
Extract entities of these types: ${entityTypesStr}
|
|
80
|
+
|
|
81
|
+
## Relationship Types
|
|
82
|
+
Extract relationships of these types: ${relationTypesStr}
|
|
83
|
+
|
|
84
|
+
## Output Format
|
|
85
|
+
Return a JSON object with this structure:
|
|
86
|
+
{
|
|
87
|
+
"entities": [
|
|
88
|
+
{
|
|
89
|
+
"name": "entity name",
|
|
90
|
+
"type": "person|organization|location|concept|event|object",
|
|
91
|
+
"aliases": ["alternative names"],
|
|
92
|
+
"description": "brief description",
|
|
93
|
+
"confidence": 0.0-1.0
|
|
94
|
+
}
|
|
95
|
+
],
|
|
96
|
+
"relations": [
|
|
97
|
+
{
|
|
98
|
+
"sourceEntity": "source entity name",
|
|
99
|
+
"targetEntity": "target entity name",
|
|
100
|
+
"type": "knows|works_at|located_in|part_of|related_to|created_by|belongs_to|associated_with|causes|precedes",
|
|
101
|
+
"label": "optional relationship label",
|
|
102
|
+
"confidence": 0.0-1.0
|
|
103
|
+
}
|
|
104
|
+
]
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
## Guidelines
|
|
108
|
+
- Extract only explicitly mentioned or strongly implied entities and relationships
|
|
109
|
+
- Use confidence scores to indicate certainty (1.0 = certain, 0.5 = probable, 0.0 = uncertain)
|
|
110
|
+
- Normalize entity names (capitalize proper nouns, use full names when known)
|
|
111
|
+
- Include aliases for entities that are referred to in multiple ways
|
|
112
|
+
- Avoid duplicate entities (merge references to the same entity)
|
|
113
|
+
- For relationships, ensure both source and target entities are in the entities list`;
|
|
114
|
+
}
|
|
115
|
+
buildUserPrompt(text, context) {
|
|
116
|
+
let prompt = '';
|
|
117
|
+
if (context?.existingEntities && context.existingEntities.length > 0) {
|
|
118
|
+
prompt += `## Known Entities (for disambiguation)\n${context.existingEntities.join(', ')}\n\n`;
|
|
119
|
+
}
|
|
120
|
+
prompt += `## Text to Extract From\n${text}\n\n`;
|
|
121
|
+
prompt += `Extract all entities and relationships from the text above. Return JSON only.`;
|
|
122
|
+
return prompt;
|
|
123
|
+
}
|
|
124
|
+
parseResponse(content) {
|
|
125
|
+
try {
|
|
126
|
+
const cleaned = content.replace(/```json\n?|\n?```/g, '').trim();
|
|
127
|
+
const parsed = JSON.parse(cleaned);
|
|
128
|
+
const result = ExtractionOutputSchema.safeParse(parsed);
|
|
129
|
+
if (result.success) {
|
|
130
|
+
return result.data;
|
|
131
|
+
}
|
|
132
|
+
if (parsed.entities && Array.isArray(parsed.entities)) {
|
|
133
|
+
const entities = [];
|
|
134
|
+
for (const e of parsed.entities) {
|
|
135
|
+
const entityResult = ExtractedEntitySchema.safeParse(e);
|
|
136
|
+
if (entityResult.success) {
|
|
137
|
+
entities.push(entityResult.data);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
const relations = [];
|
|
141
|
+
if (parsed.relations && Array.isArray(parsed.relations)) {
|
|
142
|
+
for (const r of parsed.relations) {
|
|
143
|
+
const relationResult = ExtractedRelationSchema.safeParse(r);
|
|
144
|
+
if (relationResult.success) {
|
|
145
|
+
relations.push(relationResult.data);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
return { entities, relations };
|
|
150
|
+
}
|
|
151
|
+
return { entities: [], relations: [] };
|
|
152
|
+
}
|
|
153
|
+
catch {
|
|
154
|
+
return { entities: [], relations: [] };
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
//# sourceMappingURL=entity-extractor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity-extractor.js","sourceRoot":"","sources":["../../src/knowledge-graph/entity-extractor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { GraphAdapter, GraphNode, GraphEdge, NodeQuery, EdgeQuery, TraversalOptions, TraversalResult, GraphPath, GraphSemanticSearchOptions, GraphStats, MemoryResult, TraversalDirection } from '@cogitator-ai/types';
|
|
2
|
+
type Pool = {
|
|
3
|
+
query(text: string, values?: unknown[]): Promise<{
|
|
4
|
+
rows: Record<string, unknown>[];
|
|
5
|
+
}>;
|
|
6
|
+
connect(): Promise<{
|
|
7
|
+
release(): void;
|
|
8
|
+
}>;
|
|
9
|
+
end(): Promise<void>;
|
|
10
|
+
};
|
|
11
|
+
export interface PostgresGraphAdapterConfig {
|
|
12
|
+
pool: Pool;
|
|
13
|
+
schema?: string;
|
|
14
|
+
vectorDimensions?: number;
|
|
15
|
+
}
|
|
16
|
+
export declare class PostgresGraphAdapter implements GraphAdapter {
|
|
17
|
+
private pool;
|
|
18
|
+
private schema;
|
|
19
|
+
private vectorDimensions;
|
|
20
|
+
private initialized;
|
|
21
|
+
constructor(config: PostgresGraphAdapterConfig);
|
|
22
|
+
initialize(): Promise<void>;
|
|
23
|
+
private success;
|
|
24
|
+
private failure;
|
|
25
|
+
private generateId;
|
|
26
|
+
addNode(node: Omit<GraphNode, 'id' | 'createdAt' | 'updatedAt' | 'lastAccessedAt' | 'accessCount'>): Promise<MemoryResult<GraphNode>>;
|
|
27
|
+
getNode(nodeId: string): Promise<MemoryResult<GraphNode | null>>;
|
|
28
|
+
getNodeByName(agentId: string, name: string): Promise<MemoryResult<GraphNode | null>>;
|
|
29
|
+
updateNode(nodeId: string, updates: Partial<Pick<GraphNode, 'name' | 'aliases' | 'description' | 'properties' | 'confidence' | 'metadata' | 'embedding'>>): Promise<MemoryResult<GraphNode>>;
|
|
30
|
+
deleteNode(nodeId: string): Promise<MemoryResult<void>>;
|
|
31
|
+
queryNodes(query: NodeQuery): Promise<MemoryResult<GraphNode[]>>;
|
|
32
|
+
searchNodesSemantic(options: GraphSemanticSearchOptions): Promise<MemoryResult<(GraphNode & {
|
|
33
|
+
score: number;
|
|
34
|
+
})[]>>;
|
|
35
|
+
addEdge(edge: Omit<GraphEdge, 'id' | 'createdAt' | 'updatedAt'>): Promise<MemoryResult<GraphEdge>>;
|
|
36
|
+
getEdge(edgeId: string): Promise<MemoryResult<GraphEdge | null>>;
|
|
37
|
+
getEdgesBetween(sourceNodeId: string, targetNodeId: string): Promise<MemoryResult<GraphEdge[]>>;
|
|
38
|
+
updateEdge(edgeId: string, updates: Partial<Pick<GraphEdge, 'weight' | 'label' | 'properties' | 'confidence' | 'validFrom' | 'validUntil' | 'metadata'>>): Promise<MemoryResult<GraphEdge>>;
|
|
39
|
+
deleteEdge(edgeId: string): Promise<MemoryResult<void>>;
|
|
40
|
+
queryEdges(query: EdgeQuery): Promise<MemoryResult<GraphEdge[]>>;
|
|
41
|
+
traverse(options: TraversalOptions): Promise<MemoryResult<TraversalResult>>;
|
|
42
|
+
private traverseRecursive;
|
|
43
|
+
findShortestPath(agentId: string, startNodeId: string, endNodeId: string, maxDepth?: number): Promise<MemoryResult<GraphPath | null>>;
|
|
44
|
+
getNeighbors(nodeId: string, direction?: TraversalDirection): Promise<MemoryResult<{
|
|
45
|
+
node: GraphNode;
|
|
46
|
+
edge: GraphEdge;
|
|
47
|
+
}[]>>;
|
|
48
|
+
mergeNodes(targetNodeId: string, sourceNodeIds: string[]): Promise<MemoryResult<GraphNode>>;
|
|
49
|
+
clearGraph(agentId: string): Promise<MemoryResult<void>>;
|
|
50
|
+
getGraphStats(agentId: string): Promise<MemoryResult<GraphStats>>;
|
|
51
|
+
private rowToNode;
|
|
52
|
+
private rowToEdge;
|
|
53
|
+
private rowToEdgeFromJoin;
|
|
54
|
+
}
|
|
55
|
+
export {};
|
|
56
|
+
//# sourceMappingURL=graph-adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph-adapter.d.ts","sourceRoot":"","sources":["../../src/knowledge-graph/graph-adapter.ts"],"names":[],"mappings":"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"}
|