"use strict"; // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. Object.defineProperty(exports, "__esModule", { value: true }); exports.Embeddings = void 0; const resource_1 = require("../core/resource.js"); const utils_1 = require("../internal/utils.js"); class Embeddings extends resource_1.APIResource { /** * Creates an embedding vector representing the input text. * * @example * ```ts * const createEmbeddingResponse = * await client.embeddings.create({ * input: 'The quick brown fox jumped over the lazy dog', * model: 'text-embedding-3-small', * }); * ``` */ create(body, options) { const hasUserProvidedEncodingFormat = !!body.encoding_format; // No encoding_format specified, defaulting to base64 for performance reasons // See https://github.com/openai/openai-node/pull/1312 let encoding_format = hasUserProvidedEncodingFormat ? body.encoding_format : 'base64'; if (hasUserProvidedEncodingFormat) { (0, utils_1.loggerFor)(this._client).debug('embeddings/user defined encoding_format:', body.encoding_format); } const response = this._client.post('/embeddings', { body: { ...body, encoding_format: encoding_format, }, ...options, }); // if the user specified an encoding_format, return the response as-is if (hasUserProvidedEncodingFormat) { return response; } // in this stage, we are sure the user did not specify an encoding_format // and we defaulted to base64 for performance reasons // we are sure then that the response is base64 encoded, let's decode it // the returned result will be a float32 array since this is OpenAI API's default encoding (0, utils_1.loggerFor)(this._client).debug('embeddings/decoding base64 embeddings from base64'); return response._thenUnwrap((response) => { if (response && response.data) { response.data.forEach((embeddingBase64Obj) => { const embeddingBase64Str = embeddingBase64Obj.embedding; embeddingBase64Obj.embedding = (0, utils_1.toFloat32Array)(embeddingBase64Str); }); } return response; }); } } exports.Embeddings = Embeddings; //# sourceMappingURL=embeddings.js.map