@memberjunction/ai 3.1.1 → 3.3.0

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.
@@ -0,0 +1,13 @@
1
+ import { BaseModel } from './baseModel';
2
+ import { RerankParams, RerankResponse, RerankResult } from './reranker.types';
3
+ export declare abstract class BaseReranker extends BaseModel {
4
+ protected _modelName: string;
5
+ constructor(apiKey: string, modelName?: string);
6
+ get ModelName(): string;
7
+ Rerank(params: RerankParams): Promise<RerankResponse>;
8
+ protected abstract doRerank(params: RerankParams): Promise<RerankResult[]>;
9
+ protected createErrorResponse(message: string, startTime: number): RerankResponse;
10
+ protected sortByRelevance(results: RerankResult[]): RerankResult[];
11
+ protected filterByThreshold(results: RerankResult[], minScore: number): RerankResult[];
12
+ }
13
+ //# sourceMappingURL=baseReranker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"baseReranker.d.ts","sourceRoot":"","sources":["../../src/generic/baseReranker.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAqB9E,8BAAsB,YAAa,SAAQ,SAAS;IAChD,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC;gBAOjB,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;IAQ9C,IAAW,SAAS,IAAI,MAAM,CAE7B;IAeY,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC;IAoElE,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAM1E,SAAS,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,cAAc;IAcjF,SAAS,CAAC,eAAe,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,YAAY,EAAE;IAQlE,SAAS,CAAC,iBAAiB,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY,EAAE;CAGzF"}
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseReranker = void 0;
4
+ const baseModel_1 = require("./baseModel");
5
+ class BaseReranker extends baseModel_1.BaseModel {
6
+ constructor(apiKey, modelName) {
7
+ super(apiKey);
8
+ this._modelName = modelName || '';
9
+ }
10
+ get ModelName() {
11
+ return this._modelName;
12
+ }
13
+ async Rerank(params) {
14
+ const startTime = Date.now();
15
+ try {
16
+ if (!params.query || params.query.trim().length === 0) {
17
+ return this.createErrorResponse('Query cannot be empty', startTime);
18
+ }
19
+ if (!params.documents || params.documents.length === 0) {
20
+ return {
21
+ success: true,
22
+ results: [],
23
+ durationMs: Date.now() - startTime,
24
+ modelName: this._modelName
25
+ };
26
+ }
27
+ for (let i = 0; i < params.documents.length; i++) {
28
+ const doc = params.documents[i];
29
+ if (!doc.id || !doc.text) {
30
+ return this.createErrorResponse(`Document at index ${i} missing required field (id or text)`, startTime);
31
+ }
32
+ }
33
+ const results = await this.doRerank(params);
34
+ const topK = params.topK || results.length;
35
+ const limitedResults = results.slice(0, topK);
36
+ const rankedResults = limitedResults.map((r, idx) => ({
37
+ ...r,
38
+ rank: idx
39
+ }));
40
+ return {
41
+ success: true,
42
+ results: rankedResults,
43
+ durationMs: Date.now() - startTime,
44
+ modelName: this._modelName
45
+ };
46
+ }
47
+ catch (error) {
48
+ const message = error instanceof Error ? error.message : String(error);
49
+ console.error(`BaseReranker.Rerank error: ${message}`);
50
+ return this.createErrorResponse(message, startTime);
51
+ }
52
+ }
53
+ createErrorResponse(message, startTime) {
54
+ return {
55
+ success: false,
56
+ results: [],
57
+ errorMessage: message,
58
+ durationMs: Date.now() - startTime,
59
+ modelName: this._modelName
60
+ };
61
+ }
62
+ sortByRelevance(results) {
63
+ return [...results].sort((a, b) => b.relevanceScore - a.relevanceScore);
64
+ }
65
+ filterByThreshold(results, minScore) {
66
+ return results.filter(r => r.relevanceScore >= minScore);
67
+ }
68
+ }
69
+ exports.BaseReranker = BaseReranker;
70
+ //# sourceMappingURL=baseReranker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"baseReranker.js","sourceRoot":"","sources":["../../src/generic/baseReranker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ export interface RerankDocument {
2
+ id: string;
3
+ text: string;
4
+ metadata?: Record<string, unknown>;
5
+ originalScore?: number;
6
+ }
7
+ export interface RerankResult {
8
+ id: string;
9
+ relevanceScore: number;
10
+ document: RerankDocument;
11
+ rank: number;
12
+ }
13
+ export interface RerankParams {
14
+ query: string;
15
+ documents: RerankDocument[];
16
+ topK?: number;
17
+ options?: Record<string, unknown>;
18
+ }
19
+ export interface RerankResponse {
20
+ success: boolean;
21
+ results: RerankResult[];
22
+ errorMessage?: string;
23
+ durationMs: number;
24
+ modelName?: string;
25
+ }
26
+ //# sourceMappingURL=reranker.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reranker.types.d.ts","sourceRoot":"","sources":["../../src/generic/reranker.types.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,cAAc;IAI3B,EAAE,EAAE,MAAM,CAAC;IAKX,IAAI,EAAE,MAAM,CAAC;IAMb,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAKnC,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;AAKD,MAAM,WAAW,YAAY;IAIzB,EAAE,EAAE,MAAM,CAAC;IAKX,cAAc,EAAE,MAAM,CAAC;IAKvB,QAAQ,EAAE,cAAc,CAAC;IAKzB,IAAI,EAAE,MAAM,CAAC;CAChB;AAKD,MAAM,WAAW,YAAY;IAIzB,KAAK,EAAE,MAAM,CAAC;IAKd,SAAS,EAAE,cAAc,EAAE,CAAC;IAM5B,IAAI,CAAC,EAAE,MAAM,CAAC;IAKd,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAKD,MAAM,WAAW,cAAc;IAI3B,OAAO,EAAE,OAAO,CAAC;IAKjB,OAAO,EAAE,YAAY,EAAE,CAAC;IAKxB,YAAY,CAAC,EAAE,MAAM,CAAC;IAKtB,UAAU,EAAE,MAAM,CAAC;IAKnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=reranker.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reranker.types.js","sourceRoot":"","sources":["../../src/generic/reranker.types.ts"],"names":[],"mappings":""}
package/dist/index.d.ts CHANGED
@@ -1,9 +1,11 @@
1
1
  export * from './generic/baseModel';
