56 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| "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
 |