@o-lang/semantic-doc-search 1.0.14 → 1.0.16
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/package.json +1 -1
- package/src/adapters/pgvectorAdapter.js +16 -11
package/package.json
CHANGED
|
@@ -13,27 +13,32 @@ class PgVectorAdapter {
|
|
|
13
13
|
});
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
// Convert JavaScript array to PostgreSQL array format
|
|
17
|
-
// [1.0, 2.0, 3.0] -> {1.0,2.0,3.0}
|
|
18
|
-
arrayToPgArray(arr) {
|
|
19
|
-
return `{${arr.join(',')}}`;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
16
|
async upsert({ id, vector, content, source, metadata = {} }) {
|
|
23
|
-
|
|
24
|
-
|
|
17
|
+
console.log('🔍 Adapter received vector type:', typeof vector);
|
|
18
|
+
console.log('🔍 Adapter received vector is array:', Array.isArray(vector));
|
|
19
|
+
if (Array.isArray(vector)) {
|
|
20
|
+
console.log('🔍 Adapter vector sample:', vector.slice(0, 3));
|
|
21
|
+
} else {
|
|
22
|
+
console.log('🔍 Adapter vector value:', vector);
|
|
23
|
+
}
|
|
25
24
|
|
|
26
25
|
await this.pool.query(
|
|
27
26
|
`INSERT INTO doc_embeddings (id, embedding, content, source, metadata)
|
|
28
27
|
VALUES ($1, $2::vector, $3, $4, $5::jsonb)
|
|
29
28
|
ON CONFLICT (id) DO UPDATE
|
|
30
29
|
SET embedding = $2::vector, content = $3, source = $4, metadata = $5::jsonb, updated_at = NOW()`,
|
|
31
|
-
[id,
|
|
30
|
+
[id, vector, content, source, JSON.stringify(metadata)]
|
|
32
31
|
);
|
|
33
32
|
}
|
|
34
33
|
|
|
35
34
|
async query(vector, topK = 5) {
|
|
36
|
-
|
|
35
|
+
console.log('🔍 Query received vector type:', typeof vector);
|
|
36
|
+
console.log('🔍 Query received vector is array:', Array.isArray(vector));
|
|
37
|
+
if (Array.isArray(vector)) {
|
|
38
|
+
console.log('🔍 Query vector sample:', vector.slice(0, 3));
|
|
39
|
+
} else {
|
|
40
|
+
console.log('🔍 Query vector value:', vector);
|
|
41
|
+
}
|
|
37
42
|
|
|
38
43
|
const res = await this.pool.query(
|
|
39
44
|
`SELECT id, content, source, metadata,
|
|
@@ -41,7 +46,7 @@ class PgVectorAdapter {
|
|
|
41
46
|
FROM doc_embeddings
|
|
42
47
|
ORDER BY embedding <=> $1::vector
|
|
43
48
|
LIMIT $2`,
|
|
44
|
-
[
|
|
49
|
+
[vector, topK]
|
|
45
50
|
);
|
|
46
51
|
|
|
47
52
|
return res.rows.map(row => ({
|