2
2
  export * from './generic/baseLLM';
3
3
  export * from './generic/baseImage';
4
+ export * from './generic/baseReranker';
4
5
  export * from './generic/chat.types';
5
6
  export * from './generic/classify.types';
6
7
  export * from './generic/summarize.types';
8
+ export * from './generic/reranker.types';
7
9
  export * from './generic/apiKeyDictionary';
8
10
  export * from './generic/embed.types';
9
11
  export * from './generic/baseEmbeddings';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC"}
package/dist/index.js CHANGED
@@ -17,9 +17,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./generic/baseModel"), exports);
18
18
  __exportStar(require("./generic/baseLLM"), exports);
19
19
  __exportStar(require("./generic/baseImage"), exports);
20
+ __exportStar(require("./generic/baseReranker"), exports);
20
21
  __exportStar(require("./generic/chat.types"), exports);
21
22
  __exportStar(require("./generic/classify.types"), exports);
22
23
  __exportStar(require("./generic/summarize.types"), exports);
24
+ __exportStar(require("./generic/reranker.types"), exports);
23
25
  __exportStar(require("./generic/apiKeyDictionary"), exports);
24
26
  __exportStar(require("./generic/embed.types"), exports);
25
27
  __exportStar(require("./generic/baseEmbeddings"), exports);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAmC;AACnC,oDAAkC;AAClC,sDAAoC;AACpC,uDAAqC;AACrC,2DAAyC;AACzC,4DAA0C;AAC1C,6DAA2C;AAC3C,wDAAsC;AACtC,2DAAyC;AACzC,sDAAoC;AACpC,sDAAoC;AACpC,uDAAqC;AACrC,0DAAwC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAmC;AACnC,oDAAkC;AAClC,sDAAoC;AACpC,yDAAuC;AACvC,uDAAqC;AACrC,2DAAyC;AACzC,4DAA0C;AAC1C,2DAAyC;AACzC,6DAA2C;AAC3C,wDAAsC;AACtC,2DAAyC;AACzC,sDAAoC;AACpC,sDAAoC;AACpC,uDAAqC;AACrC,0DAAwC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@memberjunction/ai",
3
- "version": "3.1.1",
3
+ "version": "3.3.0",
4
4
  "description": "MemberJunction: AI - core components for abstracting LLMs and other AI model types that are usable anywhere without ANY other MJ dependencies past @memberjunction/global which itself has zero additional dependencies.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -15,7 +15,7 @@
15
15
  "author": "MemberJunction.com",
16
16
  "license": "ISC",
17
17
  "dependencies": {
18
- "@memberjunction/global": "3.1.1",
18
+ "@memberjunction/global": "3.3.0",
19
19
  "dotenv": "^16.4.1",
20
20
  "rxjs": "^7.8.1"
21
21
  },