@azure/search-documents
Version:
Azure client library to use AI Search for node.js and browser.
45 lines • 2.23 kB
JavaScript
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.
import { knowledgeBaseRetrievalRequestSerializer, knowledgeBaseRetrievalResponseDeserializer, } from "../../models/azure/search/documents/knowledgeBases/models.js";
import { errorResponseDeserializer } from "../../models/azure/search/documents/models.js";
import { expandUrlTemplate } from "../../static-helpers/urlTemplate.js";
import { createRestError, operationOptionsToRequestParameters } from "@azure-rest/core-client";
export function _retrieveSend(context, retrievalRequest, options = { requestOptions: {} }) {
const path = expandUrlTemplate("/knowledgebases('{knowledgeBaseName}')/retrieve{?api%2Dversion}", {
knowledgeBaseName: context.knowledgeBaseName,
"api%2Dversion": context.apiVersion ?? "2026-04-01",
}, {
allowReserved: options?.requestOptions?.skipUrlEncoding,
});
return context.path(path).post({
...operationOptionsToRequestParameters(options),
contentType: "application/json",
headers: {
...(options?.accept !== undefined
? {
accept: !options?.accept ? options?.accept : "application/json;odata.metadata=minimal",
}
: {}),
...(options?.clientRequestId !== undefined
? { "x-ms-client-request-id": options?.clientRequestId }
: {}),
...options.requestOptions?.headers,
},
body: knowledgeBaseRetrievalRequestSerializer(retrievalRequest),
});
}
export async function _retrieveDeserialize(result) {
const expectedStatuses = ["200", "206"];
if (!expectedStatuses.includes(result.status)) {
const error = createRestError(result);
error.details = errorResponseDeserializer(result.body);
throw error;
}
return knowledgeBaseRetrievalResponseDeserializer(result.body);
}
/** KnowledgeBase retrieves relevant data from backing stores. */
export async function retrieve(context, retrievalRequest, options = { requestOptions: {} }) {
const result = await _retrieveSend(context, retrievalRequest, options);
return _retrieveDeserialize(result);
}
//# sourceMappingURL=operations.js.map