@cognigy/rest-api-client 0.17.0 → 0.19.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.
Files changed (191) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/build/GenericTusFn.js +6 -1
  3. package/build/GenericUploadFn.js +3 -5
  4. package/build/apigroups/AdministrationAPIGroup_2_0.js +3 -1
  5. package/build/apigroups/MetricsAPIGroup_2_0.js +5 -0
  6. package/build/apigroups/ResourcesAPIGroup_2_0.js +21 -7
  7. package/build/connector/AxiosAdapter.js +35 -15
  8. package/build/shared/charts/createNodeDescriptor.js +5 -5
  9. package/build/shared/charts/descriptors/agentAssist/constants/constants.js +16 -1
  10. package/build/shared/charts/descriptors/agentAssist/helpers/agentAssistTranslator.helper.js +19 -0
  11. package/build/shared/charts/descriptors/agentAssist/helpers/determineMetadata.js +15 -0
  12. package/build/shared/charts/descriptors/agentAssist/helpers/getFontSizeFieldOptions.js +84 -0
  13. package/build/shared/charts/descriptors/agentAssist/helpers/getLanguageName.helper.js +33 -0
  14. package/build/shared/charts/descriptors/agentAssist/helpers/knowledgeSearch/answerExtraction.helper.js +59 -0
  15. package/build/shared/charts/descriptors/agentAssist/helpers/knowledgeSearch/configValidator.helper.js +20 -0
  16. package/build/shared/charts/descriptors/agentAssist/helpers/knowledgeSearch/errorHandler.helper.js +64 -0
  17. package/build/shared/charts/descriptors/agentAssist/helpers/knowledgeSearch/followUpDetection.helper.js +72 -0
  18. package/build/shared/charts/descriptors/agentAssist/helpers/knowledgeSearch/knowledgeSearch.helper.js +58 -0
  19. package/build/shared/charts/descriptors/agentAssist/helpers/sentiment.helper.js +7 -13
  20. package/build/shared/charts/descriptors/agentAssist/htmlTemplates/identityAssistTemplate.js +17 -18
  21. package/build/shared/charts/descriptors/agentAssist/htmlTemplates/knowledgeAssistTemplate.js +330 -153
  22. package/build/shared/charts/descriptors/agentAssist/htmlTemplates/nextActionWidgetTemplate.js +212 -80
  23. package/build/shared/charts/descriptors/agentAssist/htmlTemplates/sentimentAnalysisTemplate.js +11 -6
  24. package/build/shared/charts/descriptors/agentAssist/htmlTemplates/transcriptAssistTemplate.js +15 -13
  25. package/build/shared/charts/descriptors/agentAssist/identityAssist.js +88 -15
  26. package/build/shared/charts/descriptors/agentAssist/knowledgeAssist.js +192 -327
  27. package/build/shared/charts/descriptors/agentAssist/locales/cs.locale.js +11 -0
  28. package/build/shared/charts/descriptors/agentAssist/locales/de.locale.js +11 -0
  29. package/build/shared/charts/descriptors/agentAssist/locales/en.locale.js +11 -0
  30. package/build/shared/charts/descriptors/agentAssist/locales/es.locale.js +11 -0
  31. package/build/shared/charts/descriptors/agentAssist/locales/fr.locale.js +11 -0
  32. package/build/shared/charts/descriptors/agentAssist/locales/index.js +22 -0
  33. package/build/shared/charts/descriptors/agentAssist/locales/ja.locale.js +11 -0
  34. package/build/shared/charts/descriptors/agentAssist/locales/ko.locale.js +11 -0
  35. package/build/shared/charts/descriptors/agentAssist/locales/pt.locale.js +11 -0
  36. package/build/shared/charts/descriptors/agentAssist/nextActionAssist.js +484 -10
  37. package/build/shared/charts/descriptors/agentAssist/sentimentAssist.js +32 -9
  38. package/build/shared/charts/descriptors/agentAssist/setAdaptiveCardTile.js +2 -0
  39. package/build/shared/charts/descriptors/agentAssist/setAgentAssistGrid.js +2 -1
  40. package/build/shared/charts/descriptors/agentAssist/setHtmlTile.js +5 -3
  41. package/build/shared/charts/descriptors/agentAssist/setIframeTile.js +5 -3
  42. package/build/shared/charts/descriptors/agentAssist/setSecureFormsTile.js +2 -2
  43. package/build/shared/charts/descriptors/agentAssist/transcriptAssist.js +42 -3
  44. package/build/shared/charts/descriptors/analytics/activateProfile.js +1 -0
  45. package/build/shared/charts/descriptors/analytics/blindMode.js +2 -0
  46. package/build/shared/charts/descriptors/analytics/completeGoal.js +1 -0
  47. package/build/shared/charts/descriptors/analytics/deactivateProfile.js +1 -0
  48. package/build/shared/charts/descriptors/analytics/deleteProfile.js +1 -0
  49. package/build/shared/charts/descriptors/analytics/index.js +3 -1
  50. package/build/shared/charts/descriptors/analytics/mergeProfile.js +1 -0
  51. package/build/shared/charts/descriptors/analytics/overwriteAnalytics.js +9 -0
  52. package/build/shared/charts/descriptors/analytics/requestRating.js +56 -2
  53. package/build/shared/charts/descriptors/analytics/setRating.js +4 -2
  54. package/build/shared/charts/descriptors/analytics/trackMilestone.js +95 -0
  55. package/build/shared/charts/descriptors/analytics/updateProfile.js +1 -0
  56. package/build/shared/charts/descriptors/apps/initAppSession.js +1 -0
  57. package/build/shared/charts/descriptors/apps/setAdaptiveCardAppState.js +35 -10
  58. package/build/shared/charts/descriptors/apps/setHtmlAppState.js +25 -2
  59. package/build/shared/charts/descriptors/apps/utils/getXAppsOverlaySettings.js +54 -0
  60. package/build/shared/charts/descriptors/connectionNodes/documentParserProviders/azureAIDocumentIntelligenceConnection.js +12 -0
  61. package/build/shared/charts/descriptors/connectionNodes/documentParserProviders/index.js +13 -0
  62. package/build/shared/charts/descriptors/connectionNodes/generativeAIProviders/awsBedrockProviderConnection.js +12 -0
  63. package/build/shared/charts/descriptors/connectionNodes/generativeAIProviders/azureOpenAIProviderConnection.js +4 -3
  64. package/build/shared/charts/descriptors/connectionNodes/generativeAIProviders/azureOpenAIProviderConnectionV2.js +3 -3
  65. package/build/shared/charts/descriptors/connectionNodes/generativeAIProviders/azureOpenAIProviderOauth2Connection.js +14 -0
  66. package/build/shared/charts/descriptors/connectionNodes/generativeAIProviders/index.js +16 -8
  67. package/build/shared/charts/descriptors/connectionNodes/generativeAIProviders/openAIProviderConnection.js +3 -3
  68. package/build/shared/charts/descriptors/data/addToContext.js +7 -0
  69. package/build/shared/charts/descriptors/data/copyDataToContext.js +3 -0
  70. package/build/shared/charts/descriptors/data/copySlotsToContext.js +3 -0
  71. package/build/shared/charts/descriptors/data/debugMessage.js +73 -0
  72. package/build/shared/charts/descriptors/data/index.js +3 -1
  73. package/build/shared/charts/descriptors/data/removeFromContext.js +9 -1
  74. package/build/shared/charts/descriptors/data/resetContext.js +1 -0
  75. package/build/shared/charts/descriptors/index.js +8 -4
  76. package/build/shared/charts/descriptors/knowledgeSearch/searchExtractOutput.js +36 -11
  77. package/build/shared/charts/descriptors/logic/resetState.js +1 -0
  78. package/build/shared/charts/descriptors/logic/setState.js +2 -1
  79. package/build/shared/charts/descriptors/logic/setTranslation.js +3 -1
  80. package/build/shared/charts/descriptors/logic/switchLocale.js +1 -0
  81. package/build/shared/charts/descriptors/logic/think.js +3 -1
  82. package/build/shared/charts/descriptors/logic/thinkV2.js +2 -0
  83. package/build/shared/charts/descriptors/message/question/optionalQuestion.js +1 -1
  84. package/build/shared/charts/descriptors/message/question/question.js +173 -7
  85. package/build/shared/charts/descriptors/message/question/utils/evaluateQuestionAnswer.js +44 -3
  86. package/build/shared/charts/descriptors/message/question/utils/validateQuestionAnswer.js +4 -2
  87. package/build/shared/charts/descriptors/nlu/cleanText.js +1 -0
  88. package/build/shared/charts/descriptors/nlu/fuzzySearch.js +23 -1
  89. package/build/shared/charts/descriptors/nlu/generativeSlotFiller/prompt.js +45 -19
  90. package/build/shared/charts/descriptors/nlu/index.js +1 -3
  91. package/build/shared/charts/descriptors/service/GPTPrompt.js +362 -29
  92. package/build/shared/charts/descriptors/service/LLMEntityExtract.js +283 -0
  93. package/build/shared/charts/descriptors/service/handoverV2.js +84 -1
  94. package/build/shared/charts/descriptors/service/httpRequest.js +68 -3
  95. package/build/shared/charts/descriptors/service/index.js +3 -1
  96. package/build/shared/charts/descriptors/voice/mappers/setSessionConfig.mapper.js +110 -27
  97. package/build/shared/charts/descriptors/voice/mappers/transfer.mapper.js +4 -4
  98. package/build/shared/charts/descriptors/voice/nodes/bargeIn.js +2 -0
  99. package/build/shared/charts/descriptors/voice/nodes/continuousAsr.js +2 -0
  100. package/build/shared/charts/descriptors/voice/nodes/dtmf.js +2 -0
  101. package/build/shared/charts/descriptors/voice/nodes/muteSpeechInput.js +1 -0
  102. package/build/shared/charts/descriptors/voice/nodes/noUserInput.js +2 -0
  103. package/build/shared/charts/descriptors/voice/nodes/play.js +8 -1
  104. package/build/shared/charts/descriptors/voice/nodes/sessionSpeechParameters.js +46 -45
  105. package/build/shared/charts/descriptors/voice/nodes/transfer.js +2 -0
  106. package/build/shared/charts/descriptors/voicegateway2/nodes/dtmf.js +2 -0
  107. package/build/shared/charts/descriptors/voicegateway2/nodes/hangup.js +2 -0
  108. package/build/shared/charts/descriptors/voicegateway2/nodes/muteSpeechInput.js +3 -0
  109. package/build/shared/charts/descriptors/voicegateway2/nodes/play.js +1 -1
  110. package/build/shared/charts/descriptors/voicegateway2/nodes/record.js +1 -0
  111. package/build/shared/charts/descriptors/voicegateway2/nodes/refer.js +1 -0
  112. package/build/shared/charts/descriptors/voicegateway2/nodes/sendMetadata.js +1 -0
  113. package/build/shared/charts/descriptors/voicegateway2/nodes/setSessionConfig.js +329 -47
  114. package/build/shared/charts/descriptors/voicegateway2/nodes/transfer.js +27 -31
  115. package/build/shared/charts/descriptors/voicegateway2/utils/helper.js +2 -2
  116. package/build/shared/charts/helpers/generativeAI/generativeAIPrompts.js +55 -0
  117. package/build/shared/charts/helpers/generativeAI/rephraseSentenceWithAi.js +4 -2
  118. package/build/shared/constants.js +10 -1
  119. package/build/shared/handoverClients/interfaces/THandoverEventType.js +1 -0
  120. package/build/shared/helper/logFullConfigToDebugMode.js +30 -0
  121. package/build/shared/helper/nlu/textCleaner.js +3 -1
  122. package/build/shared/interfaces/IOrganisation.js +1 -0
  123. package/build/shared/interfaces/IProfile.js +1 -0
  124. package/build/shared/interfaces/IProfileSchema.js +3 -0
  125. package/build/shared/interfaces/analytics/IAnalyticsSourceData.js +20 -20
  126. package/build/shared/interfaces/{restAPI/resources/journey/v2.0/IJourneyProgress_2_0.js → analytics/IMilestoneAnalytics.js} +1 -1
  127. package/build/shared/interfaces/{restAPI/resources/journey/v2.0/IJourney_2_0.js → appsession/IAppSession.js} +1 -1
  128. package/build/shared/interfaces/{restAPI/resources/journey/v2.0/IJourneyStep_2_0.js → appsession/ISetAppState.js} +1 -1
  129. package/build/shared/interfaces/appsession/ISetAppStateOptions.js +3 -0
  130. package/build/shared/interfaces/appsession/ISetAppStateOverlaySettings.js +3 -0
  131. package/build/shared/interfaces/appsession/ISetAppStateOverlaySettingsMetaData.js +3 -0
  132. package/build/shared/interfaces/debugEvents/TDebugEventMessagePayload.js +3 -0
  133. package/build/shared/interfaces/debugEvents/TDebugEventType.js +2 -0
  134. package/build/shared/interfaces/fileStorage.js +6 -0
  135. package/build/shared/interfaces/generativeAI/IGenerativeAIModels.js +45 -52
  136. package/build/shared/interfaces/handover.js +44 -2
  137. package/build/shared/interfaces/license.js +3 -2
  138. package/build/shared/interfaces/license.js.map +1 -1
  139. package/build/shared/interfaces/messageAPI/endpoints.js +17 -2
  140. package/build/shared/interfaces/messageAPI/handover.js +25 -2
  141. package/build/shared/interfaces/nlu/nlu.js +3 -0
  142. package/build/shared/interfaces/resources/IAuditEvent.js +10 -9
  143. package/build/shared/interfaces/resources/IConnection.js +1 -0
  144. package/build/shared/interfaces/resources/IEndpoint.js +1 -2
  145. package/build/shared/interfaces/resources/ILargeLanguageModel.js +56 -21
  146. package/build/shared/interfaces/resources/IMilestone.js +50 -0
  147. package/build/shared/interfaces/resources/INodeDescriptorSet.js +96 -75
  148. package/build/shared/interfaces/resources/TResourceType.js +12 -5
  149. package/build/shared/interfaces/resources/knowledgeStore/IKnowledgeSource.js +1 -1
  150. package/build/shared/interfaces/resources/settings/IAgentSettings.js +12 -7
  151. package/build/shared/interfaces/resources/settings/IGenerativeAISettings.js +8 -0
  152. package/build/shared/interfaces/resources/settings/IKnowledgeAISettings.js +18 -0
  153. package/build/shared/interfaces/resources/settings/index.js +4 -1
  154. package/build/shared/interfaces/restAPI/administration/organisations/v2.0/IReadCollectionsToBeDeletedRest_2_0.js +0 -1
  155. package/build/shared/interfaces/restAPI/administration/organisations/v2.0/IReadOrganisationKnowledgeChunksCountRest_2_0.js +3 -0
  156. package/build/shared/interfaces/restAPI/operations/index.js +3 -0
  157. package/build/shared/interfaces/restAPI/operations/nlu/v2.0/IGenerateNluScoresRest_2_0.js +57 -0
  158. package/build/shared/interfaces/restAPI/operations/nlu/v2.0/index.js +3 -0
  159. package/build/shared/interfaces/restAPI/resources/largeLanguageModel/v2.0/IAvailableModelsForLLMProvider_2_0 .js +18 -0
  160. package/build/shared/interfaces/restAPI/resources/largeLanguageModel/v2.0/IGetAvailableModelsForLLMRest_2_0 .js +3 -0
  161. package/build/shared/interfaces/restAPI/resources/{journey/v2.0/IJourneyIndexItem_2_0.js → milestone/v2.0/ICloneMilestoneRest_2_0.js} +1 -1
  162. package/build/shared/interfaces/restAPI/resources/milestone/v2.0/ICreateMilestoneRest_2_0.js +3 -0
  163. package/build/shared/interfaces/restAPI/resources/milestone/v2.0/IDeleteMilestoneRest_2_0.js +3 -0
  164. package/build/shared/interfaces/restAPI/resources/milestone/v2.0/IIndexMilestonesRest_2_0.js +3 -0
  165. package/build/shared/interfaces/restAPI/resources/milestone/v2.0/IMilestoneIndexItem_2_0.js +3 -0
  166. package/build/shared/interfaces/restAPI/resources/milestone/v2.0/IMilestoneStepMetric_2_0.js +3 -0
  167. package/build/shared/interfaces/restAPI/resources/milestone/v2.0/IMilestoneStep_2_0.js +3 -0
  168. package/build/shared/interfaces/restAPI/resources/milestone/v2.0/IMilestone_2_0.js +3 -0
  169. package/build/shared/interfaces/restAPI/resources/{journey/v2.0/IIndexJourneysRest_2_0.js → milestone/v2.0/IReadMilestoneRest_2_0.js} +1 -1
  170. package/build/shared/interfaces/restAPI/resources/milestone/v2.0/IUpdateMilestoneRest_2_0.js +3 -0
  171. package/build/shared/interfaces/restAPI/resources/milestone/v2.0/index.js +3 -0
  172. package/build/shared/interfaces/restAPI/resources/uploadResumable/v2.0/IUploadResumableRest_2_0.js +3 -1
  173. package/build/shared/interfaces/security/IPermission.js +4 -2
  174. package/build/shared/interfaces/security/IRole.js +2 -0
  175. package/build/shared/interfaces/security/ISystemCapabilities.js +3 -0
  176. package/build/shared/interfaces/security/index.js +1 -1
  177. package/build/shared/interfaces/trainer/ITrainerRecord.js +2 -2
  178. package/build/shared/interfaces/user.js +1 -1
  179. package/package.json +2 -2
  180. package/types/index.d.ts +2194 -957
  181. package/build/shared/charts/descriptors/nlu/extractAnswer.js +0 -115
  182. package/build/shared/interfaces/journeys/IJourney.js +0 -83
  183. package/build/shared/interfaces/journeys/IJourneyProgress.js +0 -40
  184. package/build/shared/interfaces/journeys/IJourneyTrackEvent.js +0 -35
  185. package/build/shared/interfaces/journeys/index.js +0 -14
  186. package/build/shared/interfaces/restAPI/resources/journey/v2.0/IJourneyTrackEvents_2_0.js +0 -3
  187. package/build/shared/interfaces/restAPI/resources/journey/v2.0/IReadJourneyProgressRest_2_0.js +0 -3
  188. package/build/shared/interfaces/restAPI/resources/journey/v2.0/IReadJourneyRest_2_0.js +0 -3
  189. package/build/shared/interfaces/restAPI/resources/journey/v2.0/ITrackJourneyEventRest_2_0.js +0 -3
  190. package/build/shared/interfaces/restAPI/resources/journey/v2.0/IUpdateSelectedJourneyRest_2_0.js +0 -3
  191. /package/build/shared/interfaces/{restAPI/resources/journey/v2.0 → appsession}/index.js +0 -0
