n8n-nodes-aimlapi
Version:
Custom n8n node for integrating with the AI/ML API platform (AIMLAPI) to interact with LLMs and multimodal AI models such as chat completion endpoints.
32 lines • 1.56 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.executeEmbeddingGeneration = executeEmbeddingGeneration;
const request_1 = require("../utils/request");
const object_1 = require("../utils/object");
async function executeEmbeddingGeneration({ context, itemIndex, baseURL, model, }) {
const input = context.getNodeParameter('embeddingInput', itemIndex);
const extract = context.getNodeParameter('embeddingExtract', itemIndex);
const options = context.getNodeParameter('embeddingOptions', itemIndex, {});
const requestOptions = (0, request_1.createRequestOptions)(baseURL, '/v1/embeddings');
const body = {
model,
input,
};
(0, object_1.setIfDefined)(body, 'encoding_format', options.encodingFormat);
(0, object_1.setIfDefined)(body, 'user', options.user);
requestOptions.body = body;
const response = (await context.helpers.httpRequestWithAuthentication.call(context, 'aimlApi', requestOptions));
const data = response.data ?? [];
if (extract === 'vector') {
const embedding = data[0]?.embedding ?? [];
return { json: { embedding }, pairedItem: { item: itemIndex } };
}
if (extract === 'vectors') {
const embeddings = data
.map((entry) => entry.embedding)
.filter((value) => Array.isArray(value));
return { json: { embeddings }, pairedItem: { item: itemIndex } };
}
return { json: { result: response }, pairedItem: { item: itemIndex } };
}
//# sourceMappingURL=embeddingGeneration.execute.js.map