@morningljn/mnemo 0.1.4 → 0.2.1
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/dist/dream.d.ts +2 -0
- package/dist/dream.js +20 -0
- package/dist/dream.js.map +1 -0
- package/dist/init.js +4 -24
- package/dist/init.js.map +1 -1
- package/dist/resources.d.ts +22 -8
- package/dist/resources.js +66 -20
- package/dist/resources.js.map +1 -1
- package/dist/retriever.js +42 -47
- package/dist/retriever.js.map +1 -1
- package/dist/schema.d.ts +1 -1
- package/dist/schema.js +21 -10
- package/dist/schema.js.map +1 -1
- package/dist/server.js +73 -6
- package/dist/server.js.map +1 -1
- package/dist/store.d.ts +59 -1
- package/dist/store.js +308 -10
- package/dist/store.js.map +1 -1
- package/dist/types.d.ts +30 -1
- package/docs/superpowers/plans/2026-05-16-memory-dreaming.md +626 -0
- package/docs/superpowers/plans/2026-05-16-memory-self-learning.md +932 -0
- package/openspec/changes/archive/2026-05-16-memory-dreaming/.openspec.yaml +2 -0
- package/openspec/changes/archive/2026-05-16-memory-dreaming/design.md +71 -0
- package/openspec/changes/archive/2026-05-16-memory-dreaming/proposal.md +32 -0
- package/openspec/changes/archive/2026-05-16-memory-dreaming/specs/compact-search/spec.md +16 -0
- package/openspec/changes/archive/2026-05-16-memory-dreaming/specs/dream-cycle/spec.md +38 -0
- package/openspec/changes/archive/2026-05-16-memory-dreaming/tasks.md +27 -0
- package/openspec/changes/memory-self-learning/.openspec.yaml +2 -0
- package/openspec/changes/memory-self-learning/design.md +174 -0
- package/openspec/changes/memory-self-learning/proposal.md +35 -0
- package/openspec/changes/memory-self-learning/specs/fact-retrieval/spec.md +35 -0
- package/openspec/changes/memory-self-learning/specs/fact-summary/spec.md +45 -0
- package/openspec/changes/memory-self-learning/specs/length-penalty/spec.md +27 -0
- package/openspec/changes/memory-self-learning/specs/retrieval-log/spec.md +41 -0
- package/openspec/changes/memory-self-learning/specs/self-learning/spec.md +68 -0
- package/openspec/changes/memory-self-learning/tasks.md +56 -0
- package/openspec/specs/compact-search/spec.md +16 -0
- package/openspec/specs/dream-cycle/spec.md +38 -0
- package/package.json +3 -2
- package/src/dream.ts +20 -0
- package/src/init.ts +4 -24
- package/src/resources.ts +77 -21
- package/src/retriever.ts +41 -49
- package/src/schema.ts +21 -10
- package/src/server.ts +81 -7
- package/src/store.ts +378 -11
- package/src/types.ts +28 -1
- package/tests/resource.test.ts +25 -23
- package/tests/retriever.test.ts +53 -0
- package/tests/store.test.ts +239 -0
package/dist/schema.js
CHANGED
|
@@ -6,9 +6,11 @@ CREATE TABLE IF NOT EXISTS facts (
|
|
|
6
6
|
category TEXT DEFAULT 'general',
|
|
7
7
|
tags TEXT DEFAULT '',
|
|
8
8
|
keywords TEXT DEFAULT '[]',
|
|
9
|
+
summary TEXT DEFAULT NULL,
|
|
9
10
|
trust_score REAL DEFAULT 0.5,
|
|
10
11
|
retrieval_count INTEGER DEFAULT 0,
|
|
11
12
|
helpful_count INTEGER DEFAULT 0,
|
|
13
|
+
last_retrieved_at TEXT DEFAULT NULL,
|
|
12
14
|
created_at TEXT DEFAULT (datetime('now', 'localtime')),
|
|
13
15
|
updated_at TEXT DEFAULT (datetime('now', 'localtime'))
|
|
14
16
|
);
|
|
@@ -29,34 +31,43 @@ CREATE TABLE IF NOT EXISTS fact_entities (
|
|
|
29
31
|
PRIMARY KEY (fact_id, entity_id)
|
|
30
32
|
);
|
|
31
33
|
|
|
34
|
+
-- 检索日志表
|
|
35
|
+
CREATE TABLE IF NOT EXISTS retrieval_log (
|
|
36
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
37
|
+
query TEXT NOT NULL,
|
|
38
|
+
results TEXT DEFAULT NULL,
|
|
39
|
+
timestamp TEXT DEFAULT (datetime('now', 'localtime'))
|
|
40
|
+
);
|
|
41
|
+
|
|
32
42
|
-- 索引
|
|
33
43
|
CREATE INDEX IF NOT EXISTS idx_facts_trust ON facts(trust_score DESC);
|
|
34
44
|
CREATE INDEX IF NOT EXISTS idx_facts_category ON facts(category);
|
|
35
45
|
CREATE INDEX IF NOT EXISTS idx_entities_name ON entities(name);
|
|
36
46
|
CREATE INDEX IF NOT EXISTS idx_fact_entities_entity ON fact_entities(entity_id);
|
|
47
|
+
CREATE INDEX IF NOT EXISTS idx_retrieval_log_ts ON retrieval_log(timestamp);
|
|
37
48
|
|
|
38
|
-
-- FTS5
|
|
49
|
+
-- FTS5 全文索引(trigram tokenizer 支持中文子串匹配)
|
|
39
50
|
CREATE VIRTUAL TABLE IF NOT EXISTS facts_fts
|
|
40
|
-
USING fts5(content, tags, content=facts, content_rowid=fact_id);
|
|
51
|
+
USING fts5(content, tags, summary, content=facts, content_rowid=fact_id, tokenize='trigram');
|
|
41
52
|
|
|
42
53
|
-- FTS5 同步触发器:插入
|
|
43
54
|
CREATE TRIGGER IF NOT EXISTS facts_ai AFTER INSERT ON facts BEGIN
|
|
44
|
-
INSERT INTO facts_fts(rowid, content, tags)
|
|
45
|
-
VALUES (new.fact_id, new.content, new.tags);
|
|
55
|
+
INSERT INTO facts_fts(rowid, content, tags, summary)
|
|
56
|
+
VALUES (new.fact_id, new.content, new.tags, COALESCE(new.summary, ''));
|
|
46
57
|
END;
|
|
47
58
|
|
|
48
59
|
-- FTS5 同步触发器:删除
|
|
49
60
|
CREATE TRIGGER IF NOT EXISTS facts_ad AFTER DELETE ON facts BEGIN
|
|
50
|
-
INSERT INTO facts_fts(facts_fts, rowid, content, tags)
|
|
51
|
-
VALUES ('delete', old.fact_id, old.content, old.tags);
|
|
61
|
+
INSERT INTO facts_fts(facts_fts, rowid, content, tags, summary)
|
|
62
|
+
VALUES ('delete', old.fact_id, old.content, old.tags, COALESCE(old.summary, ''));
|
|
52
63
|
END;
|
|
53
64
|
|
|
54
65
|
-- FTS5 同步触发器:更新
|
|
55
66
|
CREATE TRIGGER IF NOT EXISTS facts_au AFTER UPDATE ON facts BEGIN
|
|
56
|
-
INSERT INTO facts_fts(facts_fts, rowid, content, tags)
|
|
57
|
-
VALUES ('delete', old.fact_id, old.content, old.tags);
|
|
58
|
-
INSERT INTO facts_fts(rowid, content, tags)
|
|
59
|
-
VALUES (new.fact_id, new.content, new.tags);
|
|
67
|
+
INSERT INTO facts_fts(facts_fts, rowid, content, tags, summary)
|
|
68
|
+
VALUES ('delete', old.fact_id, old.content, old.tags, COALESCE(old.summary, ''));
|
|
69
|
+
INSERT INTO facts_fts(rowid, content, tags, summary)
|
|
70
|
+
VALUES (new.fact_id, new.content, new.tags, COALESCE(new.summary, ''));
|
|
60
71
|
END;
|
|
61
72
|
`;
|
|
62
73
|
//# sourceMappingURL=schema.js.map
|
package/dist/schema.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,MAAM,GAAG
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuErB,CAAA"}
|
package/dist/server.js
CHANGED
|
@@ -23,8 +23,9 @@ const FACT_STORE_DESCRIPTION = `结构化事实记忆系统(SQLite+FTS5 索引
|
|
|
23
23
|
|
|
24
24
|
写入时先 search 检查是否已存在相似事实。identity/coding_style/tool_pref/workflow/general → 全局库,project → 项目库。`;
|
|
25
25
|
const factStoreSchema = {
|
|
26
|
-
action: z.enum(['add', 'search', 'probe', 'related', 'reason', 'contradict', 'update', 'remove', 'list']),
|
|
26
|
+
action: z.enum(['add', 'search', 'probe', 'related', 'reason', 'contradict', 'update', 'remove', 'list', 'learn', 'audit', 'dream']),
|
|
27
27
|
content: z.union([z.string(), z.array(z.string())]).optional().describe("事实内容('add' 必需,支持批量)"),
|
|
28
|
+
summary: z.string().optional().describe('超长事实的摘要(检索用 summary 匹配)'),
|
|
28
29
|
query: z.string().optional().describe("搜索查询('search' 必需)"),
|
|
29
30
|
entity: z.string().optional().describe("实体名('probe'/'related' 使用)"),
|
|
30
31
|
entities: z.array(z.string()).optional().describe("实体列表('reason' 使用)"),
|
|
@@ -45,6 +46,15 @@ function resolveCategory(category) {
|
|
|
45
46
|
const valid = ['identity', 'coding_style', 'tool_pref', 'workflow', 'general'];
|
|
46
47
|
return valid.includes(category) ? category : 'general';
|
|
47
48
|
}
|
|
49
|
+
function toCompactResult(f) {
|
|
50
|
+
return {
|
|
51
|
+
factId: f.factId,
|
|
52
|
+
display: f.summary ?? (f.content.length > 100 ? f.content.slice(0, 100) + '...' : f.content),
|
|
53
|
+
category: f.category,
|
|
54
|
+
trustScore: Math.round(f.trustScore * 100) / 100,
|
|
55
|
+
score: Math.round(f.score * 1000) / 1000,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
48
58
|
const minTrust = 0.3;
|
|
49
59
|
// -- Initialize store + retriever --
|
|
50
60
|
const dbPath = join(homedir(), '.mnemo', 'facts.db');
|
|
@@ -53,8 +63,35 @@ const retriever = new FactRetriever(store, { temporalDecayHalfLife: 30 });
|
|
|
53
63
|
// Startup maintenance
|
|
54
64
|
store.decayTrustScores();
|
|
55
65
|
store.auditContradictions();
|
|
66
|
+
// Auto-learn on startup (non-blocking)
|
|
67
|
+
process.nextTick(() => {
|
|
68
|
+
try {
|
|
69
|
+
const result = store.runLearning();
|
|
70
|
+
if (result.demoted > 0 || result.aged > 0 || result.long_facts.length > 0) {
|
|
71
|
+
console.error(`[mnemo:auto-learn] promoted=${result.promoted} demoted=${result.demoted} aged=${result.aged} long_facts=${result.long_facts.length}`);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
catch (err) {
|
|
75
|
+
console.error('[mnemo:auto-learn] error:', err);
|
|
76
|
+
}
|
|
77
|
+
});
|
|
56
78
|
// -- MCP Server --
|
|
57
|
-
|
|
79
|
+
// 动态生成 instructions:将 identity resource 中的角色设定作为 system prompt 指令注入
|
|
80
|
+
function buildInstructions() {
|
|
81
|
+
try {
|
|
82
|
+
const rm = new ResourceManager(store);
|
|
83
|
+
const result = rm.readCategory('identity');
|
|
84
|
+
const identityText = result.contents[0]?.text ?? '';
|
|
85
|
+
if (identityText.length > 10) {
|
|
86
|
+
return identityText;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
catch {
|
|
90
|
+
// fallback:无 identity 数据时不注入
|
|
91
|
+
}
|
|
92
|
+
return '';
|
|
93
|
+
}
|
|
94
|
+
const server = new McpServer({ name: 'mnemo-mcp', version: '0.1.0' }, { instructions: buildInstructions() });
|
|
58
95
|
// -- MCP Resources: 会话预热注入 --
|
|
59
96
|
const resourceManager = new ResourceManager(store);
|
|
60
97
|
resourceManager.registerResources(server);
|
|
@@ -78,13 +115,22 @@ server.tool('fact_store', FACT_STORE_DESCRIPTION, factStoreSchema, async (args)
|
|
|
78
115
|
const scan = fullSecurityScan(content);
|
|
79
116
|
if (scan.warnings.length > 0 || scan.hasPii)
|
|
80
117
|
warnings = [...scan.warnings];
|
|
118
|
+
if (content.length > 500 && !a.summary) {
|
|
119
|
+
warnings = [...(warnings ?? []), 'content 超过 500 字,建议提供 summary 或拆分为多条 fact'];
|
|
120
|
+
}
|
|
81
121
|
if (similar) {
|
|
82
122
|
store.updateFact(similar.factId, { content, tags: a.tags, trustDelta: 0.05 });
|
|
123
|
+
if (a.summary) {
|
|
124
|
+
store.connection.prepare('UPDATE facts SET summary = ? WHERE fact_id = ?').run(a.summary, similar.factId);
|
|
125
|
+
}
|
|
83
126
|
const demoted = store.demoteContradictingFacts(similar.factId, content, category);
|
|
84
127
|
results.push({ fact_id: similar.factId, status: 'updated', reason: 'similar_fact_merged', ...(demoted > 0 ? { contradicted_demoted: demoted } : {}), ...(warnings ? { warnings } : {}) });
|
|
85
128
|
}
|
|
86
129
|
else {
|
|
87
130
|
const factId = store.addFact(content, category, a.tags ?? '');
|
|
131
|
+
if (a.summary) {
|
|
132
|
+
store.connection.prepare('UPDATE facts SET summary = ? WHERE fact_id = ?').run(a.summary, factId);
|
|
133
|
+
}
|
|
88
134
|
const demoted = store.demoteContradictingFacts(factId, content, category);
|
|
89
135
|
results.push({ fact_id: factId, status: 'added', category, ...(demoted > 0 ? { contradicted_demoted: demoted } : {}), ...(warnings ? { warnings } : {}) });
|
|
90
136
|
}
|
|
@@ -98,26 +144,30 @@ server.tool('fact_store', FACT_STORE_DESCRIPTION, factStoreSchema, async (args)
|
|
|
98
144
|
if (!a.query)
|
|
99
145
|
return { content: [{ type: 'text', text: JSON.stringify({ error: 'Missing required argument: query' }) }] };
|
|
100
146
|
const results = retriever.search(a.query, { category: a.category ? category : undefined, minTrust: a.min_trust ?? minTrust, limit: a.limit ?? 10 });
|
|
101
|
-
|
|
147
|
+
const compact = results.map(toCompactResult);
|
|
148
|
+
return { content: [{ type: 'text', text: JSON.stringify({ results: compact, count: compact.length }) }] };
|
|
102
149
|
}
|
|
103
150
|
case 'probe': {
|
|
104
151
|
if (!a.entity)
|
|
105
152
|
return { content: [{ type: 'text', text: JSON.stringify({ error: 'Missing required argument: entity' }) }] };
|
|
106
153
|
const results = retriever.probe(a.entity, { minTrust: a.min_trust ?? minTrust, limit: a.limit ?? 10 });
|
|
107
|
-
|
|
154
|
+
const compact = results.map(toCompactResult);
|
|
155
|
+
return { content: [{ type: 'text', text: JSON.stringify({ results: compact, count: compact.length }) }] };
|
|
108
156
|
}
|
|
109
157
|
case 'related': {
|
|
110
158
|
if (!a.entity)
|
|
111
159
|
return { content: [{ type: 'text', text: JSON.stringify({ error: 'Missing required argument: entity' }) }] };
|
|
112
160
|
const results = retriever.related(a.entity, { minTrust: a.min_trust ?? minTrust, limit: a.limit ?? 10 });
|
|
113
|
-
|
|
161
|
+
const compact = results.map(toCompactResult);
|
|
162
|
+
return { content: [{ type: 'text', text: JSON.stringify({ results: compact, count: compact.length }) }] };
|
|
114
163
|
}
|
|
115
164
|
case 'reason': {
|
|
116
165
|
const entities = a.entities ?? [];
|
|
117
166
|
if (entities.length === 0)
|
|
118
167
|
return { content: [{ type: 'text', text: JSON.stringify({ error: "reason requires 'entities' list" }) }] };
|
|
119
168
|
const results = retriever.reason(entities, { minTrust: a.min_trust ?? minTrust, limit: a.limit ?? 10 });
|
|
120
|
-
|
|
169
|
+
const compact = results.map(toCompactResult);
|
|
170
|
+
return { content: [{ type: 'text', text: JSON.stringify({ results: compact, count: compact.length }) }] };
|
|
121
171
|
}
|
|
122
172
|
case 'contradict': {
|
|
123
173
|
const results = retriever.contradict({ threshold: 0.3, limit: a.limit ?? 10 });
|
|
@@ -127,6 +177,9 @@ server.tool('fact_store', FACT_STORE_DESCRIPTION, factStoreSchema, async (args)
|
|
|
127
177
|
if (!a.fact_id)
|
|
128
178
|
return { content: [{ type: 'text', text: JSON.stringify({ error: 'Missing required argument: fact_id' }) }] };
|
|
129
179
|
const updated = store.updateFact(a.fact_id, { content: a.content, tags: a.tags, category, trustDelta: a.trust_delta });
|
|
180
|
+
if (a.summary !== undefined) {
|
|
181
|
+
store.connection.prepare('UPDATE facts SET summary = ? WHERE fact_id = ?').run(a.summary, a.fact_id);
|
|
182
|
+
}
|
|
130
183
|
retriever.getCache().clear();
|
|
131
184
|
resourceManager.invalidate();
|
|
132
185
|
return { content: [{ type: 'text', text: JSON.stringify({ updated }) }] };
|
|
@@ -141,6 +194,20 @@ server.tool('fact_store', FACT_STORE_DESCRIPTION, factStoreSchema, async (args)
|
|
|
141
194
|
const response = Array.isArray(a.fact_id) ? results : results[0];
|
|
142
195
|
return { content: [{ type: 'text', text: JSON.stringify(response) }] };
|
|
143
196
|
}
|
|
197
|
+
case 'learn': {
|
|
198
|
+
const result = store.runLearning();
|
|
199
|
+
return { content: [{ type: 'text', text: JSON.stringify(result) }] };
|
|
200
|
+
}
|
|
201
|
+
case 'audit': {
|
|
202
|
+
const report = store.runAudit();
|
|
203
|
+
return { content: [{ type: 'text', text: JSON.stringify(report) }] };
|
|
204
|
+
}
|
|
205
|
+
case 'dream': {
|
|
206
|
+
const report = await store.runDream();
|
|
207
|
+
retriever.getCache().clear();
|
|
208
|
+
resourceManager.invalidate();
|
|
209
|
+
return { content: [{ type: 'text', text: JSON.stringify(report) }] };
|
|
210
|
+
}
|
|
144
211
|
case 'list': {
|
|
145
212
|
const facts = store.listFacts(category, a.min_trust ?? 0.0, a.limit ?? 10);
|
|
146
213
|
return { content: [{ type: 'text', text: JSON.stringify({ facts, count: facts.length }) }] };
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/dist/store.d.ts
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* - 去重(content UNIQUE 约束)
|
|
10
10
|
*/
|
|
11
11
|
import Database from 'better-sqlite3';
|
|
12
|
-
import type { Fact, FactCategory } from './types.js';
|
|
12
|
+
import type { Fact, FactCategory, DreamReport } from './types.js';
|
|
13
13
|
export declare class MemoryStore {
|
|
14
14
|
private defaultTrust;
|
|
15
15
|
private db;
|
|
@@ -101,6 +101,64 @@ export declare class MemoryStore {
|
|
|
101
101
|
refreshProjectFacts(): void;
|
|
102
102
|
/** 获取事实总数 */
|
|
103
103
|
getTotalCount(): number;
|
|
104
|
+
/** 记录检索日志并更新 last_retrieved_at */
|
|
105
|
+
logRetrieval(query: string, results: Array<{
|
|
106
|
+
id: number;
|
|
107
|
+
score: number;
|
|
108
|
+
}>): void;
|
|
109
|
+
/** 清理检索日志,保留最近 maxEntries 条 */
|
|
110
|
+
pruneRetrievalLog(maxEntries?: number): void;
|
|
111
|
+
/** 自学习:基于检索统计自动调整 trust_score */
|
|
112
|
+
runLearning(): {
|
|
113
|
+
promoted: number;
|
|
114
|
+
demoted: number;
|
|
115
|
+
aged: number;
|
|
116
|
+
unchanged: number;
|
|
117
|
+
long_facts: Array<{
|
|
118
|
+
id: number;
|
|
119
|
+
content_length: number;
|
|
120
|
+
penalty: number;
|
|
121
|
+
has_summary: boolean;
|
|
122
|
+
}>;
|
|
123
|
+
};
|
|
124
|
+
/** 数据质量审计(只读,不修改数据) */
|
|
125
|
+
runAudit(): {
|
|
126
|
+
total_facts: number;
|
|
127
|
+
long_without_summary: Array<{
|
|
128
|
+
id: number;
|
|
129
|
+
content_length: number;
|
|
130
|
+
}>;
|
|
131
|
+
low_helpful_rate: Array<{
|
|
132
|
+
id: number;
|
|
133
|
+
rate: number;
|
|
134
|
+
retrieval_count: number;
|
|
135
|
+
}>;
|
|
136
|
+
aging_candidates: Array<{
|
|
137
|
+
id: number;
|
|
138
|
+
last_retrieved_at: string | null;
|
|
139
|
+
}>;
|
|
140
|
+
};
|
|
141
|
+
/** Dream 前备份数据库(使用 better-sqlite3 内置备份,安全处理 WAL 模式) */
|
|
142
|
+
backupDatabase(): Promise<string>;
|
|
143
|
+
/** 合并同 category 内 Jaccard > 0.6 的重叠 fact */
|
|
144
|
+
mergeOverlappingFacts(): {
|
|
145
|
+
merged: number;
|
|
146
|
+
details: Array<{
|
|
147
|
+
kept: number;
|
|
148
|
+
removed: number;
|
|
149
|
+
similarity: number;
|
|
150
|
+
}>;
|
|
151
|
+
};
|
|
152
|
+
/** 分类修正:按关键词规则表将误分类的 fact 挪到正确 category */
|
|
153
|
+
reclassifyFacts(): number;
|
|
154
|
+
/** 执行完整 dream cycle:备份 → 压缩 → 合并 → 重分类 → 报告 */
|
|
155
|
+
runDream(options?: {
|
|
156
|
+
skipBackup?: boolean;
|
|
157
|
+
}): Promise<DreamReport>;
|
|
158
|
+
/** 压缩长 fact:content > 200 字且无 summary 的,自动提取前 2 句作为 summary */
|
|
159
|
+
compressLongFacts(): number;
|
|
160
|
+
/** 从 content 提取前 2 个完整句子(总长 ≤ 150 字) */
|
|
161
|
+
private extractSummary;
|
|
104
162
|
/** 获取数据库连接(供 FactRetriever 直接使用) */
|
|
105
163
|
get connection(): Database.Database;
|
|
106
164
|
/** 去重用分词:英文空格分词 + 中文 bigram */
|