@memberjunction/ai-vectordb 0.9.3
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/generic/VectorDBBase.d.ts +21 -0
- package/dist/generic/VectorDBBase.js +15 -0
- package/dist/generic/VectorDBBase.js.map +1 -0
- package/dist/generic/query.types.d.ts +25 -0
- package/dist/generic/query.types.js +3 -0
- package/dist/generic/query.types.js.map +1 -0
- package/dist/generic/record.d.ts +49 -0
- package/dist/generic/record.js +3 -0
- package/dist/generic/record.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -0
- package/package.json +29 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { BaseRequestParams, BaseResponse, CreateIndexParams, EditIndexParams, IndexList, UpdateOptions, VectorRecord } from "./record";
|
|
2
|
+
import { QueryOptions } from './query.types';
|
|
3
|
+
export declare abstract class VectorDBBase {
|
|
4
|
+
private _apiKey;
|
|
5
|
+
protected get apiKey(): string;
|
|
6
|
+
constructor(apiKey: string);
|
|
7
|
+
abstract listIndexes(): IndexList | Promise<IndexList>;
|
|
8
|
+
abstract getIndex(params: BaseRequestParams): BaseResponse | Promise<BaseResponse>;
|
|
9
|
+
abstract createIndex(params: CreateIndexParams): BaseResponse | Promise<BaseResponse>;
|
|
10
|
+
abstract deleteIndex(params: BaseRequestParams): BaseResponse | Promise<BaseResponse>;
|
|
11
|
+
abstract editIndex(params: EditIndexParams): BaseResponse | Promise<BaseResponse>;
|
|
12
|
+
abstract queryIndex(params: QueryOptions): BaseResponse | Promise<BaseResponse>;
|
|
13
|
+
abstract createRecord(record: VectorRecord): BaseResponse | Promise<BaseResponse>;
|
|
14
|
+
abstract createRecords(record: VectorRecord[]): BaseResponse | Promise<BaseResponse>;
|
|
15
|
+
abstract getRecord(param: BaseRequestParams): BaseResponse | Promise<BaseResponse>;
|
|
16
|
+
abstract getRecords(params: BaseRequestParams): BaseResponse | Promise<BaseResponse>;
|
|
17
|
+
abstract updateRecord(record: UpdateOptions): BaseResponse | Promise<BaseResponse>;
|
|
18
|
+
abstract updateRecords(records: UpdateOptions): BaseResponse | Promise<BaseResponse>;
|
|
19
|
+
abstract deleteRecord(record: VectorRecord): BaseResponse | Promise<BaseResponse>;
|
|
20
|
+
abstract deleteRecords(records: VectorRecord[]): BaseResponse | Promise<BaseResponse>;
|
|
21
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.VectorDBBase = void 0;
|
|
4
|
+
class VectorDBBase {
|
|
5
|
+
get apiKey() {
|
|
6
|
+
return this._apiKey;
|
|
7
|
+
}
|
|
8
|
+
constructor(apiKey) {
|
|
9
|
+
if (!apiKey || apiKey.trim().length === 0)
|
|
10
|
+
throw new Error('API key cannot be empty');
|
|
11
|
+
this._apiKey = apiKey;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
exports.VectorDBBase = VectorDBBase;
|
|
15
|
+
//# sourceMappingURL=VectorDBBase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VectorDBBase.js","sourceRoot":"","sources":["../../src/generic/VectorDBBase.ts"],"names":[],"mappings":";;;AAGA,MAAsB,YAAY;IAK9B,IAAc,MAAM;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,YAAa,MAAc;QACvB,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAE/C,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IAC1B,CAAC;CAkBJ;AAhCD,oCAgCC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { RecordMetadata, RecordValues, VectorRecord } from './record';
|
|
2
|
+
export type QueryParamsBase = {
|
|
3
|
+
topK: number;
|
|
4
|
+
includeValues?: boolean;
|
|
5
|
+
includeMetadata?: boolean;
|
|
6
|
+
filter?: object;
|
|
7
|
+
};
|
|
8
|
+
export type QueryByRecordId = QueryParamsBase & {
|
|
9
|
+
id: string;
|
|
10
|
+
};
|
|
11
|
+
export type QueryByVectorValues = QueryParamsBase & {
|
|
12
|
+
vector: RecordValues;
|
|
13
|
+
};
|
|
14
|
+
export type QueryOptions = QueryByRecordId | QueryByVectorValues;
|
|
15
|
+
export interface ScoredRecord<T extends RecordMetadata = RecordMetadata> extends VectorRecord<T> {
|
|
16
|
+
score?: number;
|
|
17
|
+
}
|
|
18
|
+
export type QueryResponse<T extends RecordMetadata = RecordMetadata> = {
|
|
19
|
+
matches: Array<ScoredRecord<T>>;
|
|
20
|
+
namespace: string;
|
|
21
|
+
usage?: OperationUsage;
|
|
22
|
+
};
|
|
23
|
+
export type OperationUsage = {
|
|
24
|
+
readUnits?: number;
|
|
25
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query.types.js","sourceRoot":"","sources":["../../src/generic/query.types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
export type IndexDescription = {
|
|
2
|
+
name: string;
|
|
3
|
+
dimension: number;
|
|
4
|
+
metric: IndexModelMetricEnum;
|
|
5
|
+
host: string;
|
|
6
|
+
};
|
|
7
|
+
export declare const IndexModelMetricEnum: {
|
|
8
|
+
readonly Cosine: "cosine";
|
|
9
|
+
readonly Euclidean: "euclidean";
|
|
10
|
+
readonly Dotproduct: "dotproduct";
|
|
11
|
+
};
|
|
12
|
+
export type IndexModelMetricEnum = typeof IndexModelMetricEnum[keyof typeof IndexModelMetricEnum];
|
|
13
|
+
export interface IndexList {
|
|
14
|
+
indexes?: Array<IndexDescription>;
|
|
15
|
+
}
|
|
16
|
+
export type RecordValues = Array<number>;
|
|
17
|
+
export type RecordSparseValues = {
|
|
18
|
+
indices: Array<number>;
|
|
19
|
+
values: Array<number>;
|
|
20
|
+
};
|
|
21
|
+
export type RecordMetadataValue = string | boolean | number | Array<string>;
|
|
22
|
+
export type RecordMetadata = Record<string, RecordMetadataValue>;
|
|
23
|
+
export type VectorRecord<T extends RecordMetadata = RecordMetadata> = {
|
|
24
|
+
id: string;
|
|
25
|
+
values: RecordValues;
|
|
26
|
+
sparseValues?: RecordSparseValues;
|
|
27
|
+
metadata?: T;
|
|
28
|
+
};
|
|
29
|
+
export type BaseRequestParams = {
|
|
30
|
+
id: string;
|
|
31
|
+
data?: any;
|
|
32
|
+
};
|
|
33
|
+
export type CreateIndexParams = BaseRequestParams & {
|
|
34
|
+
dimension: number;
|
|
35
|
+
metric: IndexModelMetricEnum;
|
|
36
|
+
additionalParams?: any;
|
|
37
|
+
};
|
|
38
|
+
export type EditIndexParams = BaseRequestParams & {};
|
|
39
|
+
export type UpdateOptions<T extends RecordMetadata = RecordMetadata> = {
|
|
40
|
+
id: string;
|
|
41
|
+
values?: RecordValues;
|
|
42
|
+
sparseValues?: RecordSparseValues;
|
|
43
|
+
metadata?: T;
|
|
44
|
+
};
|
|
45
|
+
export type BaseResponse = {
|
|
46
|
+
success: boolean;
|
|
47
|
+
message: string;
|
|
48
|
+
data: any;
|
|
49
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"record.js","sourceRoot":"","sources":["../../src/generic/record.ts"],"names":[],"mappings":""}
|
package/dist/index.d.ts
ADDED
package/dist/index.js
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./generic/record"), exports);
|
|
18
|
+
__exportStar(require("./generic/VectorDBBase"), exports);
|
|
19
|
+
__exportStar(require("./generic/query.types"), exports);
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAiC;AACjC,yDAAuC;AACvC,wDAAsC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@memberjunction/ai-vectordb",
|
|
3
|
+
"version": "0.9.3",
|
|
4
|
+
"description": "MemberJunction: AI Vector Database Module",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"files": [
|
|
8
|
+
"/dist"
|
|
9
|
+
],
|
|
10
|
+
"scripts": {
|
|
11
|
+
"start": "ts-node-dev src/index.ts",
|
|
12
|
+
"build": "tsc",
|
|
13
|
+
"test": "echo \"Error: no test specified\" && exit 1"
|
|
14
|
+
},
|
|
15
|
+
"author": "MemberJunction.com",
|
|
16
|
+
"license": "ISC",
|
|
17
|
+
"dependencies": {
|
|
18
|
+
"@langchain/mistralai": "^0.0.7",
|
|
19
|
+
"@memberjunction/core": "^0.9.171",
|
|
20
|
+
"@memberjunction/global": "^0.9.152",
|
|
21
|
+
"dotenv": "^16.0.3",
|
|
22
|
+
"openai": "^3.2.1"
|
|
23
|
+
},
|
|
24
|
+
"devDependencies": {
|
|
25
|
+
"@types/node": "^20.1.7",
|
|
26
|
+
"ts-node-dev": "^2.0.0",
|
|
27
|
+
"typescript": "^5.3.3"
|
|
28
|
+
}
|
|
29
|
+
}
|