@mastra/upstash 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 +20 -1
- package/dist/_tsup-dts-rollup.d.cts +133 -0
- package/dist/_tsup-dts-rollup.d.ts +12 -8
- package/dist/index.cjs +480 -0
- package/dist/index.d.cts +3 -0
- package/dist/index.js +8 -4
- package/package.json +9 -5
- package/src/storage/upstash.test.ts +332 -330
- package/src/vector/filter.ts +5 -5
- package/src/vector/index.test.ts +440 -150
- package/src/vector/index.ts +20 -21
package/src/vector/index.ts
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
|
-
import type { Filter } from '@mastra/core/filter';
|
|
2
1
|
import { MastraVector } from '@mastra/core/vector';
|
|
3
|
-
import type {
|
|
2
|
+
import type {
|
|
3
|
+
CreateIndexParams,
|
|
4
|
+
ParamsToArgs,
|
|
5
|
+
QueryResult,
|
|
6
|
+
QueryVectorParams,
|
|
7
|
+
UpsertVectorParams,
|
|
8
|
+
} from '@mastra/core/vector';
|
|
9
|
+
import type { VectorFilter } from '@mastra/core/vector/filter';
|
|
4
10
|
import { Index } from '@upstash/vector';
|
|
5
11
|
|
|
6
12
|
import { UpstashFilterTranslator } from './filter';
|
|
@@ -16,12 +22,11 @@ export class UpstashVector extends MastraVector {
|
|
|
16
22
|
});
|
|
17
23
|
}
|
|
18
24
|
|
|
19
|
-
async upsert(
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
): Promise<string[]> {
|
|
25
|
+
async upsert(...args: ParamsToArgs<UpsertVectorParams>): Promise<string[]> {
|
|
26
|
+
const params = this.normalizeArgs<UpsertVectorParams>('upsert', args);
|
|
27
|
+
|
|
28
|
+
const { indexName, vectors, metadata, ids } = params;
|
|
29
|
+
|
|
25
30
|
const generatedIds = ids || vectors.map(() => crypto.randomUUID());
|
|
26
31
|
|
|
27
32
|
const points = vectors.map((vector, index) => ({
|
|
@@ -36,26 +41,20 @@ export class UpstashVector extends MastraVector {
|
|
|
36
41
|
return generatedIds;
|
|
37
42
|
}
|
|
38
43
|
|
|
39
|
-
transformFilter(filter?:
|
|
44
|
+
transformFilter(filter?: VectorFilter) {
|
|
40
45
|
const translator = new UpstashFilterTranslator();
|
|
41
46
|
return translator.translate(filter);
|
|
42
47
|
}
|
|
43
48
|
|
|
44
|
-
async createIndex(
|
|
45
|
-
_indexName: string,
|
|
46
|
-
_dimension: number,
|
|
47
|
-
_metric: 'cosine' | 'euclidean' | 'dotproduct' = 'cosine',
|
|
48
|
-
): Promise<void> {
|
|
49
|
+
async createIndex(..._args: ParamsToArgs<CreateIndexParams>): Promise<void> {
|
|
49
50
|
console.log('No need to call createIndex for Upstash');
|
|
50
51
|
}
|
|
51
52
|
|
|
52
|
-
async query(
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
topK
|
|
56
|
-
|
|
57
|
-
includeVector: boolean = false,
|
|
58
|
-
): Promise<QueryResult[]> {
|
|
53
|
+
async query(...args: ParamsToArgs<QueryVectorParams>): Promise<QueryResult[]> {
|
|
54
|
+
const params = this.normalizeArgs<QueryVectorParams>('query', args);
|
|
55
|
+
|
|
56
|
+
const { indexName, queryVector, topK = 10, filter, includeVector = false } = params;
|
|
57
|
+
|
|
59
58
|
const ns = this.client.namespace(indexName);
|
|
60
59
|
|
|
61
60
|
const filterString = this.transformFilter(filter);
|