@encodeagent/platform-helper-util 1.2508.1241505

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.
Files changed (122) hide show
  1. package/README.md +121 -0
  2. package/dist/__tests__/core.test.d.ts +5 -0
  3. package/dist/__tests__/core.test.d.ts.map +1 -0
  4. package/dist/__tests__/core.test.js +128 -0
  5. package/dist/__tests__/core.test.js.map +1 -0
  6. package/dist/__tests__/shortid.test.d.ts +5 -0
  7. package/dist/__tests__/shortid.test.d.ts.map +1 -0
  8. package/dist/__tests__/shortid.test.js +72 -0
  9. package/dist/__tests__/shortid.test.js.map +1 -0
  10. package/dist/__tests__/slug.test.d.ts +5 -0
  11. package/dist/__tests__/slug.test.d.ts.map +1 -0
  12. package/dist/__tests__/slug.test.js +31 -0
  13. package/dist/__tests__/slug.test.js.map +1 -0
  14. package/dist/__tests__/token.test.d.ts +5 -0
  15. package/dist/__tests__/token.test.d.ts.map +1 -0
  16. package/dist/__tests__/token.test.js +49 -0
  17. package/dist/__tests__/token.test.js.map +1 -0
  18. package/dist/__tests__/uuid.test.d.ts +5 -0
  19. package/dist/__tests__/uuid.test.d.ts.map +1 -0
  20. package/dist/__tests__/uuid.test.js +42 -0
  21. package/dist/__tests__/uuid.test.js.map +1 -0
  22. package/dist/__tests__/value-of-object.test.d.ts +5 -0
  23. package/dist/__tests__/value-of-object.test.d.ts.map +1 -0
  24. package/dist/__tests__/value-of-object.test.js +49 -0
  25. package/dist/__tests__/value-of-object.test.js.map +1 -0
  26. package/dist/ai/llm.d.ts +90 -0
  27. package/dist/ai/llm.d.ts.map +1 -0
  28. package/dist/ai/llm.js +524 -0
  29. package/dist/ai/llm.js.map +1 -0
  30. package/dist/ai/model.d.ts +14 -0
  31. package/dist/ai/model.d.ts.map +1 -0
  32. package/dist/ai/model.js +120 -0
  33. package/dist/ai/model.js.map +1 -0
  34. package/dist/ai/types.d.ts +85 -0
  35. package/dist/ai/types.d.ts.map +1 -0
  36. package/dist/ai/types.js +15 -0
  37. package/dist/ai/types.js.map +1 -0
  38. package/dist/ai/util.d.ts +28 -0
  39. package/dist/ai/util.d.ts.map +1 -0
  40. package/dist/ai/util.js +43 -0
  41. package/dist/ai/util.js.map +1 -0
  42. package/dist/auth.d.ts +34 -0
  43. package/dist/auth.d.ts.map +1 -0
  44. package/dist/auth.js +568 -0
  45. package/dist/auth.js.map +1 -0
  46. package/dist/colors.d.ts +79 -0
  47. package/dist/colors.d.ts.map +1 -0
  48. package/dist/colors.js +492 -0
  49. package/dist/colors.js.map +1 -0
  50. package/dist/constants.d.ts +86 -0
  51. package/dist/constants.d.ts.map +1 -0
  52. package/dist/constants.js +2578 -0
  53. package/dist/constants.js.map +1 -0
  54. package/dist/core.d.ts +337 -0
  55. package/dist/core.d.ts.map +1 -0
  56. package/dist/core.js +1165 -0
  57. package/dist/core.js.map +1 -0
  58. package/dist/cost.d.ts +35 -0
  59. package/dist/cost.d.ts.map +1 -0
  60. package/dist/cost.js +143 -0
  61. package/dist/cost.js.map +1 -0
  62. package/dist/file.d.ts +55 -0
  63. package/dist/file.d.ts.map +1 -0
  64. package/dist/file.js +273 -0
  65. package/dist/file.js.map +1 -0
  66. package/dist/html.d.ts +44 -0
  67. package/dist/html.d.ts.map +1 -0
  68. package/dist/html.js +420 -0
  69. package/dist/html.js.map +1 -0
  70. package/dist/index.d.ts +53 -0
  71. package/dist/index.d.ts.map +1 -0
  72. package/dist/index.js +313 -0
  73. package/dist/index.js.map +1 -0
  74. package/dist/markdown.d.ts +20 -0
  75. package/dist/markdown.d.ts.map +1 -0
  76. package/dist/markdown.js +38 -0
  77. package/dist/markdown.js.map +1 -0
  78. package/dist/metadata.d.ts +39 -0
  79. package/dist/metadata.d.ts.map +1 -0
  80. package/dist/metadata.js +110 -0
  81. package/dist/metadata.js.map +1 -0
  82. package/dist/record.d.ts +67 -0
  83. package/dist/record.d.ts.map +1 -0
  84. package/dist/record.js +404 -0
  85. package/dist/record.js.map +1 -0
  86. package/dist/shortid.d.ts +42 -0
  87. package/dist/shortid.d.ts.map +1 -0
  88. package/dist/shortid.js +42 -0
  89. package/dist/shortid.js.map +1 -0
  90. package/dist/slug.d.ts +24 -0
  91. package/dist/slug.d.ts.map +1 -0
  92. package/dist/slug.js +43 -0
  93. package/dist/slug.js.map +1 -0
  94. package/dist/token.d.ts +34 -0
  95. package/dist/token.d.ts.map +1 -0
  96. package/dist/token.js +20 -0
  97. package/dist/token.js.map +1 -0
  98. package/dist/tree.d.ts +27 -0
  99. package/dist/tree.d.ts.map +1 -0
  100. package/dist/tree.js +193 -0
  101. package/dist/tree.js.map +1 -0
  102. package/dist/types.d.ts +270 -0
  103. package/dist/types.d.ts.map +1 -0
  104. package/dist/types.js +29 -0
  105. package/dist/types.js.map +1 -0
  106. package/dist/uuid.d.ts +25 -0
  107. package/dist/uuid.d.ts.map +1 -0
  108. package/dist/uuid.js +32 -0
  109. package/dist/uuid.js.map +1 -0
  110. package/dist/value-of-object.d.ts +25 -0
  111. package/dist/value-of-object.d.ts.map +1 -0
  112. package/dist/value-of-object.js +123 -0
  113. package/dist/value-of-object.js.map +1 -0
  114. package/dist/web-content.d.ts +54 -0
  115. package/dist/web-content.d.ts.map +1 -0
  116. package/dist/web-content.js +268 -0
  117. package/dist/web-content.js.map +1 -0
  118. package/dist/web.d.ts +36 -0
  119. package/dist/web.d.ts.map +1 -0
  120. package/dist/web.js +162 -0
  121. package/dist/web.js.map +1 -0
  122. package/package.json +68 -0
