UNPKG

@cognigy/rest-api-client

Version:

Cognigy REST-Client

58 lines 2.82 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.performKnowledgeSearch = void 0; const errors_1 = require("../../../../../errors"); async function performKnowledgeSearch({ api, config, query, input, errorHandler, }) { var _a; let knowledgeSearchResponseData; const { language, traceId } = input; const { topK = 5, searchStoreLocation = "default", searchStoreLocationContextKey = "knowledgeSearch", searchStoreLocationInputKey = "knowledgeSearch", } = config; const knowledgeStoreId = (_a = config === null || config === void 0 ? void 0 : config.knowledgeStoreId) === null || _a === void 0 ? void 0 : _a.trim(); const data = { language: language, query, topK: topK, traceId: traceId, disableSensitiveLogging: false, }; // Add knowledgeStoreIds to data if (knowledgeStoreId) { data.knowledgeStoreIds = [knowledgeStoreId]; } // Perform knowledge search try { const knowledgeSearchResponse = await api.knowledgeSearch(data); // Handle possible response errors if ((knowledgeSearchResponse === null || knowledgeSearchResponse === void 0 ? void 0 : knowledgeSearchResponse.status) !== "success") { const errorMessage = (knowledgeSearchResponse === null || knowledgeSearchResponse === void 0 ? void 0 : knowledgeSearchResponse.error) || "empty"; throw new Error(`Error while performing knowledge search. Remote returned error: ${errorMessage}`); } if (!(knowledgeSearchResponse === null || knowledgeSearchResponse === void 0 ? void 0 : knowledgeSearchResponse.data)) { throw new Error("Error while performing knowledge search. Remote returned empty response."); } knowledgeSearchResponseData = knowledgeSearchResponse.data; } catch (error) { await errorHandler(error, knowledgeSearchResponseData); throw error; } // Save result switch (searchStoreLocation) { case "context": // @ts-ignore api.addToContext(searchStoreLocationContextKey, knowledgeSearchResponseData, "simple"); break; case "default": case "input": api.addToInput(searchStoreLocationInputKey, knowledgeSearchResponseData); break; default: throw new errors_1.InternalServerError(`Error while performing knowledge search. Store location was invalid. Value was: ${searchStoreLocation}`, { traceId, disableSensitiveLogging: data === null || data === void 0 ? void 0 : data.disableSensitiveLogging, }); } return knowledgeSearchResponseData; } exports.performKnowledgeSearch = performKnowledgeSearch; //# sourceMappingURL=knowledgeSearch.helper.js.map