@nx-ddd/any-func 19.35.0 → 19.36.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.
- package/fesm2022/nx-ddd-any-func-adapters-local-storage-node.mjs +2 -0
- package/fesm2022/nx-ddd-any-func-adapters-local-storage-node.mjs.map +1 -1
- package/fesm2022/nx-ddd-any-func-adapters-local-storage.mjs.map +1 -1
- package/fesm2022/nx-ddd-any-func.mjs +5 -5
- package/fesm2022/nx-ddd-any-func.mjs.map +1 -1
- package/package.json +2 -2
- package/types/nx-ddd-any-func.d.ts +2 -2
|
@@ -2,6 +2,8 @@ import { LocalStorage } from 'node-localstorage';
|
|
|
2
2
|
import { LOCAL_STORAGE } from '@nx-ddd/any-func/adapters/local-storage';
|
|
3
3
|
import { makeEnvironmentProviders } from '@angular/core';
|
|
4
4
|
|
|
5
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
6
|
+
// @ts-ignore -- node-localstorage has no type declarations
|
|
5
7
|
function provideLocalStorage() {
|
|
6
8
|
return makeEnvironmentProviders([
|
|
7
9
|
LOCAL_STORAGE.provide(() => new LocalStorage('node_modules/.cache/any-func', 5 * 1024 * 1024 * 1024))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nx-ddd-any-func-adapters-local-storage-node.mjs","sources":["../../../../../packages/@nx-ddd/any-func/src/lib/adapters/local-storage-node/index.ts","../../../../../packages/@nx-ddd/any-func/src/lib/adapters/local-storage-node/nx-ddd-any-func-adapters-local-storage-node.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"nx-ddd-any-func-adapters-local-storage-node.mjs","sources":["../../../../../packages/@nx-ddd/any-func/src/lib/adapters/local-storage-node/index.ts","../../../../../packages/@nx-ddd/any-func/src/lib/adapters/local-storage-node/nx-ddd-any-func-adapters-local-storage-node.ts"],"sourcesContent":["// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore -- node-localstorage has no type declarations\nimport { LocalStorage } from \"node-localstorage\";\nimport { LOCAL_STORAGE } from \"@nx-ddd/any-func/adapters/local-storage\";\nimport { EnvironmentProviders, makeEnvironmentProviders } from \"@angular/core\";\n\nexport function provideLocalStorage(): EnvironmentProviders {\n return makeEnvironmentProviders([\n LOCAL_STORAGE.provide(() => new LocalStorage('node_modules/.cache/any-func', 5 * 1024 * 1024 * 1024))\n ]);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAAA;AACA;SAKgB,mBAAmB,GAAA;AACjC,IAAA,OAAO,wBAAwB,CAAC;AAC9B,QAAA,aAAa,CAAC,OAAO,CAAC,MAAM,IAAI,YAAY,CAAC,8BAA8B,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AACrG,KAAA,CAAC;AACJ;;ACVA;;AAEG;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nx-ddd-any-func-adapters-local-storage.mjs","sources":["../../../../../packages/@nx-ddd/any-func/src/lib/adapters/local-storage/index.ts","../../../../../packages/@nx-ddd/any-func/src/lib/adapters/local-storage/nx-ddd-any-func-adapters-local-storage.ts"],"sourcesContent":["import { makeDI } from \"@nx-ddd/core\";\nimport { LocalStorage } from \"node-localstorage\";\n\nexport const LOCAL_STORAGE = makeDI<LocalStorage>('LOCAL_STORAGE');\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"nx-ddd-any-func-adapters-local-storage.mjs","sources":["../../../../../packages/@nx-ddd/any-func/src/lib/adapters/local-storage/index.ts","../../../../../packages/@nx-ddd/any-func/src/lib/adapters/local-storage/nx-ddd-any-func-adapters-local-storage.ts"],"sourcesContent":["import { makeDI } from \"@nx-ddd/core\";\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore -- node-localstorage has no type declarations\nimport { LocalStorage } from \"node-localstorage\";\n\nexport const LOCAL_STORAGE = makeDI<LocalStorage>('LOCAL_STORAGE');\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;MAKa,aAAa,GAAG,MAAM,CAAe,eAAe;;ACLjE;;AAEG;;;;"}
|
|
@@ -254,10 +254,10 @@ class EmbeddingsHelper {
|
|
|
254
254
|
}
|
|
255
255
|
async getEmbeddings(item, accessor) {
|
|
256
256
|
const props = { item, model: 'text-embedding-3-small' };
|
|
257
|
-
|
|
258
|
-
if (
|
|
259
|
-
return
|
|
260
|
-
embedding = await this.openai.embeddings.create({ model: props.model, input: accessor(item) }).then(res => res.data[0].embedding);
|
|
257
|
+
const cached = await this.cache.get(props);
|
|
258
|
+
if (cached)
|
|
259
|
+
return cached;
|
|
260
|
+
const embedding = await this.openai.embeddings.create({ model: props.model, input: accessor(item) }).then(res => res.data[0].embedding);
|
|
261
261
|
await this.cache.set(props, embedding);
|
|
262
262
|
return embedding;
|
|
263
263
|
}
|
|
@@ -275,7 +275,7 @@ class EmbeddingsHelper {
|
|
|
275
275
|
* Provides the AnyFuncService with configuration
|
|
276
276
|
*/
|
|
277
277
|
function provideAnyFunc(useFactory) {
|
|
278
|
-
const config = useFactory();
|
|
278
|
+
const config = useFactory?.() ?? {};
|
|
279
279
|
return [
|
|
280
280
|
{ provide: ANY_FUNC_SERVICE, useClass: AnyFuncService },
|
|
281
281
|
{ provide: ANY_FUNC_CONFIG, useFactory },
|
|
@@ -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: import('class-transformer/esm5/storage').MetadataStorage;\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: import('class-transformer/esm5/storage').MetadataStorage) {\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 let embedding = await this.cache.get<number[]>(props);\n if (embedding) return embedding;\n 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();\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":";;;;;;;;;;;;;;AAAA;AACA,IAAI,sBAAgF;AAEpF,IAAI;IACF,CAAC,EAAE,sBAAsB,EAAE,GAAG,OAAO,CAAC,+BAA+B,CAAC;AACxE;AAAE,MAAM;;AAER;SAEgB,kBAAkB,GAAA;AAChC,IAAA,OAAO,sBAAsB;AAC/B;AAEM,SAAU,kBAAkB,CAAC,eAAyE,EAAA;IAC1G,sBAAsB,GAAG,eAAe;AAC1C;;ACVA;AAEA;AAEA,SAAS,WAAW,CAAC,MAAc,EAAE,QAAgB,EAAA;IACnD,OAAO,OAAO,CAAC,WAAW,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,CAAC;AAC7D;AAEA,SAAS,cAAc,CACrB,IAAS,EACT,OAAY,EAAA;AAEZ,IAAA,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;AAC9B,QAAA,IACE,IAAI,CAAC,SAAS,KAAK,MAAM,CAAC,SAAS;AACnC,YAAA,IAAI,CAAC,SAAS,KAAK,MAAM,CAAC,SAAS,EACnC;AACA,YAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC3B;aAAO,IAAI,IAAI,CAAC,SAAS,KAAK,MAAM,CAAC,SAAS,EAAE;AAC9C,YAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC3B;aAAO,IAAI,IAAI,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS,EAAE;AAC/C,YAAA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;QAC5B;AAEA,QAAA,OAAO,yBAAyB,CAAC,IAAI,EAAE,OAAO,CAAC;IACjD;AACF;AAEA,MAAM,oBAAoB,GAAE;IAC1B,CAAC,eAAe,CAAC,iBAAiB,GAAG,CAAC,IAAS,EAAE,OAAY,KAAI;AAC/D,QAAA,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,UAAU,EAAE;AACrC,YAAA,MAAM,QAAQ,GAAG,OAAO,CAAC;AACvB,kBAAE,OAAO,CAAC,+BAA+B,CAAC,gBAAgB,CACtD,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,YAAY;kBAEnB,IAAI;YACR,MAAM,SAAS,GAAG;AAChB,kBAAE,QAAQ,CAAC,YAAY;AACvB,kBAAE,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC;AACzD,YAAA,OAAO,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC;QAC3C;IACF,CAAC;AACD,IAAA,OAAO,EAAE,CAAC,IAAS,KAAiB;QAClC,OAAO;AACL,YAAA,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,WAAW;SACpB;IACH,CAAC;CACF;SAEe,yBAAyB,CAAC,MAAgB,EAAE,UAA6B,EAAE,EAAA;IACzF,OAAOA,2BAA0B,CAAC,MAAM,EAAE;AACxC,QAAA,GAAG,OAAO;QACV,oBAAoB;QACpB,+BAA+B,EAAE,kBAAkB,EAAE;AACtD,KAAA,CAAgB;AACnB;;ACxDA,MAAM,QAAQ,GAAG,YAAqB;AACtC,MAAM,SAAS,GAAG,aAAsB;AAElC,SAAU,OAAO,CAAC,GAA2B,EAAE,IAAY,EAAA;IAC/D,GAAG,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE;IACnC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AACxB,IAAA,OAAO,GAAG;AACZ;AAEM,SAAU,QAAQ,CAAC,GAA2B,EAAA;AAClD,IAAA,OAAO,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE;AAC5B;AAEM,SAAU,iBAAiB,CAAC,MAIjC,EAAA;IACC,OAAO;AACL,QAAA,IAAI,EAAE,UAAU;AAChB,QAAA,QAAQ,EAAE;YACR,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,UAAU,EAAE,MAAM,CAAC,UAAU;AAC9B,SAAA;KACF;AACH;SAEgB,mBAAmB,CAAC,IAAY,EAAE,WAAmB,EAAE,MAAgB,EAAA;AACrF,IAAA,MAAM,UAAU,GAAG,yBAAyB,CAAC,MAAM,CAAuB;IAC1E,OAAO,iBAAiB,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;AAC7D;AAEM,SAAU,UAAU,CAAC,MAA+B,EAAA;AACxD,IAAA,OAAO,UAAU,MAAW,EAAE,WAAmB,EAAE,UAA8B,EAAA;;AAE/E,QAAA,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,mBAAmB,EAAE,MAAM,EAAE,WAAW,CAAC;AAC1E,QAAA,MAAM,IAAI,GAAG,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AACjF,QAAA,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC;AACrB,QAAA,OAAO,UAAU;AACnB,IAAA,CAAC;AACH;AAQM,SAAU,iBAAiB,CAAC,GAAkC,EAAE,MAAsB,EAAA;AAC1F,IAAA,GAAG,CAAC,SAAS,CAAC,GAAG,MAAM;AACvB,IAAA,OAAO,GAAG;AACZ;AAEM,SAAU,iBAAiB,CAAC,GAAkC,EAAA;AAClE,IAAA,OAAO,GAAG,CAAC,SAAS,CAAC;AACvB;AAEM,SAAU,QAAQ,CAAC,EACvB,KAAK,GAAG,oBAAoB,EAC5B,YAAY,GAAG,CAAA,CAAE,EACjB,KAAK,GAAG,EAAE,GACK,EAAA;AACf,IAAA,OAAO,UAAU,MAAW,EAAA;QAC1B,iBAAiB,CAAC,MAAM,EAAE,EAAC,KAAK,EAAE,YAAY,EAAE,KAAK,EAAC,CAAC;AACvD,QAAA,OAAO,MAAM;AACf,IAAA,CAAC;AACH;MAEa,YAAY,CAAA;AACA,IAAA,MAAA;AAAvB,IAAA,WAAA,CAAuB,MAAyB,EAAA;QAAzB,IAAA,CAAA,MAAM,GAAN,MAAM;IAAuB;AAEpD,IAAA,QAAQ,GAAiC;AACvC,QAAA,EAAE,IAAI,EAAE,QAAiB,EAAE,OAAO,EAAE,EAAE,EAAE;KACzC;IAED,OAAO,GAAU,EAAE;AAEnB,IAAA,IAAI,KAAK,GAAA;AACP,QAAA,OAAO,QAAQ,CAAC,IAAI,CAAC,WAAkB,CAAC;IAC1C;AAEA,IAAA,IAAI,MAAM,GAAA;AACR,QAAA,OAAO,iBAAiB,CAAC,IAAI,CAAC,WAAkB,CAAC;IACnD;AAEA,IAAA,MAAM,UAAU,CAAC,KAAA,GAAe,IAAI,CAAC,KAAK,EAAA;AACxC,QAAA,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;AACxD,YAAA,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAM;YACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,KAAK;AACN,SAAA,CAAC;AACF,QAAA,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,IAAI,EAAE,EAAE;AAClE,YAAA,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE;gBAC5B,MAAM,IAAI,GAAI,IAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AAC9C,gBAAA,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACxD,gBAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;YAC3B;QACF;IACF;AAEA,IAAA,MAAM,OAAO,CAAQ,OAAe,EAAE,UAA2B,EAAE,EAAA;AACjE,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAC,CAAC;QACpD,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC;QACpC,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAQ;IACnC;AACD;;MC3GY,YAAY,CAAA;AACb,IAAA,YAAY,GAAG,aAAa,CAAC,MAAM,EAAE;IAE/C,MAAM,GAAG,CAAI,QAAyB,EAAA;QACpC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;AAClC,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAa;IACnE;AAEA,IAAA,MAAM,GAAG,CAAC,QAAyB,EAAE,KAAU,EAAA;QAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;AAClC,QAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACtD;AAEA,IAAA,MAAM,IAAI,CAAiC,KAAQ,EAAE,QAAkC,EAAA;QACrF,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;QAC/B,IAAI,KAAK,GAAG,MAAM,IAAI,CAAC,GAAG,CAAI,GAAG,CAAC;AAClC,QAAA,IAAI,KAAK;AAAE,YAAA,OAAO,KAAK;AACvB,QAAA,KAAK,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC;QAC7B,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC;AAC1B,QAAA,OAAO,KAAK;IACd;AAEU,IAAA,OAAO,CAAC,QAAyB,EAAA;AACzC,QAAA,MAAM,KAAK,GAAG,OAAO,QAAQ,KAAK,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;QAChF,OAAO,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE;IAC1C;AAEU,IAAA,QAAQ,CAAC,UAAe,EAAA;AAChC,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;IACnC;AAEU,IAAA,SAAS,CAAC,KAAa,EAAA;AAC/B,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;IAC1B;uGAjCW,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;2GAAZ,YAAY,EAAA,CAAA;;2FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBADxB;;;ACDD;;AAEG;MACU,gBAAgB,GAAG,IAAI,cAAc,CAAM,mCAAmC;AAE3F;;AAEG;MACU,eAAe,GAAG,IAAI,cAAc,CAAgB,kCAAkC;AAEnG;;AAEG;SACa,aAAa,GAAA;AAC3B,IAAA,OAAO,MAAM,CAAC,gBAAgB,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,IAAI,EAAO;AAC9D;;AChBA;;AAEG;AACG,SAAU,aAAa,CAAC,GAAY,EAAA;IACxC,OAAO,OAAO,IAAI,KAAK,WAAW,IAAI,GAAG,YAAY,IAAI;AAC3D;AAEA;;AAEG;MACU,mBAAmB,CAAA;AAC9B;;AAEG;AACH,IAAA,aAAa,aAAa,CAAC,SAAe,EAAA;QACxC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;AACrC,YAAA,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE;AAC/B,YAAA,MAAM,CAAC,MAAM,GAAG,MAAK;AACnB,gBAAA,MAAM,YAAY,GAAG,MAAM,CAAC,MAAgB;gBAC5C,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACrC,YAAA,CAAC;AACD,YAAA,MAAM,CAAC,OAAO,GAAG,MAAM;AACvB,YAAA,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC;AACjC,QAAA,CAAC,CAAC;IACJ;AAEA;;AAEG;AACH,IAAA,aAAa,iBAAiB,CAAC,KAAa,EAAA;AAC1C,QAAA,OAAO,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,IAAI,MAAM;AAClD,YAAA,IAAI,EAAE,WAAoB;AAC1B,YAAA,SAAS,EAAE,EAAE,GAAG,EAAE,CAAA,uBAAA,EAA0B,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE;SAC/E,CAAC,CAAC,CAAC;IACN;AACD;;AClCD;;AAEG;MACU,gBAAgB,CAAA;AAEjB,IAAA,KAAA;AACA,IAAA,MAAA;IAFV,WAAA,CACU,KAAmB,EACnB,MAA8H,EAAA;QAD9H,IAAA,CAAA,KAAK,GAAL,KAAK;QACL,IAAA,CAAA,MAAM,GAAN,MAAM;IACb;AAEH,IAAA,MAAM,aAAa,CAAI,IAAO,EAAE,QAA6B,EAAA;QAC3D,MAAM,KAAK,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,wBAAwB,EAAE;QACvD,IAAI,SAAS,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAW,KAAK,CAAC;AACrD,QAAA,IAAI,SAAS;AAAE,YAAA,OAAO,SAAS;AAC/B,QAAA,SAAS,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACjI,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC;AACtC,QAAA,OAAO,SAAS;IAClB;AAEA,IAAA,MAAM,IAAI,CAAI,KAAU,EAAE,QAA6B,EAAE,MAAc,EAAA;AACrE,QAAA,MAAM,IAAI,GAAG,CAAC,CAAW,EAAE,CAAW,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;AACvG,QAAA,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC;AACjE,QAAA,MAAM,KAAK,GAAG,MAAM,CAAC,EAAE,CAAC;AACxB,QAAA,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;AACxG,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,gBAAgB,CAAC,EAAE,CAAC,CAAC;AAC5H,QAAA,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,EAAC,IAAI,EAAC,KAAK,IAAI,CAAC;IAC7E;AACD;;ACvBD;;AAEG;AACG,SAAU,cAAc,CAAC,UAAgC,EAAA;AAC7D,IAAA,MAAM,MAAM,GAAG,UAAU,EAAE;IAC3B,OAAO;AACL,QAAA,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,cAAc,EAAE;AACvD,QAAA,EAAE,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE;QACxC,YAAY;AACZ,QAAA,oBAAoB,CAAC,OAAO;YAC1B,MAAM,EAAE,MAAM,CAAC,YAAY;YAC3B,uBAAuB,EAAE,MAAM,CAAC;AACjC,SAAA,CAAC,CAAC;KACJ;AACH;;MCEa,cAAc,CAAA;IACN,MAAM,GAAG,mBAAmB,EAAE;AAC9B,IAAA,MAAM,GAAG,MAAM,CAAC,eAAe,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE;AAC/E,IAAA,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC;AAC5B,IAAA,SAAS,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACtC,IAAA,gBAAgB;AAExB,IAAA,WAAA,GAAA;AACE,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC;IACvE;;IAGA,MAAM,UAAU,CAAC,MAAW,EAAE,UAA8B,EAAE,UAAiC,EAAE,EAAA;QAC/F,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC;IAC3D;IAEA,MAAM,gBAAgB,CAAC,MAAW,EAAE,UAA8B,EAAE,EAClE,YAAY,GAAG,EAAE,EAAE,KAAK,GAAG,QAAQ,EAAE,KAAK,GAAG,EAAE,EAAE,UAAU,GAAG,KAAK,EACnE,MAAM,GAAG,CAAC,EAAE,WAAW,GAAG,CAAC,EAAE,QAAQ,GAAG,CAAC,EACzC,SAAS,GAAG,CAAC,IAAS,KAAK,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,GAAA,GAC3C,EAAE,EAAA;AAC3B,QAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACxB,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;AAC3C,YAAA,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;AAAE,gBAAA,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACzE;QACA,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAC7C,MAAM,WAAW,GAAG,UAAU,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,GAAG,KAAK;AACpG,QAAA,MAAM,QAAQ,GAAiC;AAC7C,YAAA,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE;AACzC,YAAA,IAAI,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;AACzE,YAAA,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE;SAC1B;AACD,QAAA,OAAO,aAAa,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAChC,GAAG,CAAC,MAAM,QAAQ,CAAC,EACnB,SAAS,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,EAC5F,GAAG,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EACtC,SAAS,CAAC,OAAO,OAAO,KAAI;YAC1B,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAW,CAAC,CAAC,CAAC;AACvC,YAAA,IAAI,QAAQ,CAAC,IAAI,KAAK,UAAU;AAAE,gBAAA,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC;AAC9E,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC;AACtD,YAAA,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,MAAM,CAAC;AAC1D,YAAA,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC;AACtC,YAAA,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,MAAM,CAAC;AAC1D,YAAA,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AACrB,gBAAA,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,UAAW,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACzG,gBAAA,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK;AAAE,oBAAA,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACnF,gBAAA,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAClD;iBAAO;AACL,gBAAA,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,UAAW,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACzG,gBAAA,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK;AAAE,oBAAA,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACrF;AACA,YAAA,OAAO,MAAM;AACf,QAAA,CAAC,CAAC,EACF,UAAU,CAAC,CAAC,KAAK,KAAI,EAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAC7D,KAAK,CAAC,QAAQ,CAAC,CAChB,CAAC;IACJ;IAEA,MAAM,SAAS,CAAO,MAAS,EAAE,GAAiB,EAAE,UAA6B,EAAE,EAAA;AACjF,QAAA,MAAM,MAAM,GAAG,eAAe,CAAC,GAAU,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC;QACpE,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,KAAK,CAAC,IAAS,KAAK,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAC7F,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,CAAC;IACnE;IAEA,MAAM,oBAAoB,CAAO,MAAS,EAAE,IAAiB,EAAE,UAA6B,EAAE,EAAA;AAC5F,QAAA,MAAM,UAAU,GAAG,yBAAyB,CAAC,IAAI,CAAuB;QACxE,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,KAAK,CAAC,IAAS,KAAK,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;AACjG,QAAA,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,UAAU,CAAC;AAC9D,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,CAAC;IACvE;IAEA,MAAM,IAAI,CAAO,MAAS,EAAE,IAA6C,EAAE,SAA4B,EAAE,EAAA;QACvG,IAAI,IAAI,YAAY,SAAS;YAAE,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC;QAC1E,IAAI,IAAI,YAAY,QAAQ;YAAE,OAAO,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC;AACpF,QAAA,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;YACzF,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC;QACpD;AACA,QAAA,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC;IACtC;AAEU,IAAA,MAAM,QAAQ,CACtB,MAAW,EAAE,UAA8B,EAAE,QAAsC,EACnF,EAAE,KAAK,GAAG,QAAQ,EAAE,WAAW,GAAG,CAAC,KAAoD,EAAE,EAAA;AAEzF,QAAA,MAAM,IAAI,GAAG,iBAAiB,CAAC,EAAC,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,EAAE,EAAE,UAAU,EAAE,UAAU,EAAC,CAAC;AAC3F,QAAA,MAAM,KAAK,GAAG;AACZ,YAAA,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC;AAC9B,YAAA,WAAW,EAAE,EAAE,IAAI,EAAE,UAAmB,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE;YAC1E,WAAW;SACZ;AACD,QAAA,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC7F,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO;IAC/B;IAEU,MAAM,iBAAiB,CAAC,KAAoC,EAAA;AACpE,QAAA,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAI;YACvE,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;YAChD,OAAqC;AACnC,gBAAA,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE;AACtC,gBAAA,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,EAAE;gBAC/J,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,cAAc,EAAE;aACnE;QACH,CAAC,CAAC,CAAC;AACH,QAAA,OAAO,QAAQ,CAAC,IAAI,EAAqD;IAC3E;IAEQ,MAAM,UAAU,CAAC,KAAU,EAAA;QACjC,IAAI,aAAa,CAAC,KAAK,CAAC;YAAE,OAAO,MAAM,mBAAmB,CAAC,iBAAiB,CAAC,CAAC,KAAK,CAAC,CAAC;aAChF,IAAI,KAAK,KAAK,QAAQ;AAAE,YAAA,OAAO,KAAK;;AACpC,YAAA,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IACnC;uGA9GW,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;2GAAd,cAAc,EAAA,CAAA;;2FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAD1B;;;ACrBD;;ACAA;;AAEG;;;;"}
|
|
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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"}
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nx-ddd/any-func",
|
|
3
|
-
"version": "19.
|
|
3
|
+
"version": "19.36.0",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/core": ">=17.0.0",
|
|
6
|
-
"@nx-ddd/common": "19.
|
|
6
|
+
"@nx-ddd/common": "19.36.0",
|
|
7
7
|
"class-transformer": "^0.5.1",
|
|
8
8
|
"class-validator": "^0.14.0",
|
|
9
9
|
"class-validator-jsonschema": "^5.0.0",
|
|
@@ -63,7 +63,7 @@ declare class AiToolsAgent {
|
|
|
63
63
|
}
|
|
64
64
|
|
|
65
65
|
declare class CacheAdapter {
|
|
66
|
-
protected localStorage:
|
|
66
|
+
protected localStorage: any;
|
|
67
67
|
get<T>(keyOrObj: string | object): Promise<T | null>;
|
|
68
68
|
set(keyOrObj: string | object, value: any): Promise<void>;
|
|
69
69
|
call<P extends (string | object), T>(props: P, callback: (props: P) => Promise<T>): Promise<T>;
|
|
@@ -123,7 +123,7 @@ declare function provideAnyFunc(useFactory?: () => AnyFuncConfig): (typeof Cache
|
|
|
123
123
|
useFactory?: undefined;
|
|
124
124
|
} | {
|
|
125
125
|
provide: i0.InjectionToken<AnyFuncConfig>;
|
|
126
|
-
useFactory: () => AnyFuncConfig;
|
|
126
|
+
useFactory: (() => AnyFuncConfig) | undefined;
|
|
127
127
|
useClass?: undefined;
|
|
128
128
|
})[];
|
|
129
129
|
|