@@ -0,0 +1,90 @@
1
+ /**
2
+ * @fileoverview LLM (Large Language Model) utilities for the EncodeAgent platform
3
+ * @author EncodeAgent Team
4
+ * @license MIT
5
+ * @copyright EncodeAgent Platform (C) 2024 All Rights Reserved
6
+ *
7
+ * This source code is part of the EncodeAgent platform helper utilities.
8
+ *
9
+ * THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY
10
+ * OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT
11
+ * LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
12
+ * FITNESS FOR A PARTICULAR PURPOSE.
13
+ */
14
+ import { IKey, IService } from "../types";
15
+ import { TLLMPromptParameter, TLLMParameters, ILLMParameters, TLLMMessage, TLLMRequest, TPromptContent, TAIContext } from "./types";
16
+ import { ICalculateCostProps } from "../cost";
17
+ /**
18
+ * Gets the runtime identifier for an AI model based on the platform
19
+ * @param aiModel - The AI service configuration
20
+ * @param aiKey - The AI key containing platform information
21
+ * @returns The runtime identifier string
22
+ */
23
+ export declare const getLLMRuntime: (aiModel: IService, aiKey: IKey) => string;
24
+ export type TCalculateCostProps = {
25
+ inputTokens?: number;
26
+ outputTokens?: number;
27
+ } & ICalculateCostProps;
28
+ export type TLLMRequestProps = ILLMParameters & {
29
+ context: TAIContext;
30
+ aiKey: IKey;
31
+ messages?: TLLMMessage[];
32
+ tools?: Record<string, any>[];
33
+ prompt?: TPromptContent;
34
+ stream?: boolean;
35
+ };
36
+ /**
37
+ * Constructs a complete LLM request object from the provided parameters
38
+ * @param props - The request properties including context, AI key, messages, and parameters
39
+ * @returns A formatted LLM request object ready for API calls
40
+ * @throws Error if the AI service for the specified model ID doesn't exist
41
+ */
42
+ export declare const getLLMRequest: (props: TLLMRequestProps) => TLLMRequest;
43
+ export type TLLMParametersProps = {
44
+ context: TAIContext;
45
+ modelId: string;
46
+ maxTokens?: number;
47
+ temperature?: number;
48
+ vectorRequired?: boolean;
49
+ vectorMinScore?: number;
50
+ vectorTop?: number;
51
+ };
52
+ /**
53
+ * Validates and constructs LLM parameters with proper defaults and constraints
54
+ * @param props - The parameter properties including context, model ID, and optional settings
55
+ * @returns Validated LLM parameters with applied defaults and constraints
56
+ * @throws Error if the AI service for the specified model ID doesn't exist
57
+ */
58
+ export declare const getLLMParameters: (props: TLLMParametersProps) => TLLMParameters;
59
+ export type TGetLLMPromptResult = {
60
+ type: "success" | "error";
61
+ content: TPromptContent;
62
+ messages?: TLLMMessage[];
63
+ tools?: Record<string, any>[];
64
+ error?: any;
65
+ };
66
+ /**
67
+ * Pre-processes LLM prompt parameters, converting checkbox types to text and applying transformations
68
+ * @param parameters - Array of prompt parameters to process
69
+ * @returns Array of processed prompt parameters with type conversions applied
70
+ */
71
+ export declare const preProcessLLMPromptParameters: (parameters: TLLMPromptParameter[]) => TLLMPromptParameter[];
72
+ export type TOutputFormat = "any" | "markdown" | "plain-text" | "html" | "json" | "xml" | "number";
73
+ export type TGetLLMPrompt = {
74
+ aiContext: TAIContext;
75
+ modelId: string;
76
+ visionId?: string;
77
+ template: string;
78
+ parameters: TLLMPromptParameter[];
79
+ messages?: TLLMMessage[];
80
+ tools?: Record<string, any>[];
81
+ outputFormat?: TOutputFormat;
82
+ };
83
+ /**
84
+ * Processes a template with parameters to generate a complete LLM prompt
85
+ * Handles parameter substitution, media attachments, output formatting, and validation
86
+ * @param props - The prompt generation properties including template, parameters, and context
87
+ * @returns Result object containing the processed prompt content, messages, and tools, or error information
88
+ */
89
+ export declare const getLLMPrompt: (props: TGetLLMPrompt) => TGetLLMPromptResult;
90
+ //# sourceMappingURL=llm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llm.d.ts","sourceRoot":"","sources":["../../src/ai/llm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAsBH,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EACH,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,WAAW,EACX,WAAW,EACX,cAAc,EAEd,UAAU,EACb,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAI9C;;;;;GAKG;AACH,eAAO,MAAM,aAAa,GAAI,SAAS,QAAQ,EAAE,OAAO,IAAI,KAAG,MAY9D,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB,GAAG,mBAAmB,CAAC;AAExB,MAAM,MAAM,gBAAgB,GAAG,cAAc,GAAG;IAC5C,OAAO,EAAE,UAAU,CAAC;IACpB,KAAK,EAAE,IAAI,CAAC;IACZ,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;IAC9B,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,aAAa,GAAI,OAAO,gBAAgB,KAAG,WA4KvD,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAC9B,OAAO,EAAE,UAAU,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GACzB,OAAO,mBAAmB,KAC3B,cAyCF,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAC9B,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC;IAC1B,OAAO,EAAE,cAAc,CAAC;IACxB,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;IAC9B,KAAK,CAAC,EAAE,GAAG,CAAC;CACf,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,GACtC,YAAY,mBAAmB,EAAE,KAClC,mBAAmB,EAyBrB,CAAC;AAEF,MAAM,MAAM,aAAa,GACnB,KAAK,GACL,UAAU,GACV,YAAY,GACZ,MAAM,GACN,MAAM,GACN,KAAK,GACL,QAAQ,CAAC;AAEf,MAAM,MAAM,aAAa,GAAG;IACxB,SAAS,EAAE,UAAU,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,mBAAmB,EAAE,CAAC;IAClC,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;IAC9B,YAAY,CAAC,EAAE,aAAa,CAAC;CAChC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAI,OAAO,aAAa,KAAG,mBAiSnD,CAAC"}
package/dist/ai/llm.js ADDED
@@ -0,0 +1,524 @@
1
+ "use strict";
2
+ /**
3
+ * @fileoverview LLM (Large Language Model) utilities for the EncodeAgent platform
4
+ * @author EncodeAgent Team
5
+ * @license MIT
6
+ * @copyright EncodeAgent Platform (C) 2024 All Rights Reserved
7
+ *
8
+ * This source code is part of the EncodeAgent platform helper utilities.
9
+ *
10
+ * THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY
11
+ * OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT
12
+ * LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
13
+ * FITNESS FOR A PARTICULAR PURPOSE.
14
+ */
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.getLLMPrompt = exports.preProcessLLMPromptParameters = exports.getLLMParameters = exports.getLLMRequest = exports.getLLMRuntime = void 0;
17
+ const lodash_1 = require("lodash");
18
+ const core_1 = require("../core");
19
+ const web_1 = require("../web");
20
+ const model_1 = require("./model");
21
+ /**
22
+ * Gets the runtime identifier for an AI model based on the platform
23
+ * @param aiModel - The AI service configuration
24
+ * @param aiKey - The AI key containing platform information
25
+ * @returns The runtime identifier string
26
+ */
27
+ const getLLMRuntime = (aiModel, aiKey) => {
28
+ const { platform } = aiKey;
29
+ const runtime = aiModel.runtime;
30
+ switch (platform) {
31
+ case "openai":
32
+ case "azure": {
33
+ const runtimeAr = runtime.split("/");
34
+ return runtimeAr.length == 2 ? runtimeAr[1] : runtime;
35
+ }
36
+ }
37
+ return runtime;
38
+ };
39
+ exports.getLLMRuntime = getLLMRuntime;
40
+ /**
41
+ * Constructs a complete LLM request object from the provided parameters
42
+ * @param props - The request properties including context, AI key, messages, and parameters
43
+ * @returns A formatted LLM request object ready for API calls
44
+ * @throws Error if the AI service for the specified model ID doesn't exist
45
+ */
46
+ const getLLMRequest = (props) => {
47
+ const { modelId, stream, maxTokens, aiKey, context, tools } = props;
48
+ const aiService = (0, model_1.getAIService)(context, modelId);
49
+ if (!aiService) {
50
+ throw `ai-service-not-exist-${modelId}`;
51
+ }
52
+ (0, core_1.libTrackIsOn)() &&
53
+ console.log({
54
+ name: "getLLMRequest",
55
+ modelId,
56
+ aiModel: JSON.stringify(aiService)
57
+ });
58
+ const request = {
59
+ model: aiService.runtime,
60
+ temperature: props.temperature ?? 0,
61
+ frequency_penalty: props.frequencyPenalty ?? 0,
62
+ presence_penalty: props.presencePenalty ?? 0,
63
+ repetition_penalty: props.repetitionPenalty ?? 1,
64
+ top_p: props.topP ?? 1,
65
+ top_k: props.topK ?? 0,
66
+ top_a: props.topK ?? 0,
67
+ min_p: props.minP ?? 0,
68
+ messages: [],
69
+ tools
70
+ };
71
+ const prompt = props.prompt ?? {};
72
+ // const lastMessage = last(props.messages);
73
+ let gptMessages = (0, lodash_1.filter)((0, lodash_1.map)(props.messages ?? [], (m) => {
74
+ const { role } = m;
75
+ // const content = isNonEmptyString(m.prompt)
76
+ // ? m.prompt
77
+ // : m.content ?? "";
78
+ // content =
79
+ // prompt.user &&
80
+ // isNonEmptyString(prompt.user) &&
81
+ // lastMessage?.id == m.id
82
+ // ? prompt.user
83
+ // : content;
84
+ const isGoodRole = role.indexOf("system") >= 0 ||
85
+ role.indexOf("user") >= 0 ||
86
+ role.indexOf("assistant") >= 0;
87
+ if (!isGoodRole)
88
+ return undefined;
89
+ if (isGoodRole && (0, core_1.isNonEmptyString)(m.content)) {
90
+ return {
91
+ role,
92
+ content: m.content
93
+ };
94
+ }
95
+ if (isGoodRole && (0, lodash_1.isArray)(m.content) && m.content.length > 0) {
96
+ return m;
97
+ }
98
+ return undefined;
99
+ }), (message) => {
100
+ return !(0, lodash_1.isNil)(message);
101
+ });
102
+ if (prompt.system && (0, core_1.isNonEmptyString)(prompt?.system)) {
103
+ gptMessages.unshift({ role: "system", content: prompt.system });
104
+ }
105
+ if (prompt?.user && (0, core_1.isNonEmptyString)(prompt?.user)) {
106
+ gptMessages.push({ role: "user", content: prompt.user });
107
+ }
108
+ const mediaContentList = [];
109
+ const mediaToAIList = [];
110
+ if (prompt.medias && prompt.medias.length > 0) {
111
+ (0, lodash_1.each)(prompt.medias, (media) => {
112
+ switch (media.type) {
113
+ case "image": {
114
+ const visionService = media.modelId
115
+ ? (0, model_1.getAIService)(context, media.modelId) ?? aiService
116
+ : aiService;
117
+ if (aiService.runtime == visionService.runtime) {
118
+ mediaContentList.push({
119
+ type: "image_url",
120
+ image_url: { url: media.content }
121
+ });
122
+ }
123
+ else {
124
+ mediaToAIList.push({
125
+ type: "image_to_ai",
126
+ modelId: visionService.id,
127
+ url: media.content
128
+ });
129
+ }
130
+ break;
131
+ }
132
+ default: {
133
+ //TODO: video and audio
134
+ break;
135
+ }
136
+ }
137
+ });
138
+ }
139
+ if (mediaContentList.length > 0) {
140
+ //change the last message
141
+ gptMessages[gptMessages.length - 1].content = [
142
+ {
143
+ type: "text",
144
+ text: gptMessages[gptMessages.length - 1].content
145
+ },
146
+ ...mediaContentList
147
+ ];
148
+ }
149
+ if (mediaToAIList.length > 0) {
150
+ //append a new last message with the user prompt
151
+ const lastMessage = (0, lodash_1.cloneDeep)(gptMessages[gptMessages.length - 1]);
152
+ lastMessage.type = "media_to_ai_text";
153
+ gptMessages.pop();
154
+ gptMessages = [
155
+ ...gptMessages,
156
+ ...mediaToAIList,
157
+ lastMessage
158
+ ];
159
+ }
160
+ const runtime = (0, exports.getLLMRuntime)(aiService, aiKey);
161
+ (0, core_1.libTrackIsOn)() &&
162
+ console.log({
163
+ runtime,
164
+ aiKey
165
+ });
166
+ const llmRequest = {
167
+ ...request,
168
+ model: runtime
169
+ };
170
+ if (aiKey.platform == "openai" && llmRequest.stream) {
171
+ llmRequest.stream_options = { include_usage: true };
172
+ }
173
+ switch (aiKey.platform) {
174
+ case "openai":
175
+ case "azure": {
176
+ delete llmRequest.repetition_penalty;
177
+ delete llmRequest.top_k;
178
+ delete llmRequest.top_a;
179
+ delete llmRequest.min_p;
180
+ break;
181
+ }
182
+ default: {
183
+ break;
184
+ }
185
+ }
186
+ return {
187
+ ...llmRequest,
188
+ max_tokens: aiService.output.maxTokens && maxTokens > aiService.output.maxTokens
189
+ ? aiService.output.maxTokens
190
+ : maxTokens,
191
+ messages: gptMessages,
192
+ stream: stream == true
193
+ };
194
+ };
195
+ exports.getLLMRequest = getLLMRequest;
196
+ /**
197
+ * Validates and constructs LLM parameters with proper defaults and constraints
198
+ * @param props - The parameter properties including context, model ID, and optional settings
199
+ * @returns Validated LLM parameters with applied defaults and constraints
200
+ * @throws Error if the AI service for the specified model ID doesn't exist
201
+ */
202
+ const getLLMParameters = (props) => {
203
+ const { context, modelId } = props;
204
+ const aiService = (0, model_1.getAIService)(context, modelId);
205
+ if (!aiService) {
206
+ throw `ai-service-not-exist-${modelId}`;
207
+ }
208
+ const maxTokens = props.maxTokens &&
209
+ aiService.output.maxTokens &&
210
+ props.maxTokens > aiService.output.maxTokens
211
+ ? aiService.output.maxTokens
212
+ : props.maxTokens ?? 256;
213
+ const result = {
214
+ maxTokens,
215
+ temperature: props?.temperature &&
216
+ (0, lodash_1.isNumber)(props?.temperature) &&
217
+ props?.temperature >= 0 &&
218
+ props?.temperature <= 2
219
+ ? props?.temperature
220
+ : 0,
221
+ modelId: aiService.id,
222
+ vectorRequired: props?.vectorRequired == true,
223
+ vectorMinScore: props?.vectorMinScore &&
224
+ (0, lodash_1.isNumber)(props?.vectorMinScore) &&
225
+ props?.vectorMinScore <= 1
226
+ ? props?.vectorMinScore
227
+ : 0.81,
228
+ vectorTop: props?.vectorTop &&
229
+ (0, lodash_1.isNumber)(props?.vectorTop) &&
230
+ props?.vectorTop > 0
231
+ ? props?.vectorTop
232
+ : 4
233
+ };
234
+ return result;
235
+ };
236
+ exports.getLLMParameters = getLLMParameters;
237
+ /**
238
+ * Pre-processes LLM prompt parameters, converting checkbox types to text and applying transformations
239
+ * @param parameters - Array of prompt parameters to process
240
+ * @returns Array of processed prompt parameters with type conversions applied
241
+ */
242
+ const preProcessLLMPromptParameters = (parameters) => {
243
+ return (0, lodash_1.map)(parameters, (p) => {
244
+ switch (p.type) {
245
+ case "checkbox": {
246
+ let value = (0, core_1.isNonEmptyString)(p.value) ? p.value : p.default;
247
+ if (((0, core_1.isNonEmptyString)(p.label) &&
248
+ value != "ignore" &&
249
+ value != "false") ||
250
+ value == "apply" ||
251
+ value == p.label ||
252
+ value == true ||
253
+ value == "true") {
254
+ value = p.label;
255
+ }
256
+ else {
257
+ value = "";
258
+ }
259
+ p.value = value;
260
+ p.type = "text";
261
+ break;
262
+ }
263
+ }
264
+ return p;
265
+ });
266
+ };
267
+ exports.preProcessLLMPromptParameters = preProcessLLMPromptParameters;
268
+ /**
269
+ * Processes a template with parameters to generate a complete LLM prompt
270
+ * Handles parameter substitution, media attachments, output formatting, and validation
271
+ * @param props - The prompt generation properties including template, parameters, and context
272
+ * @returns Result object containing the processed prompt content, messages, and tools, or error information
273
+ */
274
+ const getLLMPrompt = (props) => {
275
+ const { aiContext, modelId, visionId, template, parameters, outputFormat, tools } = props;
276
+ const outputFormatPrompts = aiContext?.solution?.ai?.default?.prompt?.outputFormat ?? {};
277
+ //modelId maybe used in the future
278
+ (0, core_1.doNothing)(modelId);
279
+ const messages = props.messages ?? [];
280
+ let outputFormatPrompt = outputFormatPrompts[`${outputFormat}`];
281
+ if (!(0, core_1.isNonEmptyString)(outputFormatPrompt)) {
282
+ switch (outputFormat) {
283
+ case "plain-text":
284
+ case "markdown": {
285
+ outputFormatPrompt = `The output has to be in a ${outputFormat} format.`;
286
+ break;
287
+ }
288
+ case "html": {
289
+ outputFormatPrompt =
290
+ "The output has to be in HTML format without having HTML page elements and without using markdown.";
291
+ break;
292
+ }
293
+ case "json": {
294
+ outputFormatPrompt = "The output has to be in a JSON format.";
295
+ break;
296
+ }
297
+ case "xml": {
298
+ outputFormatPrompt = "The output has to be in a XML format.";
299
+ break;
300
+ }
301
+ case "number": {
302
+ outputFormatPrompt = "The output has to be a number.";
303
+ break;
304
+ }
305
+ default: {
306
+ break;
307
+ }
308
+ }
309
+ }
310
+ if ((0, core_1.isNonEmptyString)(outputFormatPrompt)) {
311
+ messages.unshift({
312
+ role: "system",
313
+ content: outputFormatPrompt
314
+ });
315
+ }
316
+ let result = {
317
+ type: "success",
318
+ content: {},
319
+ messages,
320
+ tools
321
+ };
322
+ const medias = [];
323
+ let prompt = template;
324
+ let user = "";
325
+ const promptParameters = (0, exports.preProcessLLMPromptParameters)(parameters);
326
+ for (let i = 0; i < promptParameters.length; i++) {
327
+ const p = promptParameters[i];
328
+ let curValue = p.value;
329
+ if (curValue == "undefined") {
330
+ curValue = undefined;
331
+ }
332
+ if ((0, lodash_1.isNil)(curValue) && !(0, lodash_1.isNil)(p.default)) {
333
+ curValue = p.default;
334
+ }
335
+ let isMessage = false;
336
+ let isImage = false;
337
+ let goodValue = false;
338
+ // if (p.type == "content" && p.name != "content") {
339
+ // curValue = undefined;
340
+ // p.required = false;
341
+ // result = result.replace(new RegExp(`{{${p.name}}}`, "g"), "");
342
+ // }
343
+ if (!(0, lodash_1.isNil)(curValue)) {
344
+ switch (p.type) {
345
+ case "array": {
346
+ if ((0, lodash_1.isArray)(curValue)) {
347
+ curValue = JSON.stringify(curValue);
348
+ goodValue = true;
349
+ }
350
+ break;
351
+ }
352
+ case "object": {
353
+ if ((0, lodash_1.isObject)(curValue)) {
354
+ curValue = JSON.stringify(curValue);
355
+ goodValue = true;
356
+ }
357
+ break;
358
+ }
359
+ case "boolean": {
360
+ const n = (0, lodash_1.isBoolean)(curValue)
361
+ ? curValue
362
+ : (0, core_1.isNonEmptyString)(curValue)
363
+ ? curValue.toLowerCase() == "true"
364
+ : false;
365
+ if ((0, lodash_1.isBoolean)(n)) {
366
+ goodValue = true;
367
+ }
368
+ break;
369
+ }
370
+ case "int": {
371
+ const n = (0, lodash_1.isString)(curValue)
372
+ ? parseInt(curValue)
373
+ : curValue;
374
+ if ((0, lodash_1.isInteger)(n)) {
375
+ goodValue = true;
376
+ }
377
+ break;
378
+ }
379
+ case "float": {
380
+ const n = (0, lodash_1.isString)(curValue)
381
+ ? parseFloat(curValue)
382
+ : curValue;
383
+ if ((0, lodash_1.isNumber)(n)) {
384
+ goodValue = true;
385
+ }
386
+ break;
387
+ }
388
+ case "list": {
389
+ if (curValue && (0, lodash_1.isString)(curValue) && curValue.length > 0) {
390
+ goodValue = true;
391
+ const items = (0, lodash_1.map)((0, lodash_1.filter)((0, lodash_1.map)(curValue.replace(/\n/g, ",").split(","), (v) => {
392
+ return v.trim().length > 0
393
+ ? v.trim()
394
+ : "";
395
+ }), (v) => {
396
+ return v.length > 0;
397
+ }), (v, index) => {
398
+ return v.trim().length > 0
399
+ ? `${index > 0 ? "\n" : ""}${index + 1}. ${v.trim()}`
400
+ : "";
401
+ });
402
+ curValue = items.join("");
403
+ }
404
+ break;
405
+ }
406
+ case "message": {
407
+ isMessage = true;
408
+ break;
409
+ }
410
+ case "image": {
411
+ medias.push({
412
+ type: "image",
413
+ content: curValue,
414
+ modelId: visionId
415
+ });
416
+ isImage = true;
417
+ break;
418
+ }
419
+ default: {
420
+ //text, string, textarea
421
+ if (curValue.length > 0) {
422
+ goodValue = true;
423
+ }
424
+ break;
425
+ }
426
+ }
427
+ }
428
+ else {
429
+ if (!p.required)
430
+ goodValue = true;
431
+ }
432
+ if (!isImage && !isMessage) {
433
+ if (goodValue) {
434
+ prompt = prompt
435
+ .replace(new RegExp(`{{${p.name}}}`, "g"), `${curValue}`)
436
+ .replace(new RegExp(`{${p.name}}`, "g"), `${curValue}`);
437
+ }
438
+ else {
439
+ if (!p.required) {
440
+ prompt = prompt
441
+ .replace(new RegExp(`{{${p.name}}}`, "g"), "")
442
+ .replace(new RegExp(`{${p.name}}`, "g"), "");
443
+ }
444
+ else {
445
+ return {
446
+ type: "error",
447
+ content: {
448
+ system: `The parameter "${p.name}" does not have a good value.`
449
+ }
450
+ };
451
+ }
452
+ }
453
+ }
454
+ else {
455
+ if (!(0, core_1.isNonEmptyString)(curValue)) {
456
+ return {
457
+ type: "error",
458
+ content: {
459
+ system: `The parameter "${p.name}" does not have a good value.`
460
+ }
461
+ };
462
+ }
463
+ if (isImage && !(0, web_1.isValidUrl)(curValue)) {
464
+ return {
465
+ type: "error",
466
+ content: {
467
+ system: `The parameter "${p.name}" does not have a good value.`
468
+ }
469
+ };
470
+ }
471
+ user = "";
472
+ if (isMessage) {
473
+ prompt = prompt.replace(new RegExp(`{{${p.name}}}`, "g"), `${p.label?.toLowerCase() ?? p.name} (below the "MESSAGE" line). The result must NOT include "MESSAGE" line itself.`);
474
+ user = `MESSAGE\r\n${curValue ?? ""}`;
475
+ }
476
+ // if (isImage) {
477
+ // prompt = prompt.replace(
478
+ // new RegExp(`{{${p.name}}}`, "g"),
479
+ // `${
480
+ // p.label?.toLowerCase() ?? p.name
481
+ // } (below PHOTO line). The result must NOT include "MESSAGE" line itself.`
482
+ // );
483
+ // user = `PHOTO\r\n${curValue ?? ""}`;
484
+ // }
485
+ if (isImage) {
486
+ prompt = prompt.replace(new RegExp(`{{${p.name}}}`, "g"), "image");
487
+ }
488
+ }
489
+ }
490
+ if (prompt?.indexOf("{{") >= 0 || prompt?.indexOf("}}") >= 0) {
491
+ const regex = /{{([^{}]+)}}/g;
492
+ let matches = [];
493
+ let match;
494
+ // Use regex.exec() in a loop to find all matches in the string
495
+ while ((match = regex.exec(prompt)) !== null) {
496
+ // The first capture group is the content inside the braces
497
+ matches.push(match[1]);
498
+ }
499
+ (0, core_1.libTrackIsOn)() && console.log({ matches });
500
+ (0, core_1.libTrackIsOn)() &&
501
+ console.log({ parameters: JSON.stringify(parameters) });
502
+ return {
503
+ type: "error",
504
+ content: { system: "parameter-missing-value" },
505
+ error: matches
506
+ };
507
+ }
508
+ //For some reason, when put a \n\n at the end of the prompt, it works better
509
+ //I noticed in some prompt people use Final Answer: at the end of the prompt, this is confusing
510
+ //It seems double \n will do the same
511
+ //remove all \n at the end of prompt first
512
+ prompt = `${(0, core_1.trimNewLine)(prompt)}`;
513
+ if (user.length == 0) {
514
+ //if there is no value in user part, we do not need system
515
+ //instead we put content in system to user
516
+ result.content = { user: prompt, medias };
517
+ }
518
+ else {
519
+ result.content = { user: `${prompt}\r\n${user}`, medias };
520
+ }
521
+ return result;
522
+ };
523
+ exports.getLLMPrompt = getLLMPrompt;
524
+ //# sourceMappingURL=llm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llm.js","sourceRoot":"","sources":["../../src/ai/llm.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { IService } from "../types";
2
+ import { TAIContext } from "./types";
3
+ export declare const getAIProviders: (context: TAIContext) => Record<string, any>[];
4
+ export declare const getAIProvider: (context: TAIContext, id: string) => Record<string, any> | undefined;
5
+ export declare const getAIPlatforms: (context: TAIContext) => Record<string, any>[];
6
+ export declare const getAIPlatform: (context: TAIContext, id: string) => Record<string, any> | undefined;
7
+ export declare const getAIModels: (context: TAIContext, type?: string) => Record<string, any>[];
8
+ export declare const getAIModel: (context: TAIContext, id: string, defaultId?: string) => Record<string, any> | undefined;
9
+ export declare const getAIServices: (context: TAIContext, type?: string) => IService[];
10
+ export declare const getDefaultAIServiceId: (context: TAIContext, type: string) => string;
11
+ export declare const getDefaultAIService: (context: TAIContext, type: string) => IService;
12
+ export declare const getAIService: (context: TAIContext, id: string, defaultId?: string) => IService | undefined;
13
+ export declare const convertAIModelRecordsToAIServices: (records: Record<string, any>[]) => IService[];
14
+ //# sourceMappingURL=model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/ai/model.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGrC,eAAO,MAAM,cAAc,GAAI,SAAS,UAAU,KAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAGvE,CAAC;AAEF,eAAO,MAAM,aAAa,GACtB,SAAS,UAAU,EACnB,IAAI,MAAM,KACX,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAExB,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,SAAS,UAAU,KAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAGvE,CAAC;AAEF,eAAO,MAAM,aAAa,GACtB,SAAS,UAAU,EACnB,IAAI,MAAM,KACX,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAExB,CAAC;AAEF,eAAO,MAAM,WAAW,GACpB,SAAS,UAAU,EACnB,OAAO,MAAM,KACd,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAMrB,CAAC;AAEF,eAAO,MAAM,UAAU,GACnB,SAAS,UAAU,EACnB,IAAI,MAAM,EACV,YAAY,MAAM,KACnB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SASxB,CAAC;AAEF,eAAO,MAAM,aAAa,GACtB,SAAS,UAAU,EACnB,OAAO,MAAM,KACd,QAAQ,EAKV,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAC9B,SAAS,UAAU,EACnB,MAAM,MAAM,KACb,MAsBF,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC5B,SAAS,UAAU,EACnB,MAAM,MAAM,KACb,QAKF,CAAC;AAEF,eAAO,MAAM,YAAY,GACrB,SAAS,UAAU,EACnB,IAAI,MAAM,EACV,YAAY,MAAM,KACnB,QAAQ,GAAG,SAeb,CAAC;AAEF,eAAO,MAAM,iCAAiC,GAC1C,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAC/B,QAAQ,EAoDV,CAAC"}