@cognigy/rest-api-client
Version:
Cognigy REST-Client
58 lines • 2.82 kB
JavaScript
;
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