@nx-ddd/any-func 19.51.0 → 19.80.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.
@@ -12,13 +12,12 @@ import { ValidatorAdapter } from '@nx-ddd/any-func/adapters/validator';
12
12
  import pLimit from 'p-limit';
13
13
  import { provideOpenaiService } from '@nx-ddd/common/infrastructure/externals/openai/impl';
14
14
 
15
- // 環境差異を吸収するため、try-catchでdynamic importしてdefaultMetadataStorageを取得します。
16
15
  let defaultMetadataStorage;
17
16
  try {
18
17
  ({ defaultMetadataStorage } = require('class-transformer/cjs/storage'));
19
18
  }
20
19
  catch {
21
- // Ignore error if class-transformer is not available
20
+ void 0;
22
21
  }
23
22
  function getMetadataStorage() {
24
23
  return defaultMetadataStorage;
@@ -27,8 +26,6 @@ function setMetadataStorage(metadataStorage) {
27
26
  defaultMetadataStorage = metadataStorage;
28
27
  }
29
28
 
30
- // import { defaultMetadataStorage } from 'c/lass-transformer/esm5/storage';
31
- // setMetadataStorage(defaultMetadataStorage);
32
29
  function getPropType(target, property) {
33
30
  return Reflect.getMetadata('design:type', target, property);
34
31
  }
@@ -62,7 +59,7 @@ const additionalConverters = {
62
59
  isDayjs: (meta) => {
63
60
  return {
64
61
  type: 'string',
65
- format: 'date-time', // JSON Schemaで日付型を指定
62
+ format: 'date-time',
66
63
  };
67
64
  },
68
65
  };
@@ -100,7 +97,6 @@ function buildToolFromSchema(name, description, schema) {
100
97
  }
101
98
  function AiFunction(params) {
102
99
  return function (target, propertyKey, descriptor) {
103
- // 引数の型を取得
104
100
  const args = Reflect.getMetadata('design:paramtypes', target, propertyKey);
105
101
  const tool = buildToolFromSchema(propertyKey, params?.description ?? '', args[0]);
106
102
  addTool(target, tool);
@@ -192,34 +188,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
192
188
  type: Injectable
193
189
  }] });
194
190
 
195
- /**
196
- * InjectionToken for AnyFuncService
197
- */
198
191
  const ANY_FUNC_SERVICE = new InjectionToken('[@nx-ddd/any-func] AnyFuncService');
199
- /**
200
- * InjectionToken for AnyFuncConfig
201
- */
202
192
  const ANY_FUNC_CONFIG = new InjectionToken('[@nx-ddd/any-func] AnyFuncConfig');
203
- /**
204
- * Injects the AnyFuncService
205
- */
206
193
  function injectAnyFunc() {
207
194
  return inject(ANY_FUNC_SERVICE, { optional: true }) ?? {};
208
195
  }
209
196
 
210
- /**
211
- * Type guard for browser File object
212
- */
213
197
  function isBrowserFile(obj) {
214
198
  return typeof File !== 'undefined' && obj instanceof File;
215
199
  }