@@ -3,7 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.GPT_PROMPT = void 0;
4
4
  /* Custom modules */
5
5
  const createNodeDescriptor_1 = require("../../createNodeDescriptor");
6
+ const logic_1 = require("../logic");
6
7
  const prompt_1 = require("../nlu/generativeSlotFiller/prompt");
8
+ const errors_1 = require("../../../errors");
7
9
  exports.GPT_PROMPT = (0, createNodeDescriptor_1.createNodeDescriptor)({
8
10
  type: "completeText",
9
11
  defaultLabel: "LLM Prompt",
@@ -26,9 +28,9 @@ exports.GPT_PROMPT = (0, createNodeDescriptor_1.createNodeDescriptor)({
26
28
  params: {
27
29
  multiline: true,
28
30
  rows: 5,
29
- required: true
31
+ required: false
30
32
  },
31
- defaultValue: ""
33
+ defaultValue: undefined
32
34
  },
33
35
  {
34
36
  key: "chatTranscriptSteps",
@@ -189,14 +191,48 @@ exports.GPT_PROMPT = (0, createNodeDescriptor_1.createNodeDescriptor)({
189
191
  required: true
190
192
  },
191
193
  },
194
+ {
195
+ key: "immediateOutput",
196
+ label: "UI__NODE_EDITOR__SERVICE__GPT_PROMPT__FIELDS__IMMEDIATEOUTPUT__LABEL",
197
+ type: "toggle",
198
+ defaultValue: false,
199
+ condition: {
200
+ or: [
201
+ {
202
+ key: "storeLocation",
203
+ value: "input",
204
+ },
205
+ {
206
+ key: "storeLocation",
207
+ value: "context",
208
+ }
209
+ ]
210
+ }
211
+ },
192
212
  {
193
213
  key: "inputKey",
194
214
  type: "cognigyText",
195
215
  label: "UI__NODE_EDITOR__SERVICE__GPT_PROMPT__FIELDS__INPUT_KEY__LABEL",
196
216
  defaultValue: "promptResult",
197
217
  condition: {
198
- key: "storeLocation",
199
- value: "input",
218
+ or: [
219
+ {
220
+ key: "storeLocation",
221
+ value: "input",
222
+ },
223
+ {
224
+ and: [
225
+ {
226
+ key: "storeLocation",
227
+ value: "stream",
228
+ },
229
+ {
230
+ key: "streamStoreCopyInInput",
231
+ value: true,
232
+ }
233
+ ]
234
+ }
235
+ ]
200
236
  }
201
237
  },
202
238
  {
@@ -214,7 +250,18 @@ exports.GPT_PROMPT = (0, createNodeDescriptor_1.createNodeDescriptor)({
214
250
  type: "textArray",
215
251
  label: "UI__NODE_EDITOR__SERVICE__GPT_PROMPT__FIELDS__STREAM_STOP_TOKENS__LABEL",
216
252
  description: "UI__NODE_EDITOR__SERVICE__GPT_PROMPT__FIELDS__STREAM_STOP_TOKENS__DESCRIPTION",
217
- defaultValue: [".", "!", "?"],
253
+ defaultValue: [".", "!", "?", "\\n"],
254
+ condition: {
255
+ key: "storeLocation",
256
+ value: "stream",
257
+ }
258
+ },
259
+ {
260
+ key: "streamStopTokenOverrides",
261
+ type: "textArray",
262
+ label: "UI__NODE_EDITOR__SERVICE__GPT_PROMPT__FIELDS__STREAM_STOP_TOKEN_OVERRIDES__LABEL",
263
+ description: "UI__NODE_EDITOR__SERVICE__GPT_PROMPT__FIELDS__STREAM_STOP_TOKEN_OVERRIDES__DESCRIPTION",
264
+ defaultValue: ["\d+\."],
218
265
  condition: {
219
266
  key: "storeLocation",
220
267
  value: "stream",
@@ -225,13 +272,24 @@ exports.GPT_PROMPT = (0, createNodeDescriptor_1.createNodeDescriptor)({
225
272
  type: "description",
226
273
  label: " ",
227
274
  params: {
228
- text: "Please note streaming may not be supported by all LLM providers. If streaming is not supported, the result is written to the Input object."
275
+ text: "UI__NODE_EDITOR__SERVICE__GPT_PROMPT__FIELDS__STREAM_DESCRIPTION__TEXT"
229
276
  },
230
277
  condition: {
231
278
  key: "storeLocation",
232
279
  value: "stream",
233
280
  }
234
281
  },
282
+ {
283
+ key: "streamStoreCopyInInput",
284
+ label: "UI__NODE_EDITOR__SERVICE__GPT_PROMPT__FIELDS__STREAM_STORE_COPY__LABEL",
285
+ type: "toggle",
286
+ description: "UI__NODE_EDITOR__SERVICE__GPT_PROMPT__FIELDS__STREAM_STORE_COPY__DESCRIPTION",
287
+ defaultValue: false,
288
+ condition: {
289
+ key: "storeLocation",
290
+ value: "stream",
291
+ }
292
+ },
235
293
  {
236
294
  key: "debugLogTokenCount",
237
295
  label: "UI__NODE_EDITOR__SERVICE__GPT_PROMPT__FIELDS__DEBUGLOGTOKENCOUNT__LABEL",
@@ -251,7 +309,145 @@ exports.GPT_PROMPT = (0, createNodeDescriptor_1.createNodeDescriptor)({
251
309
  type: "description",
252
310
  label: " ",
253
311
  params: {
254
- text: "For performance reasons, debug logging will only be active when testing from Interaction Panel."
312
+ text: "UI__NODE_EDITOR__SERVICE__GPT_PROMPT__FIELDS__DEBUG_DESCRIPTION__TEXT"
313
+ }
314
+ },
315
+ {
316
+ key: "responseFormat",
317
+ type: "select",
318
+ label: "UI__NODE_EDITOR__SERVICE__GPT_PROMPT__FIELDS__RESPONSE_FORMAT__LABEL",
319
+ description: "UI__NODE_EDITOR__SERVICE__GPT_PROMPT__FIELDS__RESPONSE_FORMAT__DESCRIPTION",
320
+ defaultValue: "default",
321
+ params: {
322
+ options: [
323
+ {
324
+ label: "UI__NODE_EDITOR__SERVICE__GPT_PROMPT__FIELDS__RESPONSE_FORMAT__OPTIONS__DEFAULT__LABEL",
325
+ value: "default"
326
+ },
327
+ {
328
+ label: "UI__NODE_EDITOR__SERVICE__GPT_PROMPT__FIELDS__RESPONSE_FORMAT__OPTIONS__TEXT__LABEL",
329
+ value: "text"
330
+ },
331
+ {
332
+ label: "UI__NODE_EDITOR__SERVICE__GPT_PROMPT__FIELDS__RESPONSE_FORMAT__OPTIONS__JSON__LABEL",
333
+ value: "json_object"
334
+ }
335
+ ]
336
+ },
337
+ },
338
+ {
339
+ key: "detailedResults",
340
+ label: "UI__NODE_EDITOR__SERVICE__GPT_PROMPT__FIELDS__DETAILED_RESULTS__LABEL",
341
+ description: "UI__NODE_EDITOR__SERVICE__GPT_PROMPT__FIELDS__DETAILED_RESULTS__DESCRIPTION",
342
+ type: "toggle",
343
+ defaultValue: false,
344
+ condition: {
345
+ or: [
346
+ {
347
+ key: "storeLocation",
348
+ value: "input",
349
+ },
350
+ {
351
+ key: "storeLocation",
352
+ value: "context",
353
+ },
354
+ {
355
+ and: [
356
+ {
357
+ key: "storeLocation",
358
+ value: "stream",
359
+ },
360
+ {
361
+ key: "streamStoreCopyInInput",
362
+ value: true,
363
+ }
364
+ ]
365
+ }
366
+ ]
367
+ }
368
+ },
369
+ {
370
+ key: "seed",
371
+ label: "UI__NODE_EDITOR__SERVICE__GPT_PROMPT__FIELDS__SEED__LABEL",
372
+ description: "UI__NODE_EDITOR__SERVICE__GPT_PROMPT__FIELDS__SEED__DESCRIPTION",
373
+ type: "cognigyText",
374
+ defaultValue: ""
375
+ },
376
+ {
377
+ key: "jsonStreamWarning",
378
+ type: "description",
379
+ label: " ",
380
+ params: {
381
+ text: "UI__NODE_EDITOR__SERVICE__GPT_PROMPT__FIELDS__JSONSTREAMWARNING__PARAM"
382
+ },
383
+ condition: {
384
+ and: [
385
+ {
386
+ key: "responseFormat",
387
+ value: "json_object"
388
+ },
389
+ {
390
+ key: "storeLocation",
391
+ value: "stream",
392
+ }
393
+ ]
394
+ }
395
+ },
396
+ {
397
+ key: "customModelOptions",
398
+ label: "UI__NODE_EDITOR__SERVICE__GPT_PROMPT__FIELDS__CUSTOM_MODEL_OPTIONS__LABEL",
399
+ description: "UI__NODE_EDITOR__SERVICE__GPT_PROMPT__FIELDS__CUSTOM_MODEL_OPTIONS__DESCRIPTION",
400
+ type: "json",
401
+ defaultValue: {}
402
+ },
403
+ {
404
+ key: "customRequestOptions",
405
+ label: "UI__NODE_EDITOR__SERVICE__GPT_PROMPT__FIELDS__CUSTOM_REQUEST_OPTIONS__LABEL",
406
+ description: "UI__NODE_EDITOR__SERVICE__GPT_PROMPT__FIELDS__CUSTOM_REQUEST_OPTIONS__DESCRIPTION",
407
+ type: "json",
408
+ defaultValue: {}
409
+ },
410
+ {
411
+ key: "errorHandling",
412
+ type: "select",
413
+ label: "UI__NODE_EDITOR__SERVICE__GPT_PROMPT__FIELDS__HANDLE_SERVICE_ERROR__LABEL",
414
+ description: "UI__NODE_EDITOR__SERVICE__GPT_PROMPT__FIELDS__HANDLE_SERVICE_ERROR__DESCRIPTION",
415
+ defaultValue: "continue",
416
+ params: {
417
+ options: [
418
+ {
419
+ label: "UI__NODE_EDITOR__SERVICE__GPT_PROMPT__FIELDS__HANDLE_SERVICE_ERROR__OPTIONS__STOP__LABEL",
420
+ value: "stop"
421
+ },
422
+ {
423
+ label: "UI__NODE_EDITOR__SERVICE__GPT_PROMPT__FIELDS__HANDLE_SERVICE_ERROR__OPTIONS__CONTINUE__LABEL",
424
+ value: "continue"
425
+ },
426
+ {
427
+ label: "UI__NODE_EDITOR__SERVICE__GPT_PROMPT__FIELDS__HANDLE_SERVICE_ERROR__OPTIONS__GOTO__LABEL",
428
+ value: "goto"
429
+ },
430
+ ]
431
+ }
432
+ },
433
+ {
434
+ key: "errorMessage",
435
+ label: "UI__NODE_EDITOR__SERVICE__GPT_PROMPT__FIELDS__ERROR_MESSAGE__LABEL",
436
+ type: "cognigyText",
437
+ description: "UI__NODE_EDITOR__SERVICE__GPT_PROMPT__FIELDS__ERROR_MESSAGE__DESCRIPTION",
438
+ defaultValue: "",
439
+ condition: {
440
+ key: "errorHandling",
441
+ value: "continue"
442
+ }
443
+ },
444
+ {
445
+ key: "errorHandlingGotoTarget",
446
+ type: "flowNode",
447
+ label: "UI__NODE_EDITOR__SERVICE__GPT_PROMPT__FIELDS__ERROR__GOTO_NODE__LABEL",
448
+ condition: {
449
+ key: "errorHandling",
450
+ value: "goto"
255
451
  }
256
452
  },
257
453
  ],
@@ -271,6 +467,9 @@ exports.GPT_PROMPT = (0, createNodeDescriptor_1.createNodeDescriptor)({
271
467
  "useStop",
272
468
  "stop",
273
469
  "timeout",
470
+ "responseFormat",
471
+ "jsonStreamWarning",
472
+ "seed"
274
473
  ]
275
474
  },
276
475
  {
@@ -279,15 +478,39 @@ exports.GPT_PROMPT = (0, createNodeDescriptor_1.createNodeDescriptor)({
279
478
  defaultCollapsed: true,
280
479
  fields: [
281
480
  "storeLocation",
481
+ "jsonStreamWarning",
282
482
  "streamDescription",
283
483
  "inputKey",
284
484
  "contextKey",
285
- "streamStopTokens"
485
+ "immediateOutput",
486
+ "streamStopTokens",
487
+ "streamStopTokenOverrides",
488
+ "streamStoreCopyInInput",
489
+ "detailedResults"
490
+ ]
491
+ },
492
+ {
493
+ key: "errorHandling",
494
+ label: "UI__NODE_EDITOR__SERVICE__GPT_PROMPT__SECTIONS__ERROR_HANDLING__LABEL",
495
+ defaultCollapsed: true,
496
+ fields: [
497
+ "errorHandling",
498
+ "errorMessage",
499
+ "errorHandlingGotoTarget",
500
+ ]
501
+ },
502
+ {
503
+ key: "customOptions",
504
+ label: "UI__NODE_EDITOR__SERVICE__GPT_PROMPT__SECTIONS__CUSTOM_OPTIONS__LABEL",
505
+ defaultCollapsed: true,
506
+ fields: [
507
+ "customModelOptions",
508
+ "customRequestOptions"
286
509
  ]
287
510
  },
288
511
  {
289
512
  key: "debugging",
290
- label: "UI__NODE_EDITOR__SERVICE__GPT_PROMPT__SECTIONS__DEBUGGING__LABEL",
513
+ label: "UI__NODE_EDITOR__SECTIONS__DEBUG_SETTINGS__LABEL",
291
514
  defaultCollapsed: true,
292
515
  fields: [
293
516
  "debugDescription",
@@ -303,15 +526,19 @@ exports.GPT_PROMPT = (0, createNodeDescriptor_1.createNodeDescriptor)({
303
526
  { type: "field", key: "chatTranscriptSteps" },
304
527
  { type: "section", key: "advanced" },
305
528
  { type: "section", key: "storage" },
306
- { type: "section", key: "debugging" }
529
+ { type: "section", key: "errorHandling" },
530
+ { type: "section", key: "customOptions" },
531
+ { type: "section", key: "debugging" },
307
532
  ],
308
533
  appearance: {},
309
534
  tags: ["service", "llm", "gpt", "generative ai", "openai", "azure", "prompt"],
310
- function: async ({ cognigy, config }) => {
311
- var _a;
535
+ function: async ({ cognigy, config, nodeId }) => {
536
+ var _a, _b, _c;
312
537
  const { api, input } = cognigy;
313
- const { temperature, maxTokens, topP, presencePenalty, frequencyPenalty, useStop, stop, storeLocation, contextKey, inputKey, timeout, streamStopTokens, debugLogTokenCount, debugLogRequestAndCompletion, llmProviderReferenceId, useChatMode, chatTranscriptSteps } = config;
538
+ const { temperature, maxTokens, topP, presencePenalty, frequencyPenalty, useStop, stop, storeLocation, contextKey, inputKey, timeout, streamStopTokens, streamStopTokenOverrides, debugLogTokenCount, debugLogRequestAndCompletion, llmProviderReferenceId, useChatMode, chatTranscriptSteps, responseFormat, streamStoreCopyInInput, detailedResults, seed, immediateOutput, customModelOptions, customRequestOptions, errorHandling = "continue", // default behavior for LLM Prompt node was, continue its execution even though an error occurred (deviating it from the SEO node) & do not output an error message on UI explicitly. However, error is always stored in the input or context object. We can use an extra "say" node to output it.
539
+ errorHandlingGotoTarget, errorMessage, } = config;
314
540
  let prompt = config.prompt;
541
+ const { traceId } = input;
315
542
  // check if custom variables are used and if they have a length modifier
316
543
  // works only for a single variable per prompt
317
544
  if (prompt.includes("@cognigyRecentConversation")) {
@@ -332,6 +559,64 @@ exports.GPT_PROMPT = (0, createNodeDescriptor_1.createNodeDescriptor)({
332
559
  const recentUserInputs = (0, prompt_1.createLastUserInputString)(cognigy.lastConversationEntries, turnLimit) + "\n";
333
560
  prompt = prompt.replace(/@cognigyRecentUserInputs(:\d+)?/, recentUserInputs);
334
561
  }
562
+ // handle errors from external services, depending on the settings
563
+ const handleServiceError = async (error) => {
564
+ var _a, _b, _c;
565
+ const compactError = {
566
+ name: error === null || error === void 0 ? void 0 : error.name,
567
+ code: error === null || error === void 0 ? void 0 : error.code,
568
+ message: (error === null || error === void 0 ? void 0 : error.message) || error
569
+ };
570
+ // return the requestId if it exist in the error obj.
571
+ if ((_a = error === null || error === void 0 ? void 0 : error.meta) === null || _a === void 0 ? void 0 : _a.requestId) {
572
+ compactError["requestId"] = (_b = error === null || error === void 0 ? void 0 : error.meta) === null || _b === void 0 ? void 0 : _b.requestId;
573
+ }
574
+ if ((_c = error === null || error === void 0 ? void 0 : error.originalErrorDetails) === null || _c === void 0 ? void 0 : _c.code) {
575
+ compactError.code = error.originalErrorDetails.code;
576
+ }
577
+ const errorResponse = {
578
+ error: compactError,
579
+ };
580
+ // add error to context or input
581
+ switch (storeLocation) {
582
+ case "context":
583
+ // @ts-ignore
584
+ api.addToContext(contextKey, errorResponse, "simple");
585
+ break;
586
+ default:
587
+ api.addToInput(inputKey, errorResponse);
588
+ }
589
+ if (errorHandling === "continue") {
590
+ // output the timeout message
591
+ if (errorMessage) {
592
+ api.output(errorMessage, null);
593
+ }
594
+ }
595
+ else if (errorHandling === "goto") {
596
+ if (!errorHandlingGotoTarget) {
597
+ throw new Error("GoTo Target is required");
598
+ }
599
+ const gotoParams = {
600
+ cognigy,
601
+ childConfigs: [],
602
+ nodeId,
603
+ config: {
604
+ flowNode: {
605
+ flow: errorHandlingGotoTarget.flow,
606
+ node: errorHandlingGotoTarget.node,
607
+ },
608
+ injectedText: undefined,
609
+ injectedData: undefined,
610
+ executionMode: "continue",
611
+ absorbContext: false
612
+ }
613
+ };
614
+ await logic_1.GO_TO.function(gotoParams);
615
+ }
616
+ else {
617
+ throw new errors_1.InternalServerError(error === null || error === void 0 ? void 0 : error.message, { traceId });
618
+ }
619
+ };
335
620
  try {
336
621
  const data = {
337
622
  prompt,
@@ -344,19 +629,28 @@ exports.GPT_PROMPT = (0, createNodeDescriptor_1.createNodeDescriptor)({
344
629
  useCase: "promptNode",
345
630
  stream: storeLocation === "stream",
346
631
  streamOnDataHandler: (text) => {
347
- text = text.trim();
632
+ text = text && text.trim();
348
633
  if (text) {
349
634
  api.output(text, null);
350
635
  }
351
636
  },
352
- streamStopTokens
637
+ streamStopTokens,
638
+ streamStopTokenOverrides,
639
+ detailedResults,
640
+ seed: Number(seed) ? Number(seed) : undefined,
641
+ customModelOptions,
642
+ customRequestOptions
353
643
  };
354
644
  if (useStop) {
355
645
  data["stop"] = stop;
356
646
  }
647
+ // llmProviderReferenceId `default` value is not a responseFormat, rather it is LLM Model default selection.
357
648
  if (llmProviderReferenceId && llmProviderReferenceId !== "default") {
358
649
  data["llmProviderReferenceId"] = llmProviderReferenceId;
359
650
  }
651
+ if (responseFormat && responseFormat !== "default") {
652
+ data["responseFormat"] = responseFormat;
653
+ }
360
654
  let debugPrompt = prompt;
361
655
  if (useChatMode && (prompt || chatTranscriptSteps)) {
362
656
  data["chat"] = (0, prompt_1.createLastConversationChatObject)(cognigy.lastConversationEntries, prompt, chatTranscriptSteps);
@@ -364,30 +658,69 @@ exports.GPT_PROMPT = (0, createNodeDescriptor_1.createNodeDescriptor)({
364
658
  debugPrompt = JSON.stringify(data["chat"]);
365
659
  }
366
660
  const response = await api.runGenerativeAIPrompt(data, "gptPromptNode");
367
- // if we're in adminconsole, process debugging options
368
- input.channel === "adminconsole" && (0, prompt_1.writeLLMDebugLogs)("LLM Prompt", debugPrompt, response, debugLogTokenCount, debugLogRequestAndCompletion, cognigy);
661
+ const isFollowSessionActive = api.getMetadata().isFollowSessionActive;
662
+ if (detailedResults) {
663
+ if ((response === null || response === void 0 ? void 0 : response.usage) && response.usage.promptTokens && response.usage.completionTokens) {
664
+ // the api has usage results, but in Azure format - reformat to OpenAI format
665
+ const u = response.usage;
666
+ response.usage = {
667
+ prompt_tokens: u.promptTokens,
668
+ completion_tokens: u.completionTokens,
669
+ total_tokens: u.promptTokens + u.completionTokens,
670
+ calculation_method: "api"
671
+ };
672
+ }
673
+ else if (!response.usage) {
674
+ // if the api didn't return native usage results, compute them
675
+ const promptContent = (response.messages) ? JSON.stringify(response.messages) : prompt;
676
+ delete response.messages;
677
+ const prompt_tokens = await api.countGPTTokens(promptContent);
678
+ const completion_tokens = await api.countGPTTokens((typeof response.result === "object") ? JSON.stringify(response.result) : response.result);
679
+ response.usage = {
680
+ prompt_tokens,
681
+ completion_tokens,
682
+ total_tokens: prompt_tokens + completion_tokens,
683
+ calculation_method: "estimate"
684
+ };
685
+ }
686
+ }
687
+ // if we're in adminconsole or following a session, process debugging options
688
+ (input.endpointType === "adminconsole" || isFollowSessionActive) && (0, prompt_1.writeLLMDebugLogs)("LLM Prompt", debugPrompt, response, debugLogTokenCount, debugLogRequestAndCompletion, cognigy);
369
689
  if (storeLocation === "context") {
370
690
  api.addToContext(contextKey, response, "simple");
691
+ // output result immediately if toggle is set
692
+ if (immediateOutput) {
693
+ const resultToOutput = typeof ((response === null || response === void 0 ? void 0 : response.result) || response) === "object" ? JSON.stringify((response === null || response === void 0 ? void 0 : response.result) || response, undefined, 2) : (response === null || response === void 0 ? void 0 : response.result) || response;
694
+ api.output(resultToOutput, null);
695
+ }
371
696
  }
372
- else if (storeLocation === "input") {
697
+ else if (storeLocation === "input" || (storeLocation === "stream" && streamStoreCopyInInput)) {
373
698
  // @ts-ignore
374
699
  api.addToInput(inputKey, response);
700
+ // output result immediately if toggle is set and we're storing into input
701
+ // this means we don't output the result again if we streamed
702
+ if (storeLocation === "input" && immediateOutput) {
703
+ const resultToOutput = typeof ((response === null || response === void 0 ? void 0 : response.result) || response) === "object" ? JSON.stringify((response === null || response === void 0 ? void 0 : response.result) || response, undefined, 2) : (response === null || response === void 0 ? void 0 : response.result) || response;
704
+ api.output(resultToOutput, null);
705
+ }
375
706
  }
376
707
  }
377
708
  catch (error) {
378
- const errorDetails = {
379
- name: error.name,
380
- code: error.code,
381
- message: error.message || ((_a = error.originalErrorDetails) === null || _a === void 0 ? void 0 : _a.message),
709
+ const errorDetailsBase = {
710
+ name: error === null || error === void 0 ? void 0 : error.name,
711
+ code: (error === null || error === void 0 ? void 0 : error.code) || (error === null || error === void 0 ? void 0 : error.httpStatusCode),
712
+ message: (error === null || error === void 0 ? void 0 : error.message) || ((_a = error.originalErrorDetails) === null || _a === void 0 ? void 0 : _a.message),
382
713
  };
383
- if (storeLocation === "context") {
384
- api.addToContext(contextKey, { error: errorDetails }, "simple");
385
- }
386
- else {
387
- // @ts-ignore
388
- api.addToInput(inputKey, { error: errorDetails });
714
+ const errorDetails = Object.assign(Object.assign({}, errorDetailsBase), { originalErrorDetails: error === null || error === void 0 ? void 0 : error.originalErrorDetails });
715
+ // return the requestId if it exist in the error obj.
716
+ if ((_b = error.meta) === null || _b === void 0 ? void 0 : _b.requestId) {
717
+ errorDetails["meta"] = {
718
+ requestId: (_c = error.meta) === null || _c === void 0 ? void 0 : _c.requestId
719
+ };
389
720
  }
390
- throw error;
721
+ api.logDebugError(errorDetailsBase, "UI__DEBUG_MODE__LLM_PROMPT__ERROR");
722
+ await handleServiceError(errorDetails);
723
+ return;
391
724
  }
392
725
  }
393
726
  });