@khoinguyen2002/doc-mcp 1.0.1 → 1.0.2
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/db/vector.d.ts.map +1 -1
- package/dist/db/vector.js +28 -22
- package/dist/tools/knowledgeTools.d.ts.map +1 -1
- package/dist/tools/knowledgeTools.js +1 -0
- package/package.json +1 -1
- package/src/db/vector.ts +28 -23
- package/src/tools/knowledgeTools.ts +12 -10
package/dist/db/vector.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vector.d.ts","sourceRoot":"","sources":["../../src/db/vector.ts"],"names":[],"mappings":"AAOA,wBAAsB,YAAY,kBAqCjC;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAwB/D;AAED,wBAAsB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA0B7H;AAED,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,MAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"vector.d.ts","sourceRoot":"","sources":["../../src/db/vector.ts"],"names":[],"mappings":"AAOA,wBAAsB,YAAY,kBAqCjC;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAwB/D;AAED,wBAAsB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA0B7H;AAED,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,MAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAiC3G;AAED,wBAAsB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAa3F;AAED,wBAAsB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAanG;AAED,wBAAsB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAwBlG"}
|
package/dist/db/vector.js
CHANGED
|
@@ -24,7 +24,7 @@ export async function initVectorDB() {
|
|
|
24
24
|
},
|
|
25
25
|
});
|
|
26
26
|
await client.createPayloadIndex(COLLECTION_NAME, {
|
|
27
|
-
field_name: "
|
|
27
|
+
field_name: "folderId",
|
|
28
28
|
field_schema: "keyword",
|
|
29
29
|
});
|
|
30
30
|
await client.createPayloadIndex(COLLECTION_NAME, {
|
|
@@ -90,28 +90,34 @@ export async function searchProjectMemory(folderId, query, topK = 3) {
|
|
|
90
90
|
await initVectorDB();
|
|
91
91
|
if (!client)
|
|
92
92
|
throw new Error("Qdrant not initialized");
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
93
|
+
try {
|
|
94
|
+
const queryVector = await embedText(query);
|
|
95
|
+
const results = await client.search(COLLECTION_NAME, {
|
|
96
|
+
vector: queryVector,
|
|
97
|
+
limit: topK,
|
|
98
|
+
with_payload: true,
|
|
99
|
+
filter: {
|
|
100
|
+
must: [
|
|
101
|
+
{
|
|
102
|
+
key: "folderId",
|
|
103
|
+
match: {
|
|
104
|
+
value: folderId
|
|
105
|
+
}
|
|
104
106
|
}
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
}
|
|
107
|
+
]
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
// Map to match LanceDB format expected by other tools
|
|
111
|
+
return results.map(r => ({
|
|
112
|
+
id: r.id,
|
|
113
|
+
vector: r.vector,
|
|
114
|
+
...r.payload
|
|
115
|
+
}));
|
|
116
|
+
}
|
|
117
|
+
catch (err) {
|
|
118
|
+
console.error("Qdrant search error:", err.message);
|
|
119
|
+
return [];
|
|
120
|
+
}
|
|
115
121
|
}
|
|
116
122
|
export async function deleteProjectDocument(folderId, fileId) {
|
|
117
123
|
await initVectorDB();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"knowledgeTools.d.ts","sourceRoot":"","sources":["../../src/tools/knowledgeTools.ts"],"names":[],"mappings":"AAIA,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM;;;;;;;;GAmBlD;AAED,wBAAsB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,MAAU;;;;;;;;
|
|
1
|
+
{"version":3,"file":"knowledgeTools.d.ts","sourceRoot":"","sources":["../../src/tools/knowledgeTools.ts"],"names":[],"mappings":"AAIA,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM;;;;;;;;GAmBlD;AAED,wBAAsB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,MAAU;;;;;;;;GAoCpE"}
|
package/package.json
CHANGED
package/src/db/vector.ts
CHANGED
|
@@ -28,7 +28,7 @@ export async function initVectorDB() {
|
|
|
28
28
|
},
|
|
29
29
|
});
|
|
30
30
|
await client.createPayloadIndex(COLLECTION_NAME, {
|
|
31
|
-
field_name: "
|
|
31
|
+
field_name: "folderId",
|
|
32
32
|
field_schema: "keyword",
|
|
33
33
|
});
|
|
34
34
|
await client.createPayloadIndex(COLLECTION_NAME, {
|
|
@@ -102,30 +102,35 @@ export async function searchProjectMemory(folderId: string, query: string, topK:
|
|
|
102
102
|
await initVectorDB();
|
|
103
103
|
if (!client) throw new Error("Qdrant not initialized");
|
|
104
104
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
105
|
+
try {
|
|
106
|
+
const queryVector = await embedText(query);
|
|
107
|
+
|
|
108
|
+
const results = await client.search(COLLECTION_NAME, {
|
|
109
|
+
vector: queryVector,
|
|
110
|
+
limit: topK,
|
|
111
|
+
with_payload: true,
|
|
112
|
+
filter: {
|
|
113
|
+
must: [
|
|
114
|
+
{
|
|
115
|
+
key: "folderId",
|
|
116
|
+
match: {
|
|
117
|
+
value: folderId
|
|
118
|
+
}
|
|
117
119
|
}
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
}
|
|
121
|
-
});
|
|
120
|
+
]
|
|
121
|
+
}
|
|
122
|
+
});
|
|
122
123
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
124
|
+
// Map to match LanceDB format expected by other tools
|
|
125
|
+
return results.map(r => ({
|
|
126
|
+
id: r.id,
|
|
127
|
+
vector: r.vector,
|
|
128
|
+
...r.payload
|
|
129
|
+
}));
|
|
130
|
+
} catch (err: any) {
|
|
131
|
+
console.error("Qdrant search error:", err.message);
|
|
132
|
+
return [];
|
|
133
|
+
}
|
|
129
134
|
}
|
|
130
135
|
|
|
131
136
|
export async function deleteProjectDocument(folderId: string, fileId: string): Promise<void> {
|
|
@@ -44,16 +44,18 @@ export async function searchKnowledge(query: string, topK: number = 3) {
|
|
|
44
44
|
|
|
45
45
|
return {
|
|
46
46
|
success: true,
|
|
47
|
-
results: results
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
47
|
+
results: results
|
|
48
|
+
.map((r: any) => {
|
|
49
|
+
let title = "Unknown Source";
|
|
50
|
+
if (r.metadata) {
|
|
51
|
+
try {
|
|
52
|
+
const metaObj = JSON.parse(r.metadata);
|
|
53
|
+
if (metaObj.title) title = metaObj.title;
|
|
54
|
+
} catch (e) {}
|
|
55
|
+
}
|
|
56
|
+
return `[File: ${title} | File ID: ${r.file_id || "N/A"}]\n${r.text}`;
|
|
57
|
+
})
|
|
58
|
+
.join("\n\n---\n\n"),
|
|
57
59
|
};
|
|
58
60
|
} catch (err: any) {
|
|
59
61
|
return { success: false, error: `Failed to search: ${err.message}` };
|