216
- /**
217
- * Helper class for building OpenAI message content
218
- */
219
200
  class OpenAiMessageHelper {
220
- /**
221
- * Converts an image file to base64 string
222
- */
223
201
  static async imageToBase64(imageFile) {
224
202
  return new Promise((resolve, reject) => {
225
203
  const reader = new FileReader();
@@ -231,9 +209,6 @@ class OpenAiMessageHelper {
231
209
  reader.readAsDataURL(imageFile);
232
210
  });
233
211
  }
234
- /**
235
- * Builds message content from files
236
- */
237
212
  static async buildFilesMessage(files) {
238
213
  return await Promise.all(files.map(async (file) => ({
239
214
  type: 'image_url',
@@ -242,9 +217,6 @@ class OpenAiMessageHelper {
242
217
  }
243
218
  }
244
219
 
245
- /**
246
- * Embedding-related utilities for AnyFuncService
247
- */
248
220
  class EmbeddingsHelper {
249
221
  cache;
250
222
  openai;
@@ -271,9 +243,6 @@ class EmbeddingsHelper {
271
243
  }
272
244
  }
273
245
 
274
- /**
275
- * Provides the AnyFuncService with configuration
276
- */
277
246
  function provideAnyFunc(useFactory) {
278
247
  const config = useFactory?.() ?? {};
279
248
  return [
@@ -296,7 +265,6 @@ class AnyFuncService {
296
265
  constructor() {
297
266
  this.embeddingsHelper = new EmbeddingsHelper(this.cache, this.openai);
298
267
  }
299
- /** @deprecated use callByJsonSchema instead */
300
268
  async jsonSchema(_input, jsonSchema, options = {}) {
301
269
  return this.callByJsonSchema(_input, jsonSchema, options);
302
270
  }
@@ -392,8 +360,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
392
360
  type: Injectable
393
361
  }], ctorParameters: () => [] });
394
362
 
395
- // Re-export from impl to maintain backwards compatibility
396
-
397
363
  /**
398
364
  * Generated bundle index. Do not edit.
399
365
  */
@@ -1 +1 @@
1
- {"version":3,"file":"nx-ddd-any-func.mjs","sources":["../../../../../packages/@nx-ddd/any-func/src/lib/impl/json-schema/default-metadata-storage.ts","../../../../../packages/@nx-ddd/any-func/src/lib/impl/json-schema/json-schema.ts","../../../../../packages/@nx-ddd/any-func/src/lib/agent/agent.ts","../../../../../packages/@nx-ddd/any-func/src/lib/impl/adapters/cache/cache.adapter.ts","../../../../../packages/@nx-ddd/any-func/src/lib/any-func/tokens.ts","../../../../../packages/@nx-ddd/any-func/src/lib/any-func/message-helper.ts","../../../../../packages/@nx-ddd/any-func/src/lib/any-func/embeddings.ts","../../../../../packages/@nx-ddd/any-func/src/lib/any-func/providers.ts","../../../../../packages/@nx-ddd/any-func/src/lib/any-func/any-func.service.impl.ts","../../../../../packages/@nx-ddd/any-func/src/lib/any-func/any-func.service.ts","../../../../../packages/@nx-ddd/any-func/src/lib/nx-ddd-any-func.ts"],"sourcesContent":["// 環境差異を吸収するため、try-catchでdynamic importしてdefaultMetadataStorageを取得します。\nlet defaultMetadataStorage: any;\n\ntry {\n ({ defaultMetadataStorage } = require('class-transformer/cjs/storage'));\n} catch {\n // Ignore error if class-transformer is not available\n}\n\nexport function getMetadataStorage() {\n return defaultMetadataStorage;\n}\n\nexport function setMetadataStorage(metadataStorage: any) {\n defaultMetadataStorage = metadataStorage;\n}\n","import { ValidationTypes } from \"class-validator\"\nimport { targetConstructorToSchema as _targetConstructorToSchema } from \"class-validator-jsonschema\"\nimport { IOptions } from \"class-validator-jsonschema/build/options\";\nimport { JSONSchema7 } from 'json-schema';\nimport { getMetadataStorage } from \"./default-metadata-storage\";\n// import { defaultMetadataStorage } from 'c/lass-transformer/esm5/storage';\n\n// setMetadataStorage(defaultMetadataStorage);\n\nfunction getPropType(target: object, property: string) {\n return Reflect.getMetadata('design:type', target, property)\n}\n\nfunction targetToSchema(\n type: any,\n options: any\n): any {\n if (typeof type === 'function') {\n if (\n type.prototype === String.prototype ||\n type.prototype === Symbol.prototype\n ) {\n return { type: 'string' }\n } else if (type.prototype === Number.prototype) {\n return { type: 'number' }\n } else if (type.prototype === Boolean.prototype) {\n return { type: 'boolean' }\n }\n\n return targetConstructorToSchema(type, options)\n }\n}\n\nconst additionalConverters= {\n [ValidationTypes.NESTED_VALIDATION]: (meta: any, options: any) => {\n if (typeof meta.target === 'function') {\n const typeMeta = options.classTransformerMetadataStorage\n ? options.classTransformerMetadataStorage.findTypeMetadata(\n meta.target,\n meta.propertyName\n )\n : null\n const childType = typeMeta\n ? typeMeta.typeFunction()\n : getPropType(meta.target.prototype, meta.propertyName)\n return targetToSchema(childType, options)\n }\n },\n isDayjs: (meta: any): JSONSchema7 => {\n return {\n type: 'string',\n format: 'date-time', // JSON Schemaで日付型を指定\n };\n },\n};\n\nexport function targetConstructorToSchema(target: Function, options: Partial<IOptions> = {}): JSONSchema7 {\n return _targetConstructorToSchema(target, {\n ...options,\n additionalConverters,\n classTransformerMetadataStorage: getMetadataStorage(),\n }) as JSONSchema7;\n}\n","import { ChatCompletionMessageParam, FunctionParameters, } from \"openai/resources\";\nimport { FunctionTool } from \"openai/resources/beta/assistants\";\nimport { ChatCompletionCreateParamsBase } from \"openai/resources/chat/completions\";\nimport { OpenAiServiceImpl } from '@nx-ddd/common/infrastructure/externals/openai/impl';\nimport { targetConstructorToSchema } from '../impl/json-schema';\n\nconst AI_TOOLS = '[ai-tools]' as const;\nconst AI_SYSTEM = '[ai-system]' as const;\n\nexport function addTool(obj: {[AI_TOOLS]: object[]}, tool: object) {\n obj[AI_TOOLS] = obj[AI_TOOLS] ?? [];\n obj[AI_TOOLS].push(tool);\n return obj;\n}\n\nexport function getTools(obj: {[AI_TOOLS]: object[]}): any[] {\n return obj[AI_TOOLS] ?? [];\n}\n\nexport function buildFunctionTool(params: {\n name: string,\n description: string,\n parameters: FunctionParameters,\n}): FunctionTool {\n return {\n type: 'function',\n function: {\n name: params.name,\n description: params.description,\n parameters: params.parameters,\n },\n }\n}\n\nexport function buildToolFromSchema(name: string, description: string, schema: Function): FunctionTool {\n const parameters = targetConstructorToSchema(schema) as FunctionParameters;\n return buildFunctionTool({ name, description, parameters });\n}\n\nexport function AiFunction(params?: {description?: string}) {\n return function (target: any, propertyKey: string, descriptor: PropertyDescriptor) {\n // 引数の型を取得\n const args = Reflect.getMetadata('design:paramtypes', target, propertyKey);\n const tool = buildToolFromSchema(propertyKey, params?.description ?? '', args[0]);\n addTool(target, tool);\n return descriptor;\n };\n}\n\nexport interface AiSystemConfig {\n model?: ChatCompletionCreateParamsBase['model'];\n instructions?: string;\n shots?: {input: string, output: string}[];\n}\n\nexport function setAiSystemConfig(obj: {[AI_SYSTEM]: AiSystemConfig}, config: AiSystemConfig) {\n obj[AI_SYSTEM] = config;\n return obj;\n}\n\nexport function getAiSystemConfig(obj: {[AI_SYSTEM]: AiSystemConfig}): AiSystemConfig {\n return obj[AI_SYSTEM];\n}\n\nexport function AiSystem({\n model = 'gpt-4-1106-preview',\n instructions = ``,\n shots = [],\n}: AiSystemConfig) {\n return function (target: any) {\n setAiSystemConfig(target, {model, instructions, shots});\n return target;\n };\n}\n\nexport class AiToolsAgent {\n constructor (protected openai: OpenAiServiceImpl) { }\n \n messages: ChatCompletionMessageParam[] = [\n { role: 'system' as const, content: '' },\n ];\n\n results: any[] = [];\n\n get tools() {\n return getTools(this.constructor as any);\n }\n\n get config() {\n return getAiSystemConfig(this.constructor as any);\n }\n\n async completion(tools: any[] = this.tools) {\n const message = await this.openai.chat.completions.create({\n model: this.config.model!,\n messages: this.messages,\n tools,\n });\n for (const call of message.choices?.[0]?.message?.tool_calls ?? []) {\n if (call.type === 'function') {\n const func = (this as any)[call.function.name];\n const result = func(JSON.parse(call.function.arguments));\n this.results.push(result);\n }\n }\n }\n\n async execute<T=any>(message: string, options: {tools?: any[]} = {}): Promise<T> {\n this.messages.push({role: 'user', content: message});\n await this.completion(options.tools);\n return this.results.at(-1) as any;\n }\n}\n\n","import { Injectable } from \"@angular/core\";\nimport { LOCAL_STORAGE } from '@nx-ddd/any-func/adapters/local-storage';\nimport CryptoJS from 'crypto-js';\n\n@Injectable()\nexport class CacheAdapter {\n protected localStorage = LOCAL_STORAGE.inject();\n\n async get<T>(keyOrObj: string | object): Promise<T | null> {\n const key = this.makeKey(keyOrObj);\n return this.parseJson(this.localStorage.getItem(key)) as T | null;\n }\n\n async set(keyOrObj: string | object, value: any): Promise<void> {\n const key = this.makeKey(keyOrObj);\n this.localStorage.setItem(key, this.makeJson(value));\n }\n\n async call<P extends (string | object), T>(props: P, callback: (props: P) => Promise<T>): Promise<T> {\n const key = this.makeKey(props);\n let value = await this.get<T>(key);\n if (value) return value;\n value = await callback(props);\n await this.set(key, value);\n return value; \n }\n\n protected makeKey(keyOrObj: string | object): string {\n const value = typeof keyOrObj === 'string' ? keyOrObj : JSON.stringify(keyOrObj);\n return CryptoJS.SHA256(value).toString();\n }\n\n protected makeJson(valueOrObj: any): string {\n return JSON.stringify(valueOrObj);\n }\n\n protected parseJson(value: string): any {\n return JSON.parse(value);\n }\n}\n","import { inject, InjectionToken } from '@angular/core';\nimport type { AnyFuncConfig } from './types';\n\n/**\n * InjectionToken for AnyFuncService\n */\nexport const ANY_FUNC_SERVICE = new InjectionToken<any>('[@nx-ddd/any-func] AnyFuncService');\n\n/**\n * InjectionToken for AnyFuncConfig\n */\nexport const ANY_FUNC_CONFIG = new InjectionToken<AnyFuncConfig>('[@nx-ddd/any-func] AnyFuncConfig');\n\n/**\n * Injects the AnyFuncService\n */\nexport function injectAnyFunc<T = any>(): T {\n return inject(ANY_FUNC_SERVICE, {optional: true}) ?? {} as T;\n}\n","import type { ChatCompletionMessageParam } from 'openai/resources';\n\n/**\n * Type guard for browser File object\n */\nexport function isBrowserFile(obj: unknown): obj is File {\n return typeof File !== 'undefined' && obj instanceof File;\n}\n\n/**\n * Helper class for building OpenAI message content\n */\nexport class OpenAiMessageHelper {\n /**\n * Converts an image file to base64 string\n */\n static async imageToBase64(imageFile: File): Promise<string> {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = () => {\n const base64String = reader.result as string;\n resolve(base64String.split(',')[1]);\n };\n reader.onerror = reject;\n reader.readAsDataURL(imageFile);\n });\n }\n\n /**\n * Builds message content from files\n */\n static async buildFilesMessage(files: File[]): Promise<ChatCompletionMessageParam['content']> {\n return await Promise.all(files.map(async (file) => ({\n type: 'image_url' as const,\n image_url: { url: `data:image/jpeg;base64,${await this.imageToBase64(file)}` },\n })));\n }\n}\n","import pLimit from 'p-limit';\nimport { CacheAdapter } from '../impl/adapters/cache';\n\n/**\n * Embedding-related utilities for AnyFuncService\n */\nexport class EmbeddingsHelper {\n constructor(\n private cache: CacheAdapter,\n private openai: { embeddings: { create: (params: { model: string; input: string }) => Promise<{ data: { embedding: number[] }[] }> } }\n ) {}\n\n async getEmbeddings<T>(item: T, accessor: (item: T) => string): Promise<number[]> {\n const props = { item, model: 'text-embedding-3-small' };\n const cached = await this.cache.get<number[]>(props);\n if (cached) return cached;\n const embedding = await this.openai.embeddings.create({ model: props.model, input: accessor(item) }).then(res => res.data[0].embedding);\n await this.cache.set(props, embedding);\n return embedding;\n }\n\n async sort<T>(items: T[], accessor: (item: T) => string, target: string): Promise<T[]> {\n const dist = (a: number[], b: number[]) => Math.sqrt(a.reduce((acc, v, i) => acc + (v - b[i]) ** 2, 0));\n const targetEmbeddings = await this.getEmbeddings(target, s => s);\n const limit = pLimit(10);\n const embeddings = await Promise.all(items.map(item => limit(() => this.getEmbeddings(item, accessor))));\n const items_ = items.map((item, i) => ({ item, embedding: embeddings[i], distance: dist(embeddings[i], targetEmbeddings) }));\n return items_.sort((a, b) => a.distance - b.distance).map(({item}) => item);\n }\n}\n","import { provideOpenaiService } from '@nx-ddd/common/infrastructure/externals/openai/impl';\nimport { CacheAdapter } from '../impl/adapters/cache';\nimport { ANY_FUNC_SERVICE, ANY_FUNC_CONFIG } from './tokens';\nimport { AnyFuncConfig } from './types';\nimport { AnyFuncService } from './any-func.service.impl';\n\n/**\n * Provides the AnyFuncService with configuration\n */\nexport function provideAnyFunc(useFactory?: () => AnyFuncConfig) {\n const config = useFactory?.() ?? ({} as AnyFuncConfig);\n return [\n { provide: ANY_FUNC_SERVICE, useClass: AnyFuncService },\n { provide: ANY_FUNC_CONFIG, useFactory },\n CacheAdapter,\n provideOpenaiService(() => ({\n apiKey: config.openaiApiKey,\n dangerouslyAllowBrowser: config.dangerouslyAllowBrowser\n })),\n ]\n}\n","import { inject, Injectable } from '@angular/core';\nimport { injectOpenAiService } from '@nx-ddd/common/infrastructure/externals/openai';\nimport { catchError, lastValueFrom, map, of, retry, switchMap, tap } from 'rxjs';\nimport type { ChatCompletionMessageParam, FunctionParameters } from 'openai/resources';\nimport { ZodSchema } from 'zod';\nimport zodToJsonSchema from 'zod-to-json-schema';\nimport { buildFunctionTool } from '../agent';\nimport { targetConstructorToSchema } from '../impl/json-schema';\nimport { CacheAdapter } from '../impl/adapters/cache';\nimport { ValidatorAdapter } from '@nx-ddd/any-func/adapters/validator';\nimport { JsonSchema } from 'json-schema-library';\nimport { CallOptions, AnyFuncConfig } from './types';\nimport { ANY_FUNC_CONFIG } from './tokens';\nimport { isBrowserFile, OpenAiMessageHelper } from './message-helper';\nimport { EmbeddingsHelper } from './embeddings';\n\n// Re-export for backward compatibility\nexport { CallOptions, AnyFuncConfig } from './types';\nexport { ANY_FUNC_SERVICE, ANY_FUNC_CONFIG, injectAnyFunc } from './tokens';\nexport { provideAnyFunc } from './providers';\n\n@Injectable()\nexport class AnyFuncService {\n protected readonly openai = injectOpenAiService();\n protected readonly config = inject(ANY_FUNC_CONFIG, {optional: true}) ?? { debug: false };\n protected cache = inject(CacheAdapter);\n protected validator = inject(ValidatorAdapter);\n private embeddingsHelper: EmbeddingsHelper;\n\n constructor() {\n this.embeddingsHelper = new EmbeddingsHelper(this.cache, this.openai);\n }\n\n /** @deprecated use callByJsonSchema instead */\n async jsonSchema(_input: any, jsonSchema: FunctionParameters, options: CallOptions<any, any> = {}): Promise<any> {\n return this.callByJsonSchema(_input, jsonSchema, options);\n }\n\n async callByJsonSchema(_input: any, jsonSchema: FunctionParameters, {\n instructions = '', model = 'gpt-4o', specs = [], embeddings = false,\n sample = 3, temperature = 0, maxRetry = 3,\n validator = (data: any) => this.validator.validate(jsonSchema, data),\n }: CallOptions<any, any> = {}): Promise<any> {\n for (const spec of specs) {\n const errors = await validator(spec.output);\n if (errors.length > 0) throw new Error(JSON.stringify(errors, null, 2));\n }\n const content = await this.parseInput(_input);\n const sortedSpecs = embeddings ? await this.embeddingsHelper.sort(specs, embeddings, _input) : specs;\n const messages: ChatCompletionMessageParam[] = [\n { role: 'system', content: instructions },\n ...(await this.buildChatMessages(sortedSpecs.slice(0, sample).reverse())),\n { role: 'user', content },\n ];\n return lastValueFrom(of(null).pipe(\n map(() => messages),\n switchMap(() => this.complete(_input, jsonSchema, messages, { model, sample, temperature })),\n tap(message => messages.push(message)),\n switchMap(async (message) => {\n const toolCall = message.tool_calls![0];\n if (toolCall.type !== 'function') throw new Error('Unexpected tool call type');\n const output = JSON.parse(toolCall.function.arguments);\n console.debug('[AnyFuncService#complete] output:', output);\n const errors = await validator(output);\n console.debug('[AnyFuncService#complete] errors:', errors);\n if (errors.length > 0) {\n messages.push({ role: 'tool', content: JSON.stringify(errors), tool_call_id: message.tool_calls![0].id });\n if (this.config.debug) console.debug('messages', JSON.stringify(messages, null, 2));\n throw new Error(JSON.stringify(errors, null, 2));\n } else {\n messages.push({ role: 'tool', content: JSON.stringify(output), tool_call_id: message.tool_calls![0].id });\n if (this.config.debug) console.debug('messages', JSON.stringify(messages, null, 2));\n }\n return output;\n }),\n catchError((error) => { console.error(error); throw error; }),\n retry(maxRetry),\n ));\n }\n\n async callByZod<I, O>(_input: I, zod: ZodSchema<O>, options: CallOptions<I, O> = {}): Promise<O> {\n const schema = zodToJsonSchema(zod as any, { $refStrategy: 'none' });\n const validator = options.validator ?? ((data: any) => this.validator.validate(schema, data));\n return this.jsonSchema(_input, schema, { ...options, validator });\n }\n\n async callByClassValidator<I, O>(_input: I, args: {new (): O}, options: CallOptions<I, O> = {}): Promise<O> {\n const parameters = targetConstructorToSchema(args) as FunctionParameters;\n const validator = options.validator ?? ((data: any) => this.validator.validate(parameters, data));\n console.debug('[AnyFuncService#call] parameters:', parameters);\n return this.jsonSchema(_input, parameters, { ...options, validator });\n }\n\n async call<I, O>(_input: I, args: {new (): O} | ZodSchema<O> | JsonSchema, params: CallOptions<I, O> = {}): Promise<O> {\n if (args instanceof ZodSchema) return this.callByZod(_input, args, params);\n if (args instanceof Function) return this.callByClassValidator(_input, args, params);\n if (typeof args === 'object' && args !== null && 'type' in args && args.type === 'object') {\n return this.callByJsonSchema(_input, args, params);\n }\n throw new Error('Invalid args type');\n }\n\n protected async complete<I, O>(\n _input: any, jsonSchema: FunctionParameters, messages: ChatCompletionMessageParam[],\n { model = 'gpt-4o', temperature = 0 }: CallOptions<I, O> & {functionOutput?: object} = {}\n ) {\n const tool = buildFunctionTool({name: 'function', description: '', parameters: jsonSchema});\n const props = {\n model, messages, tools: [tool],\n tool_choice: { type: 'function' as const, function: { name: 'function' } },\n temperature,\n };\n const res = await this.cache.call(props, props => this.openai.chat.completions.create(props));\n return res.choices[0].message;\n }\n\n protected async buildChatMessages(specs: { input: any; output: any }[]): Promise<{role: 'assistant' | 'user', content: string}[]> {\n const messages = await Promise.all(specs.map(async ({ input, output }) => {\n const parsedInput = await this.parseInput(input);\n return <ChatCompletionMessageParam[]>[\n { role: 'user', content: parsedInput },\n { role: 'assistant', content: null, tool_calls: [{ id: 'call-example', type: 'function', function: { name: 'function', arguments: JSON.stringify(output) } }] },\n { role: 'tool', content: 'success', tool_call_id: 'call-example' },\n ];\n }));\n return messages.flat() as {role: 'assistant' | 'user', content: string}[];\n }\n\n private async parseInput(input: any) {\n if (isBrowserFile(input)) return await OpenAiMessageHelper.buildFilesMessage([input]);\n else if (input === 'string') return input;\n else return JSON.stringify(input);\n }\n}\n","// Re-export from impl to maintain backwards compatibility\nexport {\n ANY_FUNC_SERVICE,\n ANY_FUNC_CONFIG,\n injectAnyFunc,\n provideAnyFunc,\n AnyFuncService,\n CallOptions,\n AnyFuncConfig,\n} from './any-func.service.impl';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["_targetConstructorToSchema"],"mappings":"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"}
1
+ {"version":3,"file":"nx-ddd-any-func.mjs","sources":["../../../../../packages/@nx-ddd/any-func/src/lib/impl/json-schema/default-metadata-storage.ts","../../../../../packages/@nx-ddd/any-func/src/lib/impl/json-schema/json-schema.ts","../../../../../packages/@nx-ddd/any-func/src/lib/agent/agent.ts","../../../../../packages/@nx-ddd/any-func/src/lib/impl/adapters/cache/cache.adapter.ts","../../../../../packages/@nx-ddd/any-func/src/lib/any-func/tokens.ts","../../../../../packages/@nx-ddd/any-func/src/lib/any-func/message-helper.ts","../../../../../packages/@nx-ddd/any-func/src/lib/any-func/embeddings.ts","../../../../../packages/@nx-ddd/any-func/src/lib/any-func/providers.ts","../../../../../packages/@nx-ddd/any-func/src/lib/any-func/any-func.service.impl.ts","../../../../../packages/@nx-ddd/any-func/src/lib/nx-ddd-any-func.ts"],"sourcesContent":["\nlet defaultMetadataStorage: any;\n\ntry {\n ({ defaultMetadataStorage } = require('class-transformer/cjs/storage'));\n} catch {\n void 0;\n}\n\nexport function getMetadataStorage() {\n return defaultMetadataStorage;\n}\n\nexport function setMetadataStorage(metadataStorage: any) {\n defaultMetadataStorage = metadataStorage;\n}\n","import { ValidationTypes } from \"class-validator\"\nimport { targetConstructorToSchema as _targetConstructorToSchema } from \"class-validator-jsonschema\"\nimport { IOptions } from \"class-validator-jsonschema/build/options\";\nimport { JSONSchema7 } from 'json-schema';\nimport { getMetadataStorage } from \"./default-metadata-storage\";\n\n\n\n\nfunction getPropType(target: object, property: string) {\n return Reflect.getMetadata('design:type', target, property)\n}\n\nfunction targetToSchema(\n type: any,\n options: any\n): any {\n if (typeof type === 'function') {\n if (\n type.prototype === String.prototype ||\n type.prototype === Symbol.prototype\n ) {\n return { type: 'string' }\n } else if (type.prototype === Number.prototype) {\n return { type: 'number' }\n } else if (type.prototype === Boolean.prototype) {\n return { type: 'boolean' }\n }\n\n return targetConstructorToSchema(type, options)\n }\n}\n\nconst additionalConverters= {\n [ValidationTypes.NESTED_VALIDATION]: (meta: any, options: any) => {\n if (typeof meta.target === 'function') {\n const typeMeta = options.classTransformerMetadataStorage\n ? options.classTransformerMetadataStorage.findTypeMetadata(\n meta.target,\n meta.propertyName\n )\n : null\n const childType = typeMeta\n ? typeMeta.typeFunction()\n : getPropType(meta.target.prototype, meta.propertyName)\n return targetToSchema(childType, options)\n }\n },\n isDayjs: (meta: any): JSONSchema7 => {\n return {\n type: 'string',\n format: 'date-time', \n };\n },\n};\n\nexport function targetConstructorToSchema(target: Function, options: Partial<IOptions> = {}): JSONSchema7 {\n return _targetConstructorToSchema(target, {\n ...options,\n additionalConverters,\n classTransformerMetadataStorage: getMetadataStorage(),\n }) as JSONSchema7;\n}\n","import { ChatCompletionMessageParam, FunctionParameters, } from \"openai/resources\";\nimport { FunctionTool } from \"openai/resources/beta/assistants\";\nimport { ChatCompletionCreateParamsBase } from \"openai/resources/chat/completions\";\nimport { OpenAiServiceImpl } from '@nx-ddd/common/infrastructure/externals/openai/impl';\nimport { targetConstructorToSchema } from '../impl/json-schema';\n\nconst AI_TOOLS = '[ai-tools]' as const;\nconst AI_SYSTEM = '[ai-system]' as const;\n\nexport function addTool(obj: {[AI_TOOLS]: object[]}, tool: object) {\n obj[AI_TOOLS] = obj[AI_TOOLS] ?? [];\n obj[AI_TOOLS].push(tool);\n return obj;\n}\n\nexport function getTools(obj: {[AI_TOOLS]: object[]}): any[] {\n return obj[AI_TOOLS] ?? [];\n}\n\nexport function buildFunctionTool(params: {\n name: string,\n description: string,\n parameters: FunctionParameters,\n}): FunctionTool {\n return {\n type: 'function',\n function: {\n name: params.name,\n description: params.description,\n parameters: params.parameters,\n },\n }\n}\n\nexport function buildToolFromSchema(name: string, description: string, schema: Function): FunctionTool {\n const parameters = targetConstructorToSchema(schema) as FunctionParameters;\n return buildFunctionTool({ name, description, parameters });\n}\n\nexport function AiFunction(params?: {description?: string}) {\n return function (target: any, propertyKey: string, descriptor: PropertyDescriptor) {\n \n const args = Reflect.getMetadata('design:paramtypes', target, propertyKey);\n const tool = buildToolFromSchema(propertyKey, params?.description ?? '', args[0]);\n addTool(target, tool);\n return descriptor;\n };\n}\n\nexport interface AiSystemConfig {\n model?: ChatCompletionCreateParamsBase['model'];\n instructions?: string;\n shots?: {input: string, output: string}[];\n}\n\nexport function setAiSystemConfig(obj: {[AI_SYSTEM]: AiSystemConfig}, config: AiSystemConfig) {\n obj[AI_SYSTEM] = config;\n return obj;\n}\n\nexport function getAiSystemConfig(obj: {[AI_SYSTEM]: AiSystemConfig}): AiSystemConfig {\n return obj[AI_SYSTEM];\n}\n\nexport function AiSystem({\n model = 'gpt-4-1106-preview',\n instructions = ``,\n shots = [],\n}: AiSystemConfig) {\n return function (target: any) {\n setAiSystemConfig(target, {model, instructions, shots});\n return target;\n };\n}\n\nexport class AiToolsAgent {\n constructor (protected openai: OpenAiServiceImpl) { }\n \n messages: ChatCompletionMessageParam[] = [\n { role: 'system' as const, content: '' },\n ];\n\n results: any[] = [];\n\n get tools() {\n return getTools(this.constructor as any);\n }\n\n get config() {\n return getAiSystemConfig(this.constructor as any);\n }\n\n async completion(tools: any[] = this.tools) {\n const message = await this.openai.chat.completions.create({\n model: this.config.model!,\n messages: this.messages,\n tools,\n });\n for (const call of message.choices?.[0]?.message?.tool_calls ?? []) {\n if (call.type === 'function') {\n const func = (this as any)[call.function.name];\n const result = func(JSON.parse(call.function.arguments));\n this.results.push(result);\n }\n }\n }\n\n async execute<T=any>(message: string, options: {tools?: any[]} = {}): Promise<T> {\n this.messages.push({role: 'user', content: message});\n await this.completion(options.tools);\n return this.results.at(-1) as any;\n }\n}\n\n","import { Injectable } from \"@angular/core\";\nimport { LOCAL_STORAGE } from '@nx-ddd/any-func/adapters/local-storage';\nimport CryptoJS from 'crypto-js';\n\n@Injectable()\nexport class CacheAdapter {\n protected localStorage = LOCAL_STORAGE.inject();\n\n async get<T>(keyOrObj: string | object): Promise<T | null> {\n const key = this.makeKey(keyOrObj);\n return this.parseJson(this.localStorage.getItem(key)) as T | null;\n }\n\n async set(keyOrObj: string | object, value: any): Promise<void> {\n const key = this.makeKey(keyOrObj);\n this.localStorage.setItem(key, this.makeJson(value));\n }\n\n async call<P extends (string | object), T>(props: P, callback: (props: P) => Promise<T>): Promise<T> {\n const key = this.makeKey(props);\n let value = await this.get<T>(key);\n if (value) return value;\n value = await callback(props);\n await this.set(key, value);\n return value; \n }\n\n protected makeKey(keyOrObj: string | object): string {\n const value = typeof keyOrObj === 'string' ? keyOrObj : JSON.stringify(keyOrObj);\n return CryptoJS.SHA256(value).toString();\n }\n\n protected makeJson(valueOrObj: any): string {\n return JSON.stringify(valueOrObj);\n }\n\n protected parseJson(value: string): any {\n return JSON.parse(value);\n }\n}\n","import { inject, InjectionToken } from '@angular/core';\nimport type { AnyFuncConfig } from './types';\n\n\nexport const ANY_FUNC_SERVICE = new InjectionToken<any>('[@nx-ddd/any-func] AnyFuncService');\n\n\nexport const ANY_FUNC_CONFIG = new InjectionToken<AnyFuncConfig>('[@nx-ddd/any-func] AnyFuncConfig');\n\n\nexport function injectAnyFunc<T = any>(): T {\n return inject(ANY_FUNC_SERVICE, {optional: true}) ?? {} as T;\n}\n","import type { ChatCompletionMessageParam } from 'openai/resources';\n\n\nexport function isBrowserFile(obj: unknown): obj is File {\n return typeof File !== 'undefined' && obj instanceof File;\n}\n\n\nexport class OpenAiMessageHelper {\n \n static async imageToBase64(imageFile: File): Promise<string> {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = () => {\n const base64String = reader.result as string;\n resolve(base64String.split(',')[1]);\n };\n reader.onerror = reject;\n reader.readAsDataURL(imageFile);\n });\n }\n\n \n static async buildFilesMessage(files: File[]): Promise<ChatCompletionMessageParam['content']> {\n return await Promise.all(files.map(async (file) => ({\n type: 'image_url' as const,\n image_url: { url: `data:image/jpeg;base64,${await this.imageToBase64(file)}` },\n })));\n }\n}\n","import pLimit from 'p-limit';\nimport { CacheAdapter } from '../impl/adapters/cache';\n\n\nexport class EmbeddingsHelper {\n constructor(\n private cache: CacheAdapter,\n private openai: { embeddings: { create: (params: { model: string; input: string }) => Promise<{ data: { embedding: number[] }[] }> } }\n ) {}\n\n async getEmbeddings<T>(item: T, accessor: (item: T) => string): Promise<number[]> {\n const props = { item, model: 'text-embedding-3-small' };\n const cached = await this.cache.get<number[]>(props);\n if (cached) return cached;\n const embedding = await this.openai.embeddings.create({ model: props.model, input: accessor(item) }).then(res => res.data[0].embedding);\n await this.cache.set(props, embedding);\n return embedding;\n }\n\n async sort<T>(items: T[], accessor: (item: T) => string, target: string): Promise<T[]> {\n const dist = (a: number[], b: number[]) => Math.sqrt(a.reduce((acc, v, i) => acc + (v - b[i]) ** 2, 0));\n const targetEmbeddings = await this.getEmbeddings(target, s => s);\n const limit = pLimit(10);\n const embeddings = await Promise.all(items.map(item => limit(() => this.getEmbeddings(item, accessor))));\n const items_ = items.map((item, i) => ({ item, embedding: embeddings[i], distance: dist(embeddings[i], targetEmbeddings) }));\n return items_.sort((a, b) => a.distance - b.distance).map(({item}) => item);\n }\n}\n","import { provideOpenaiService } from '@nx-ddd/common/infrastructure/externals/openai/impl';\nimport { CacheAdapter } from '../impl/adapters/cache';\nimport { ANY_FUNC_SERVICE, ANY_FUNC_CONFIG } from './tokens';\nimport { AnyFuncConfig } from './types';\nimport { AnyFuncService } from './any-func.service.impl';\n\n\nexport function provideAnyFunc(useFactory?: () => AnyFuncConfig) {\n const config = useFactory?.() ?? ({} as AnyFuncConfig);\n return [\n { provide: ANY_FUNC_SERVICE, useClass: AnyFuncService },\n { provide: ANY_FUNC_CONFIG, useFactory },\n CacheAdapter,\n provideOpenaiService(() => ({\n apiKey: config.openaiApiKey,\n dangerouslyAllowBrowser: config.dangerouslyAllowBrowser\n })),\n ]\n}\n","import { inject, Injectable } from '@angular/core';\nimport { injectOpenAiService } from '@nx-ddd/common/infrastructure/externals/openai';\nimport { catchError, lastValueFrom, map, of, retry, switchMap, tap } from 'rxjs';\nimport type { ChatCompletionMessageParam, FunctionParameters } from 'openai/resources';\nimport { ZodSchema } from 'zod';\nimport zodToJsonSchema from 'zod-to-json-schema';\nimport { buildFunctionTool } from '../agent';\nimport { targetConstructorToSchema } from '../impl/json-schema';\nimport { CacheAdapter } from '../impl/adapters/cache';\nimport { ValidatorAdapter } from '@nx-ddd/any-func/adapters/validator';\nimport { JsonSchema } from 'json-schema-library';\nimport { CallOptions, AnyFuncConfig } from './types';\nimport { ANY_FUNC_CONFIG } from './tokens';\nimport { isBrowserFile, OpenAiMessageHelper } from './message-helper';\nimport { EmbeddingsHelper } from './embeddings';\n\n\nexport { CallOptions, AnyFuncConfig } from './types';\nexport { ANY_FUNC_SERVICE, ANY_FUNC_CONFIG, injectAnyFunc } from './tokens';\nexport { provideAnyFunc } from './providers';\n\n@Injectable()\nexport class AnyFuncService {\n protected readonly openai = injectOpenAiService();\n protected readonly config = inject(ANY_FUNC_CONFIG, {optional: true}) ?? { debug: false };\n protected cache = inject(CacheAdapter);\n protected validator = inject(ValidatorAdapter);\n private embeddingsHelper: EmbeddingsHelper;\n\n constructor() {\n this.embeddingsHelper = new EmbeddingsHelper(this.cache, this.openai);\n }\n\n \n async jsonSchema(_input: any, jsonSchema: FunctionParameters, options: CallOptions<any, any> = {}): Promise<any> {\n return this.callByJsonSchema(_input, jsonSchema, options);\n }\n\n async callByJsonSchema(_input: any, jsonSchema: FunctionParameters, {\n instructions = '', model = 'gpt-4o', specs = [], embeddings = false,\n sample = 3, temperature = 0, maxRetry = 3,\n validator = (data: any) => this.validator.validate(jsonSchema, data),\n }: CallOptions<any, any> = {}): Promise<any> {\n for (const spec of specs) {\n const errors = await validator(spec.output);\n if (errors.length > 0) throw new Error(JSON.stringify(errors, null, 2));\n }\n const content = await this.parseInput(_input);\n const sortedSpecs = embeddings ? await this.embeddingsHelper.sort(specs, embeddings, _input) : specs;\n const messages: ChatCompletionMessageParam[] = [\n { role: 'system', content: instructions },\n ...(await this.buildChatMessages(sortedSpecs.slice(0, sample).reverse())),\n { role: 'user', content },\n ];\n return lastValueFrom(of(null).pipe(\n map(() => messages),\n switchMap(() => this.complete(_input, jsonSchema, messages, { model, sample, temperature })),\n tap(message => messages.push(message)),\n switchMap(async (message) => {\n const toolCall = message.tool_calls![0];\n if (toolCall.type !== 'function') throw new Error('Unexpected tool call type');\n const output = JSON.parse(toolCall.function.arguments);\n console.debug('[AnyFuncService#complete] output:', output);\n const errors = await validator(output);\n console.debug('[AnyFuncService#complete] errors:', errors);\n if (errors.length > 0) {\n messages.push({ role: 'tool', content: JSON.stringify(errors), tool_call_id: message.tool_calls![0].id });\n if (this.config.debug) console.debug('messages', JSON.stringify(messages, null, 2));\n throw new Error(JSON.stringify(errors, null, 2));\n } else {\n messages.push({ role: 'tool', content: JSON.stringify(output), tool_call_id: message.tool_calls![0].id });\n if (this.config.debug) console.debug('messages', JSON.stringify(messages, null, 2));\n }\n return output;\n }),\n catchError((error) => { console.error(error); throw error; }),\n retry(maxRetry),\n ));\n }\n\n async callByZod<I, O>(_input: I, zod: ZodSchema<O>, options: CallOptions<I, O> = {}): Promise<O> {\n const schema = zodToJsonSchema(zod as any, { $refStrategy: 'none' });\n const validator = options.validator ?? ((data: any) => this.validator.validate(schema, data));\n return this.jsonSchema(_input, schema, { ...options, validator });\n }\n\n async callByClassValidator<I, O>(_input: I, args: {new (): O}, options: CallOptions<I, O> = {}): Promise<O> {\n const parameters = targetConstructorToSchema(args) as FunctionParameters;\n const validator = options.validator ?? ((data: any) => this.validator.validate(parameters, data));\n console.debug('[AnyFuncService#call] parameters:', parameters);\n return this.jsonSchema(_input, parameters, { ...options, validator });\n }\n\n async call<I, O>(_input: I, args: {new (): O} | ZodSchema<O> | JsonSchema, params: CallOptions<I, O> = {}): Promise<O> {\n if (args instanceof ZodSchema) return this.callByZod(_input, args, params);\n if (args instanceof Function) return this.callByClassValidator(_input, args, params);\n if (typeof args === 'object' && args !== null && 'type' in args && args.type === 'object') {\n return this.callByJsonSchema(_input, args, params);\n }\n throw new Error('Invalid args type');\n }\n\n protected async complete<I, O>(\n _input: any, jsonSchema: FunctionParameters, messages: ChatCompletionMessageParam[],\n { model = 'gpt-4o', temperature = 0 }: CallOptions<I, O> & {functionOutput?: object} = {}\n ) {\n const tool = buildFunctionTool({name: 'function', description: '', parameters: jsonSchema});\n const props = {\n model, messages, tools: [tool],\n tool_choice: { type: 'function' as const, function: { name: 'function' } },\n temperature,\n };\n const res = await this.cache.call(props, props => this.openai.chat.completions.create(props));\n return res.choices[0].message;\n }\n\n protected async buildChatMessages(specs: { input: any; output: any }[]): Promise<{role: 'assistant' | 'user', content: string}[]> {\n const messages = await Promise.all(specs.map(async ({ input, output }) => {\n const parsedInput = await this.parseInput(input);\n return <ChatCompletionMessageParam[]>[\n { role: 'user', content: parsedInput },\n { role: 'assistant', content: null, tool_calls: [{ id: 'call-example', type: 'function', function: { name: 'function', arguments: JSON.stringify(output) } }] },\n { role: 'tool', content: 'success', tool_call_id: 'call-example' },\n ];\n }));\n return messages.flat() as {role: 'assistant' | 'user', content: string}[];\n }\n\n private async parseInput(input: any) {\n if (isBrowserFile(input)) return await OpenAiMessageHelper.buildFilesMessage([input]);\n else if (input === 'string') return input;\n else return JSON.stringify(input);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["_targetConstructorToSchema"],"mappings":"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"}
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@nx-ddd/any-func",
3
- "version": "19.51.0",
3
+ "version": "19.80.0",
4
4
  "peerDependencies": {
5
5
  "@angular/core": ">=17.0.0",
6
- "@nx-ddd/common": "19.51.0",
6
+ "@nx-ddd/common": "19.80.0",
7
7
  "class-transformer": "^0.5.1",
8
8
  "class-validator": "^0.14.0",
9
9
  "class-validator-jsonschema": "^5.0.0",
@@ -74,9 +74,6 @@ declare class CacheAdapter {
74
74
  static ɵprov: i0.ɵɵInjectableDeclaration<CacheAdapter>;
75
75
  }
76
76
 
77
- /**
78
- * Options for AnyFuncService call methods
79
- */
80
77
  interface CallOptions<I, O, S extends {
81
78
  input: I;
82
79
  output: O;
@@ -93,30 +90,15 @@ interface CallOptions<I, O, S extends {
93
90
  maxRetry?: number;
94
91
  validator?: (output: O) => Promise<any>;
95
92
  }
96
- /**
97
- * Configuration for AnyFuncService
98
- */
99
93
  interface AnyFuncConfig extends ClientOptions {
100
94
  debug: boolean;
101
95
  openaiApiKey: string;
102
96
  }
103
97
 
104
- /**
105
- * InjectionToken for AnyFuncService
106
- */
107
98
  declare const ANY_FUNC_SERVICE: InjectionToken<any>;
108
- /**
109
- * InjectionToken for AnyFuncConfig
110
- */
111
99
  declare const ANY_FUNC_CONFIG: InjectionToken<AnyFuncConfig>;
112
- /**
113
- * Injects the AnyFuncService
114
- */
115
100
  declare function injectAnyFunc<T = any>(): T;
116
101
 
117
- /**
118
- * Provides the AnyFuncService with configuration
119
- */
120
102
  declare function provideAnyFunc(useFactory?: () => AnyFuncConfig): (typeof CacheAdapter | i0.Provider[] | {
121
103
  provide: i0.InjectionToken<any>;
122
104
  useClass: typeof AnyFuncService;
@@ -136,7 +118,6 @@ declare class AnyFuncService {
136
118
  protected validator: ValidatorAdapter;
137
119
  private embeddingsHelper;
138
120
  constructor();
139
- /** @deprecated use callByJsonSchema instead */
140
121
  jsonSchema(_input: any, jsonSchema: FunctionParameters, options?: CallOptions<any, any>): Promise<any>;
141
122
  callByJsonSchema(_input: any, jsonSchema: FunctionParameters, { instructions, model, specs, embeddings, sample, temperature, maxRetry, validator, }?: CallOptions<any, any>): Promise<any>;
142
123
  callByZod<I, O>(_input: I, zod: ZodSchema<O>, options?: CallOptions<I, O>): Promise<O>;