@nx-ddd/any-func 17.12.0 → 17.13.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.
@@ -1,5 +1,6 @@
1
1
  import { InjectionToken } from '@angular/core';
2
2
  import type { ChatCompletionMessageParam, FunctionParameters } from 'openai/resources';
3
+ import { CacheAdapter } from '../impl/adapters/cache';
3
4
  export interface CallOptions<I, O, S extends {
4
5
  input: I;
5
6
  output: O;
@@ -28,6 +29,7 @@ export declare function provideAnyFunc(config?: AnyFuncConfig): ({
28
29
  export declare class AnyFuncService {
29
30
  protected readonly openai: import("../../../../../../dist/packages/@nx-ddd/common/infrastructure/externals/openai/open-ai.service.impl").OpenAiServiceImpl;
30
31
  protected readonly config: AnyFuncConfig;
32
+ protected cache: CacheAdapter;
31
33
  jsonSchema(_input: any, jsonSchema: FunctionParameters, { instructions, model, specs, embeddings, sample, temperature, maxRetry, }?: CallOptions<any, any>): Promise<any>;
32
34
  call<I, O>(_input: I, args: {
33
35
  new (): O;
@@ -42,6 +44,7 @@ export declare class AnyFuncService {
42
44
  role: 'assistant' | 'user';
43
45
  content: string;
44
46
  }[];
47
+ getEmbeddings<T>(item: T, accessor: (item: T) => string): Promise<number[]>;
45
48
  sort<T>(items: T[], accessor: (item: T) => string, target: string): Promise<T[]>;
46
49
  private parseInput;
47
50
  }
@@ -9,6 +9,8 @@ const json_schema_library_1 = require("json-schema-library");
9
9
  const agent_1 = require("../agent");
10
10
  const json_schema_1 = require("../impl/json-schema");
11
11
  const any_func_service_1 = require("./any-func.service");
12
+ const cache_1 = require("../impl/adapters/cache");
13
+ const p_limit_1 = tslib_1.__importDefault(require("p-limit"));
12
14
  const ANY_FUNC_CONFIG = new core_1.InjectionToken('[@nx-ddd/any-func] AnyFuncConfig');
13
15
  function provideAnyFuncConfig(config) {
14
16
  return [
@@ -27,6 +29,7 @@ let AnyFuncService = class AnyFuncService {
27
29
  var _a;
28
30
  this.openai = (0, openai_1.injectOpenAiService)();
29
31
  this.config = (_a = (0, core_1.inject)(ANY_FUNC_CONFIG, { optional: true })) !== null && _a !== void 0 ? _a : { debug: false };
32
+ this.cache = (0, core_1.inject)(cache_1.CacheAdapter);
30
33
  }
31
34
  jsonSchema(_input, jsonSchema, { instructions = '', model = 'gpt-4o', specs = [], embeddings = false, sample = 3, temperature = 0, maxRetry = 3, } = {}) {
32
35
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
@@ -95,7 +98,7 @@ let AnyFuncService = class AnyFuncService {
95
98
  complete(_input, jsonSchema, messages, { model = 'gpt-4o', temperature = 0, } = {}) {
96
99
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
97
100
  const tool = (0, agent_1.buildFunctionTool)({ name: 'function', description: '', parameters: jsonSchema });
98
- const res = yield this.openai.chat.completions.create({
101
+ const props = {
99
102
  model,
100
103
  messages,
101
104
  tools: [tool],
@@ -104,7 +107,8 @@ let AnyFuncService = class AnyFuncService {
104
107
  function: { name: 'function' }
105
108
  },
106
109
  temperature,
107
- });
110
+ };
111
+ const res = yield this.cache.call(props, props => this.openai.chat.completions.create(props));
108
112
  return res.choices[0].message;
109
113
  });
110
114
  }
@@ -130,20 +134,26 @@ let AnyFuncService = class AnyFuncService {
130
134
  ];
131
135
  }).flat();
132
136
  }
137
+ getEmbeddings(item, accessor) {
138
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
139
+ const props = { item, model: 'text-embedding-3-small' };
140
+ let embedding = yield this.cache.get(props);
141
+ if (embedding)
142
+ return embedding;
143
+ embedding = yield this.openai.embeddings.create({
144
+ model: props.model,
145
+ input: accessor(item),
146
+ }).then(res => res.data[0].embedding);
147
+ yield this.cache.set(props, embedding);
148
+ return embedding;
149
+ });
150
+ }
133
151
  sort(items, accessor, target) {
134
152
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
135
- const getEmbeddings = (item) => {
136
- return this.openai.embeddings.create({
137
- model: 'text-embedding-3-small',
138
- input: accessor(item),
139
- }).then(res => res.data[0].embedding);
140
- };
141
153
  const dist = (a, b) => Math.sqrt(a.reduce((acc, v, i) => acc + Math.pow((v - b[i]), 2), 0));
142
- const targetEmbeddings = yield this.openai.embeddings.create({
143
- model: 'text-embedding-3-small',
144
- input: target,
145
- }).then(res => res.data[0].embedding);
146
- const embeddings = yield Promise.all(items.map(getEmbeddings));
154
+ const targetEmbeddings = yield this.getEmbeddings(target, s => s);
155
+ const limit = (0, p_limit_1.default)(10);
156
+ const embeddings = yield Promise.all(items.map(item => limit(() => this.getEmbeddings(item, accessor))));
147
157
  const items_ = items.map((item, i) => ({
148
158
  item,
149
159
  embedding: embeddings[i],
@@ -1 +1 @@
1
- {"version":3,"file":"any-func.service.impl.js","sourceRoot":"","sources":["../../../../../../packages/@nx-ddd/any-func/src/lib/any-func/any-func.service.impl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"any-func.service.impl.js","sourceRoot":"","sources":["../../../../../../packages/@nx-ddd/any-func/src/lib/any-func/any-func.service.impl.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { LocalStorage } from "node-localstorage";
2
+ export declare class CacheAdapter {
3
+ protected localStorage: LocalStorage;
4
+ get<T>(keyOrObj: string | object): Promise<T | null>;
5
+ set(keyOrObj: string | object, value: any): Promise<void>;
6
+ call<P extends (string | object), T>(props: P, callback: (props: P) => Promise<T>): Promise<T>;
7
+ protected makeKey(keyOrObj: string | object): string;
8
+ protected makeJson(valueOrObj: any): string;
9
+ protected parseJson(value: string): any;
10
+ }
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CacheAdapter = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const core_1 = require("@angular/core");
6
+ const node_localstorage_1 = require("node-localstorage");
7
+ const CryptoJS = tslib_1.__importStar(require("crypto-js"));
8
+ let CacheAdapter = class CacheAdapter {
9
+ constructor() {
10
+ this.localStorage = global.localStorage || new node_localstorage_1.LocalStorage('node_modules/.cache/any-func', 5 * 1024 * 1024 * 1024);
11
+ }
12
+ get(keyOrObj) {
13
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
14
+ const key = this.makeKey(keyOrObj);
15
+ return this.parseJson(this.localStorage.getItem(key));
16
+ });
17
+ }
18
+ set(keyOrObj, value) {
19
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
20
+ const key = this.makeKey(keyOrObj);
21
+ this.localStorage.setItem(key, this.makeJson(value));
22
+ });
23
+ }
24
+ call(props, callback) {
25
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
26
+ const key = this.makeKey(props);
27
+ let value = yield this.get(key);
28
+ if (value)
29
+ return value;
30
+ value = yield callback(props);
31
+ yield this.set(key, value);
32
+ return value;
33
+ });
34
+ }
35
+ makeKey(keyOrObj) {
36
+ const value = typeof keyOrObj === 'string' ? keyOrObj : JSON.stringify(keyOrObj);
37
+ return CryptoJS.SHA256(value).toString();
38
+ }
39
+ makeJson(valueOrObj) {
40
+ return JSON.stringify(valueOrObj);
41
+ }
42
+ parseJson(value) {
43
+ return JSON.parse(value);
44
+ }
45
+ };
46
+ exports.CacheAdapter = CacheAdapter;
47
+ exports.CacheAdapter = CacheAdapter = tslib_1.__decorate([
48
+ (0, core_1.Injectable)({ providedIn: 'root' })
49
+ ], CacheAdapter);
50
+ //# sourceMappingURL=cache.adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.adapter.js","sourceRoot":"","sources":["../../../../../../../../packages/@nx-ddd/any-func/src/lib/impl/adapters/cache/cache.adapter.ts"],"names":[],"mappings":";;;;AAAA,wCAA2C;AAC3C,yDAAiD;AACjD,4DAAsC;AAG/B,IAAM,YAAY,GAAlB,MAAM,YAAY;IAAlB;QACK,iBAAY,GAAiB,MAAM,CAAC,YAAY,IAAI,IAAI,gCAAY,CAAC,8BAA8B,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;IAiCzI,CAAC;IA/BO,GAAG,CAAI,QAAyB;;YACpC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACnC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAa,CAAC;QACpE,CAAC;KAAA;IAEK,GAAG,CAAC,QAAyB,EAAE,KAAU;;YAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACnC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QACvD,CAAC;KAAA;IAEK,IAAI,CAAiC,KAAQ,EAAE,QAAkC;;YACrF,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAChC,IAAI,KAAK,GAAG,MAAM,IAAI,CAAC,GAAG,CAAI,GAAG,CAAC,CAAC;YACnC,IAAI,KAAK;gBAAE,OAAO,KAAK,CAAC;YACxB,KAAK,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC9B,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC3B,OAAO,KAAK,CAAC;QACf,CAAC;KAAA;IAES,OAAO,CAAC,QAAyB;QACzC,MAAM,KAAK,GAAG,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACjF,OAAO,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC3C,CAAC;IAES,QAAQ,CAAC,UAAe;QAChC,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC;IAES,SAAS,CAAC,KAAa;QAC/B,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;CACF,CAAA;AAlCY,oCAAY;uBAAZ,YAAY;IADxB,IAAA,iBAAU,EAAC,EAAC,UAAU,EAAE,MAAM,EAAC,CAAC;GACpB,YAAY,CAkCxB"}
@@ -0,0 +1 @@
1
+ export * from './cache.adapter';
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./cache.adapter"), exports);
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../packages/@nx-ddd/any-func/src/lib/impl/adapters/cache/index.ts"],"names":[],"mappings":";;;AAAA,0DAAgC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nx-ddd/any-func",
3
- "version": "17.12.0",
3
+ "version": "17.13.0",
4
4
  "main": "./src/index.js",
5
5
  "types": "./index.d.ts",
6
6
  "homepage": "https://github.com/xx-machina/plaform/tree/main/packages/@nx-ddd/any-func",