@mastra/pinecone 0.1.6-alpha.1 → 0.1.6-alpha.4
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/.turbo/turbo-build.log +11 -6
- package/CHANGELOG.md +32 -0
- package/README.md +12 -12
- package/dist/_tsup-dts-rollup.d.cts +33 -0
- package/dist/_tsup-dts-rollup.d.ts +12 -8
- package/dist/index.cjs +184 -0
- package/dist/index.d.cts +1 -0
- package/dist/index.js +13 -8
- package/package.json +7 -3
- package/src/vector/filter.ts +5 -5
- package/src/vector/index.test.ts +416 -160
- package/src/vector/index.ts +28 -25
package/src/vector/index.ts
CHANGED
|
@@ -1,6 +1,13 @@
|
|
|
1
|
-
import type { Filter } from '@mastra/core/filter';
|
|
2
1
|
import { MastraVector } from '@mastra/core/vector';
|
|
3
|
-
import type {
|
|
2
|
+
import type {
|
|
3
|
+
QueryResult,
|
|
4
|
+
IndexStats,
|
|
5
|
+
CreateIndexParams,
|
|
6
|
+
UpsertVectorParams,
|
|
7
|
+
QueryVectorParams,
|
|
8
|
+
ParamsToArgs,
|
|
9
|
+
} from '@mastra/core/vector';
|
|
10
|
+
import type { VectorFilter } from '@mastra/core/vector/filter';
|
|
4
11
|
import { Pinecone } from '@pinecone-database/pinecone';
|
|
5
12
|
|
|
6
13
|
import { PineconeFilterTranslator } from './filter';
|
|
@@ -28,11 +35,11 @@ export class PineconeVector extends MastraVector {
|
|
|
28
35
|
}) ?? baseClient;
|
|
29
36
|
}
|
|
30
37
|
|
|
31
|
-
async createIndex(
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
38
|
+
async createIndex(...args: ParamsToArgs<CreateIndexParams>): Promise<void> {
|
|
39
|
+
const params = this.normalizeArgs<CreateIndexParams>('createIndex', args);
|
|
40
|
+
|
|
41
|
+
const { indexName, dimension, metric = 'cosine' } = params;
|
|
42
|
+
|
|
36
43
|
if (!Number.isInteger(dimension) || dimension <= 0) {
|
|
37
44
|
throw new Error('Dimension must be a positive integer');
|
|
38
45
|
}
|
|
@@ -49,12 +56,11 @@ export class PineconeVector extends MastraVector {
|
|
|
49
56
|
});
|
|
50
57
|
}
|
|
51
58
|
|
|
52
|
-
async upsert(
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
): Promise<string[]> {
|
|
59
|
+
async upsert(...args: ParamsToArgs<UpsertVectorParams>): Promise<string[]> {
|
|
60
|
+
const params = this.normalizeArgs<UpsertVectorParams>('upsert', args);
|
|
61
|
+
|
|
62
|
+
const { indexName, vectors, metadata, ids } = params;
|
|
63
|
+
|
|
58
64
|
const index = this.client.Index(indexName);
|
|
59
65
|
|
|
60
66
|
// Generate IDs if not provided
|
|
@@ -76,22 +82,19 @@ export class PineconeVector extends MastraVector {
|
|
|
76
82
|
return vectorIds;
|
|
77
83
|
}
|
|
78
84
|
|
|
79
|
-
transformFilter(filter?:
|
|
80
|
-
const
|
|
81
|
-
|
|
82
|
-
return translatedFilter;
|
|
85
|
+
transformFilter(filter?: VectorFilter) {
|
|
86
|
+
const translator = new PineconeFilterTranslator();
|
|
87
|
+
return translator.translate(filter);
|
|
83
88
|
}
|
|
84
89
|
|
|
85
|
-
async query(
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
topK
|
|
89
|
-
|
|
90
|
-
includeVector: boolean = false,
|
|
91
|
-
): Promise<QueryResult[]> {
|
|
90
|
+
async query(...args: ParamsToArgs<QueryVectorParams>): Promise<QueryResult[]> {
|
|
91
|
+
const params = this.normalizeArgs<QueryVectorParams>('query', args);
|
|
92
|
+
|
|
93
|
+
const { indexName, queryVector, topK = 10, filter, includeVector = false } = params;
|
|
94
|
+
|
|
92
95
|
const index = this.client.Index(indexName);
|
|
93
96
|
|
|
94
|
-
const translatedFilter = this.transformFilter(filter);
|
|
97
|
+
const translatedFilter = this.transformFilter(filter) ?? undefined;
|
|
95
98
|
|
|
96
99
|
const results = await index.query({
|
|
97
100
|
vector: queryVector,
|