@danielzfliu/memory 1.0.2 → 2.0.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 +361 -265
- package/dist/config.d.ts +4 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +47 -0
- package/dist/config.js.map +1 -0
- package/dist/http-main.d.ts +2 -0
- package/dist/http-main.d.ts.map +1 -0
- package/dist/http-main.js +9 -0
- package/dist/http-main.js.map +1 -0
- package/dist/hybrid.d.ts +8 -0
- package/dist/hybrid.d.ts.map +1 -0
- package/dist/hybrid.js +46 -0
- package/dist/hybrid.js.map +1 -0
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -3
- package/dist/index.js.map +1 -1
- package/dist/main.d.ts +1 -0
- package/dist/main.js +6 -5
- package/dist/main.js.map +1 -1
- package/dist/mcp.d.ts +20 -0
- package/dist/mcp.d.ts.map +1 -0
- package/dist/mcp.js +170 -0
- package/dist/mcp.js.map +1 -0
- package/dist/rag.d.ts +1 -1
- package/dist/rag.d.ts.map +1 -1
- package/dist/rag.js +14 -7
- package/dist/rag.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +109 -12
- package/dist/server.js.map +1 -1
- package/dist/store.d.ts +10 -7
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +149 -49
- package/dist/store.js.map +1 -1
- package/dist/types.d.ts +2 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +0 -8
- package/dist/types.js.map +1 -1
- package/package.json +74 -62
package/dist/server.js
CHANGED
|
@@ -7,9 +7,22 @@ exports.createServer = createServer;
|
|
|
7
7
|
const express_1 = __importDefault(require("express"));
|
|
8
8
|
const store_1 = require("./store");
|
|
9
9
|
const rag_1 = require("./rag");
|
|
10
|
-
const
|
|
10
|
+
const config_1 = require("./config");
|
|
11
|
+
function isStringArray(value) {
|
|
12
|
+
return Array.isArray(value) && value.every((item) => typeof item === "string");
|
|
13
|
+
}
|
|
14
|
+
function isPositiveInteger(value) {
|
|
15
|
+
return Number.isInteger(value) && typeof value === "number" && value > 0;
|
|
16
|
+
}
|
|
17
|
+
function validateTitle(value, allowNull = false) {
|
|
18
|
+
if (value === undefined)
|
|
19
|
+
return undefined;
|
|
20
|
+
if (allowNull && value === null)
|
|
21
|
+
return null;
|
|
22
|
+
return typeof value === "string" ? value : undefined;
|
|
23
|
+
}
|
|
11
24
|
function createServer(config = {}) {
|
|
12
|
-
const resolvedConfig =
|
|
25
|
+
const resolvedConfig = (0, config_1.resolveConfig)(config);
|
|
13
26
|
const app = (0, express_1.default)();
|
|
14
27
|
app.use(express_1.default.json());
|
|
15
28
|
const store = new store_1.PieceStore(resolvedConfig);
|
|
@@ -34,15 +47,48 @@ function createServer(config = {}) {
|
|
|
34
47
|
}
|
|
35
48
|
next();
|
|
36
49
|
});
|
|
50
|
+
// GET /collections — List all collections
|
|
51
|
+
app.get("/collections", async (_req, res) => {
|
|
52
|
+
try {
|
|
53
|
+
const collections = await store.listCollections();
|
|
54
|
+
res.json({ collections });
|
|
55
|
+
}
|
|
56
|
+
catch (err) {
|
|
57
|
+
res.status(500).json({ error: String(err) });
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
// DELETE /collections/:name — Delete a collection
|
|
61
|
+
app.delete("/collections/:name", async (req, res) => {
|
|
62
|
+
try {
|
|
63
|
+
const { name } = req.params;
|
|
64
|
+
await store.deleteCollection(name);
|
|
65
|
+
res.status(204).send();
|
|
66
|
+
}
|
|
67
|
+
catch (err) {
|
|
68
|
+
res.status(500).json({ error: String(err) });
|
|
69
|
+
}
|
|
70
|
+
});
|
|
37
71
|
// POST /pieces — Add a piece
|
|
38
72
|
app.post("/pieces", async (req, res) => {
|
|
39
73
|
try {
|
|
40
|
-
const { content, tags } = req.body;
|
|
74
|
+
const { content, title, tags, collection } = req.body;
|
|
41
75
|
if (!content || typeof content !== "string") {
|
|
42
76
|
res.status(400).json({ error: "content (string) is required" });
|
|
43
77
|
return;
|
|
44
78
|
}
|
|
45
|
-
|
|
79
|
+
if (title !== undefined && typeof title !== "string") {
|
|
80
|
+
res.status(400).json({ error: "title must be a string when provided" });
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
if (tags !== undefined && !isStringArray(tags)) {
|
|
84
|
+
res.status(400).json({ error: "tags must be an array of strings when provided" });
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
if (collection !== undefined && typeof collection !== "string") {
|
|
88
|
+
res.status(400).json({ error: "collection must be a string when provided" });
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
const piece = await store.addPiece(content, tags ?? [], title, collection);
|
|
46
92
|
res.status(201).json(piece);
|
|
47
93
|
}
|
|
48
94
|
catch (err) {
|
|
@@ -53,7 +99,8 @@ function createServer(config = {}) {
|
|
|
53
99
|
app.get("/pieces/:id", async (req, res) => {
|
|
54
100
|
try {
|
|
55
101
|
const { id } = req.params;
|
|
56
|
-
const
|
|
102
|
+
const collection = typeof req.query.collection === "string" ? req.query.collection : undefined;
|
|
103
|
+
const piece = await store.getPiece(id, collection);
|
|
57
104
|
if (!piece) {
|
|
58
105
|
res.status(404).json({ error: "Piece not found" });
|
|
59
106
|
return;
|
|
@@ -68,8 +115,25 @@ function createServer(config = {}) {
|
|
|
68
115
|
app.put("/pieces/:id", async (req, res) => {
|
|
69
116
|
try {
|
|
70
117
|
const { id } = req.params;
|
|
71
|
-
const { content, tags } = req.body;
|
|
72
|
-
|
|
118
|
+
const { content, title, tags, collection } = req.body;
|
|
119
|
+
if (content !== undefined && typeof content !== "string") {
|
|
120
|
+
res.status(400).json({ error: "content must be a string when provided" });
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
const validatedTitle = validateTitle(title, true);
|
|
124
|
+
if (title !== undefined && validatedTitle === undefined) {
|
|
125
|
+
res.status(400).json({ error: "title must be a string or null when provided" });
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
if (tags !== undefined && !isStringArray(tags)) {
|
|
129
|
+
res.status(400).json({ error: "tags must be an array of strings when provided" });
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
if (collection !== undefined && typeof collection !== "string") {
|
|
133
|
+
res.status(400).json({ error: "collection must be a string when provided" });
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
const piece = await store.updatePiece(id, content, tags, validatedTitle, collection);
|
|
73
137
|
if (!piece) {
|
|
74
138
|
res.status(404).json({ error: "Piece not found" });
|
|
75
139
|
return;
|
|
@@ -84,7 +148,8 @@ function createServer(config = {}) {
|
|
|
84
148
|
app.delete("/pieces/:id", async (req, res) => {
|
|
85
149
|
try {
|
|
86
150
|
const { id } = req.params;
|
|
87
|
-
|
|
151
|
+
const collection = typeof req.query.collection === "string" ? req.query.collection : undefined;
|
|
152
|
+
await store.deletePiece(id, collection);
|
|
88
153
|
res.status(204).send();
|
|
89
154
|
}
|
|
90
155
|
catch (err) {
|
|
@@ -94,12 +159,28 @@ function createServer(config = {}) {
|
|
|
94
159
|
// POST /query — Semantic search
|
|
95
160
|
app.post("/query", async (req, res) => {
|
|
96
161
|
try {
|
|
97
|
-
const { query, tags, topK } = req.body;
|
|
162
|
+
const { query, tags, topK, useHybridSearch, collection } = req.body;
|
|
98
163
|
if (!query || typeof query !== "string") {
|
|
99
164
|
res.status(400).json({ error: "query (string) is required" });
|
|
100
165
|
return;
|
|
101
166
|
}
|
|
102
|
-
|
|
167
|
+
if (tags !== undefined && !isStringArray(tags)) {
|
|
168
|
+
res.status(400).json({ error: "tags must be an array of strings when provided" });
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
171
|
+
if (topK !== undefined && !isPositiveInteger(topK)) {
|
|
172
|
+
res.status(400).json({ error: "topK must be a positive integer when provided" });
|
|
173
|
+
return;
|
|
174
|
+
}
|
|
175
|
+
if (useHybridSearch !== undefined && typeof useHybridSearch !== "boolean") {
|
|
176
|
+
res.status(400).json({ error: "useHybridSearch must be a boolean when provided" });
|
|
177
|
+
return;
|
|
178
|
+
}
|
|
179
|
+
if (collection !== undefined && typeof collection !== "string") {
|
|
180
|
+
res.status(400).json({ error: "collection must be a string when provided" });
|
|
181
|
+
return;
|
|
182
|
+
}
|
|
183
|
+
const results = await store.queryPieces(query, { tags, topK, useHybridSearch }, collection);
|
|
103
184
|
res.json(results);
|
|
104
185
|
}
|
|
105
186
|
catch (err) {
|
|
@@ -109,12 +190,28 @@ function createServer(config = {}) {
|
|
|
109
190
|
// POST /rag — Full RAG query
|
|
110
191
|
app.post("/rag", async (req, res) => {
|
|
111
192
|
try {
|
|
112
|
-
const { query, tags, topK } = req.body;
|
|
193
|
+
const { query, tags, topK, useHybridSearch, collection } = req.body;
|
|
113
194
|
if (!query || typeof query !== "string") {
|
|
114
195
|
res.status(400).json({ error: "query (string) is required" });
|
|
115
196
|
return;
|
|
116
197
|
}
|
|
117
|
-
|
|
198
|
+
if (tags !== undefined && !isStringArray(tags)) {
|
|
199
|
+
res.status(400).json({ error: "tags must be an array of strings when provided" });
|
|
200
|
+
return;
|
|
201
|
+
}
|
|
202
|
+
if (topK !== undefined && !isPositiveInteger(topK)) {
|
|
203
|
+
res.status(400).json({ error: "topK must be a positive integer when provided" });
|
|
204
|
+
return;
|
|
205
|
+
}
|
|
206
|
+
if (useHybridSearch !== undefined && typeof useHybridSearch !== "boolean") {
|
|
207
|
+
res.status(400).json({ error: "useHybridSearch must be a boolean when provided" });
|
|
208
|
+
return;
|
|
209
|
+
}
|
|
210
|
+
if (collection !== undefined && typeof collection !== "string") {
|
|
211
|
+
res.status(400).json({ error: "collection must be a string when provided" });
|
|
212
|
+
return;
|
|
213
|
+
}
|
|
214
|
+
const result = await rag.query(query, { tags, topK, useHybridSearch }, collection);
|
|
118
215
|
res.json(result);
|
|
119
216
|
}
|
|
120
217
|
catch (err) {
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/dist/store.d.ts
CHANGED
|
@@ -2,15 +2,18 @@ import { Piece, MemoryConfig, QueryOptions, QueryResult } from "./types";
|
|
|
2
2
|
export declare class PieceStore {
|
|
3
3
|
private readonly chromaClient;
|
|
4
4
|
private readonly embeddingClient;
|
|
5
|
-
private
|
|
5
|
+
private readonly collectionCache;
|
|
6
|
+
private initialized;
|
|
6
7
|
private readonly config;
|
|
7
8
|
constructor(config?: MemoryConfig);
|
|
8
9
|
init(): Promise<void>;
|
|
9
|
-
private
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
10
|
+
private resolveCollection;
|
|
11
|
+
listCollections(): Promise<string[]>;
|
|
12
|
+
deleteCollection(name: string): Promise<void>;
|
|
13
|
+
addPiece(content: string, tags: string[], title?: string, collection?: string): Promise<Piece>;
|
|
14
|
+
getPiece(id: string, collection?: string): Promise<Piece | null>;
|
|
15
|
+
deletePiece(id: string, collection?: string): Promise<void>;
|
|
16
|
+
updatePiece(id: string, content?: string, tags?: string[], title?: string | null, collection?: string): Promise<Piece | null>;
|
|
17
|
+
queryPieces(query: string, options?: QueryOptions, collection?: string): Promise<QueryResult[]>;
|
|
15
18
|
}
|
|
16
19
|
//# sourceMappingURL=store.d.ts.map
|
package/dist/store.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAIA,OAAO,EACH,KAAK,EACL,YAAY,EACZ,YAAY,EACZ,WAAW,EACd,MAAM,SAAS,CAAC;AAwEjB,qBAAa,UAAU;IACnB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;IAClD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAsC;IACtE,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyB;gBAEpC,MAAM,GAAE,YAAiB;IAS/B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YASb,iBAAiB;IAgBzB,eAAe,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAOpC,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ7C,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAsB9F,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;IAmBhE,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK3D,WAAW,CACb,EAAE,EAAE,MAAM,EACV,OAAO,CAAC,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,MAAM,EAAE,EACf,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,EACrB,UAAU,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;IAyClB,WAAW,CACb,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,YAAiB,EAC1B,UAAU,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,WAAW,EAAE,CAAC;CAyE5B"}
|
package/dist/store.js
CHANGED
|
@@ -4,105 +4,183 @@ exports.PieceStore = void 0;
|
|
|
4
4
|
const chromadb_1 = require("chromadb");
|
|
5
5
|
const uuid_1 = require("uuid");
|
|
6
6
|
const embeddings_1 = require("./embeddings");
|
|
7
|
-
const
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
const hybrid_1 = require("./hybrid");
|
|
8
|
+
const config_1 = require("./config");
|
|
9
|
+
function toTagMetadataKey(tag) {
|
|
10
|
+
return `tag_${Buffer.from(tag, "utf8").toString("base64url")}`;
|
|
11
|
+
}
|
|
12
|
+
function toChromaMetadata(tags, title) {
|
|
13
|
+
const normalizedTags = normalizeTags(tags);
|
|
14
|
+
const normalizedTitle = normalizeTitle(title);
|
|
15
|
+
return {
|
|
16
|
+
tags: JSON.stringify(normalizedTags),
|
|
17
|
+
...Object.fromEntries(normalizedTags.map((tag) => [toTagMetadataKey(tag), true])),
|
|
18
|
+
...(normalizedTitle !== undefined ? { title: normalizedTitle } : {}),
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
function normalizeTags(value) {
|
|
22
|
+
if (Array.isArray(value)) {
|
|
23
|
+
return value.filter((tag) => typeof tag === "string");
|
|
24
|
+
}
|
|
25
|
+
if (typeof value === "string") {
|
|
26
|
+
try {
|
|
27
|
+
const parsed = JSON.parse(value);
|
|
28
|
+
return Array.isArray(parsed)
|
|
29
|
+
? parsed.filter((tag) => typeof tag === "string")
|
|
30
|
+
: [];
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
return [];
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return [];
|
|
37
|
+
}
|
|
38
|
+
function normalizeTitle(value) {
|
|
39
|
+
return typeof value === "string" ? value : undefined;
|
|
10
40
|
}
|
|
11
41
|
function parseTags(metadata) {
|
|
12
|
-
return metadata?.tags
|
|
42
|
+
return normalizeTags(metadata?.tags);
|
|
43
|
+
}
|
|
44
|
+
function parseTitle(metadata) {
|
|
45
|
+
return normalizeTitle(metadata?.title);
|
|
46
|
+
}
|
|
47
|
+
function toEmbeddingText(content, title) {
|
|
48
|
+
return title ? `${title}\n\n${content}` : content;
|
|
49
|
+
}
|
|
50
|
+
function buildTagWhereClause(tags) {
|
|
51
|
+
if (tags.length === 0) {
|
|
52
|
+
return undefined;
|
|
53
|
+
}
|
|
54
|
+
if (tags.length === 1) {
|
|
55
|
+
return { [toTagMetadataKey(tags[0])]: true };
|
|
56
|
+
}
|
|
57
|
+
return {
|
|
58
|
+
$and: tags.map((tag) => ({
|
|
59
|
+
[toTagMetadataKey(tag)]: true,
|
|
60
|
+
})),
|
|
61
|
+
};
|
|
13
62
|
}
|
|
14
63
|
class PieceStore {
|
|
15
64
|
chromaClient;
|
|
16
65
|
embeddingClient;
|
|
17
|
-
|
|
66
|
+
collectionCache = new Map();
|
|
67
|
+
initialized = false;
|
|
18
68
|
config;
|
|
19
69
|
constructor(config = {}) {
|
|
20
|
-
this.config =
|
|
70
|
+
this.config = (0, config_1.resolveConfig)(config);
|
|
21
71
|
this.chromaClient = new chromadb_1.ChromaClient({ path: this.config.chromaUrl });
|
|
22
72
|
this.embeddingClient = new embeddings_1.EmbeddingClient(this.config.ollamaUrl, this.config.embeddingModel);
|
|
23
73
|
}
|
|
24
74
|
async init() {
|
|
25
|
-
|
|
75
|
+
const collection = await this.chromaClient.getOrCreateCollection({
|
|
26
76
|
name: this.config.collectionName,
|
|
27
77
|
metadata: { "hnsw:space": "cosine" },
|
|
28
78
|
});
|
|
79
|
+
this.collectionCache.set(this.config.collectionName, collection);
|
|
80
|
+
this.initialized = true;
|
|
29
81
|
}
|
|
30
|
-
|
|
31
|
-
if (!this.
|
|
82
|
+
async resolveCollection(name) {
|
|
83
|
+
if (!this.initialized) {
|
|
32
84
|
throw new Error("PieceStore not initialized. Call init() first.");
|
|
33
85
|
}
|
|
34
|
-
|
|
86
|
+
const collectionName = name ?? this.config.collectionName;
|
|
87
|
+
let collection = this.collectionCache.get(collectionName);
|
|
88
|
+
if (!collection) {
|
|
89
|
+
collection = await this.chromaClient.getOrCreateCollection({
|
|
90
|
+
name: collectionName,
|
|
91
|
+
metadata: { "hnsw:space": "cosine" },
|
|
92
|
+
});
|
|
93
|
+
this.collectionCache.set(collectionName, collection);
|
|
94
|
+
}
|
|
95
|
+
return collection;
|
|
35
96
|
}
|
|
36
|
-
async
|
|
37
|
-
|
|
97
|
+
async listCollections() {
|
|
98
|
+
if (!this.initialized) {
|
|
99
|
+
throw new Error("PieceStore not initialized. Call init() first.");
|
|
100
|
+
}
|
|
101
|
+
return this.chromaClient.listCollections();
|
|
102
|
+
}
|
|
103
|
+
async deleteCollection(name) {
|
|
104
|
+
if (!this.initialized) {
|
|
105
|
+
throw new Error("PieceStore not initialized. Call init() first.");
|
|
106
|
+
}
|
|
107
|
+
await this.chromaClient.deleteCollection({ name });
|
|
108
|
+
this.collectionCache.delete(name);
|
|
109
|
+
}
|
|
110
|
+
async addPiece(content, tags, title, collection) {
|
|
111
|
+
const col = await this.resolveCollection(collection);
|
|
38
112
|
const id = (0, uuid_1.v4)();
|
|
39
|
-
const embedding = await this.embeddingClient.embed(content);
|
|
40
|
-
await
|
|
113
|
+
const embedding = await this.embeddingClient.embed(toEmbeddingText(content, title));
|
|
114
|
+
await col.add({
|
|
41
115
|
ids: [id],
|
|
42
116
|
embeddings: [embedding],
|
|
43
117
|
documents: [content],
|
|
44
|
-
metadatas: [toChromaMetadata(tags)],
|
|
118
|
+
metadatas: [toChromaMetadata(tags, title)],
|
|
45
119
|
});
|
|
46
|
-
return {
|
|
120
|
+
return {
|
|
121
|
+
id,
|
|
122
|
+
content,
|
|
123
|
+
...(title !== undefined ? { title } : {}),
|
|
124
|
+
tags,
|
|
125
|
+
};
|
|
47
126
|
}
|
|
48
|
-
async getPiece(id) {
|
|
49
|
-
const
|
|
50
|
-
const result = await
|
|
127
|
+
async getPiece(id, collection) {
|
|
128
|
+
const col = await this.resolveCollection(collection);
|
|
129
|
+
const result = await col.get({
|
|
51
130
|
ids: [id],
|
|
52
131
|
include: [chromadb_1.IncludeEnum.Documents, chromadb_1.IncludeEnum.Metadatas],
|
|
53
132
|
});
|
|
54
133
|
if (!result.ids.length)
|
|
55
134
|
return null;
|
|
135
|
+
const title = parseTitle(result.metadatas[0]);
|
|
56
136
|
return {
|
|
57
137
|
id: result.ids[0],
|
|
58
138
|
content: result.documents[0] ?? "",
|
|
139
|
+
...(title !== undefined ? { title } : {}),
|
|
59
140
|
tags: parseTags(result.metadatas[0]),
|
|
60
141
|
};
|
|
61
142
|
}
|
|
62
|
-
async deletePiece(id) {
|
|
63
|
-
const
|
|
64
|
-
await
|
|
143
|
+
async deletePiece(id, collection) {
|
|
144
|
+
const col = await this.resolveCollection(collection);
|
|
145
|
+
await col.delete({ ids: [id] });
|
|
65
146
|
}
|
|
66
|
-
async updatePiece(id, content, tags) {
|
|
67
|
-
const
|
|
68
|
-
const existing = await this.getPiece(id);
|
|
147
|
+
async updatePiece(id, content, tags, title, collection) {
|
|
148
|
+
const col = await this.resolveCollection(collection);
|
|
149
|
+
const existing = await this.getPiece(id, collection);
|
|
69
150
|
if (!existing)
|
|
70
151
|
return null;
|
|
71
152
|
const newContent = content ?? existing.content;
|
|
72
153
|
const newTags = tags ?? existing.tags;
|
|
154
|
+
const newTitle = title === undefined ? existing.title : title ?? undefined;
|
|
73
155
|
const updateData = {
|
|
74
156
|
ids: [id],
|
|
75
|
-
metadatas: [toChromaMetadata(newTags)],
|
|
157
|
+
metadatas: [toChromaMetadata(newTags, newTitle)],
|
|
76
158
|
};
|
|
77
159
|
if (content !== undefined) {
|
|
78
160
|
updateData.documents = [newContent];
|
|
161
|
+
}
|
|
162
|
+
if (content !== undefined || title !== undefined) {
|
|
79
163
|
updateData.embeddings = [
|
|
80
|
-
await this.embeddingClient.embed(newContent),
|
|
164
|
+
await this.embeddingClient.embed(toEmbeddingText(newContent, newTitle)),
|
|
81
165
|
];
|
|
82
166
|
}
|
|
83
|
-
await
|
|
84
|
-
return {
|
|
167
|
+
await col.update(updateData);
|
|
168
|
+
return {
|
|
169
|
+
id,
|
|
170
|
+
content: newContent,
|
|
171
|
+
...(newTitle !== undefined ? { title: newTitle } : {}),
|
|
172
|
+
tags: newTags,
|
|
173
|
+
};
|
|
85
174
|
}
|
|
86
|
-
async queryPieces(query, options = {}) {
|
|
87
|
-
const
|
|
88
|
-
const { tags, topK = 10 } = options;
|
|
175
|
+
async queryPieces(query, options = {}, collection) {
|
|
176
|
+
const col = await this.resolveCollection(collection);
|
|
177
|
+
const { tags, topK = 10, useHybridSearch = false } = options;
|
|
89
178
|
const queryEmbedding = await this.embeddingClient.embed(query);
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
whereClause = { tags: { $contains: tags[0] } };
|
|
94
|
-
}
|
|
95
|
-
else {
|
|
96
|
-
whereClause = {
|
|
97
|
-
$and: tags.map((tag) => ({
|
|
98
|
-
tags: { $contains: tag },
|
|
99
|
-
})),
|
|
100
|
-
};
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
const results = await collection.query({
|
|
179
|
+
const whereClause = buildTagWhereClause(tags ?? []);
|
|
180
|
+
const fetchK = useHybridSearch ? topK * 3 : topK;
|
|
181
|
+
const results = await col.query({
|
|
104
182
|
queryEmbeddings: [queryEmbedding],
|
|
105
|
-
nResults:
|
|
183
|
+
nResults: fetchK,
|
|
106
184
|
where: whereClause,
|
|
107
185
|
include: [
|
|
108
186
|
chromadb_1.IncludeEnum.Documents,
|
|
@@ -110,22 +188,44 @@ class PieceStore {
|
|
|
110
188
|
chromadb_1.IncludeEnum.Distances,
|
|
111
189
|
],
|
|
112
190
|
});
|
|
113
|
-
const queryResults = [];
|
|
114
191
|
const ids = results.ids[0] ?? [];
|
|
115
192
|
const documents = results.documents[0] ?? [];
|
|
116
193
|
const metadatas = results.metadatas[0] ?? [];
|
|
117
194
|
const distances = results.distances?.[0] ?? [];
|
|
195
|
+
const queryResults = [];
|
|
118
196
|
for (let i = 0; i < ids.length; i++) {
|
|
197
|
+
const title = parseTitle(metadatas[i]);
|
|
119
198
|
queryResults.push({
|
|
120
199
|
piece: {
|
|
121
200
|
id: ids[i],
|
|
122
201
|
content: documents[i] ?? "",
|
|
202
|
+
...(title !== undefined ? { title } : {}),
|
|
123
203
|
tags: parseTags(metadatas[i]),
|
|
124
204
|
},
|
|
125
205
|
score: 1 - (distances[i] ?? 0), // cosine distance → similarity
|
|
126
206
|
});
|
|
127
207
|
}
|
|
128
|
-
|
|
208
|
+
if (!useHybridSearch) {
|
|
209
|
+
return queryResults;
|
|
210
|
+
}
|
|
211
|
+
// ── Hybrid: RRF merge of vector ranking + keyword ranking ────────
|
|
212
|
+
const queryTokens = (0, hybrid_1.tokenize)(query);
|
|
213
|
+
const vectorRanking = queryResults.map((r) => ({
|
|
214
|
+
item: r,
|
|
215
|
+
score: r.score,
|
|
216
|
+
}));
|
|
217
|
+
const keywordRanking = queryResults
|
|
218
|
+
.map((r) => ({
|
|
219
|
+
item: r,
|
|
220
|
+
score: (0, hybrid_1.keywordScore)(queryTokens, toEmbeddingText(r.piece.content, r.piece.title)),
|
|
221
|
+
}))
|
|
222
|
+
.filter((r) => r.score > 0)
|
|
223
|
+
.sort((a, b) => b.score - a.score);
|
|
224
|
+
const fused = (0, hybrid_1.reciprocalRankFusion)([vectorRanking, keywordRanking], (r) => r.piece.id);
|
|
225
|
+
return fused.slice(0, topK).map((f) => ({
|
|
226
|
+
...f.item,
|
|
227
|
+
score: f.score,
|
|
228
|
+
}));
|
|
129
229
|
}
|
|
130
230
|
}
|
|
131
231
|
exports.PieceStore = PieceStore;
|
package/dist/store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":";;;AAAA,uCAAiE;AACjE,+BAAoC;AACpC,6CAA+C;AAC/C,
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export interface Piece {
|
|
2
2
|
id: string;
|
|
3
3
|
content: string;
|
|
4
|
+
title?: string;
|
|
4
5
|
tags: string[];
|
|
5
6
|
}
|
|
6
7
|
export interface MemoryConfig {
|
|
@@ -10,10 +11,10 @@ export interface MemoryConfig {
|
|
|
10
11
|
generationModel?: string;
|
|
11
12
|
collectionName?: string;
|
|
12
13
|
}
|
|
13
|
-
export declare const DEFAULT_MEMORY_CONFIG: Required<MemoryConfig>;
|
|
14
14
|
export interface QueryOptions {
|
|
15
15
|
tags?: string[];
|
|
16
16
|
topK?: number;
|
|
17
|
+
useHybridSearch?: boolean;
|
|
17
18
|
}
|
|
18
19
|
export interface QueryResult {
|
|
19
20
|
piece: Piece;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,KAAK;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,KAAK;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,YAAY;IACzB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,WAAW;IACxB,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,SAAS;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,WAAW,EAAE,CAAC;CAC1B"}
|
package/dist/types.js
CHANGED
|
@@ -1,11 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DEFAULT_MEMORY_CONFIG = void 0;
|
|
4
|
-
exports.DEFAULT_MEMORY_CONFIG = {
|
|
5
|
-
chromaUrl: "http://localhost:8000",
|
|
6
|
-
ollamaUrl: "http://localhost:11434",
|
|
7
|
-
embeddingModel: "nomic-embed-text-v2-moe",
|
|
8
|
-
generationModel: "llama3.2",
|
|
9
|
-
collectionName: "pieces",
|
|
10
|
-
};
|
|
11
3
|
//# sourceMappingURL=types.js.map
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|