@restnfeel/agentc-starter-kit
Version:
한국어 기업용 CMS 모듈 - Task Master AI와 함께 빠르게 웹사이트를 구현할 수 있는 재사용 가능한 컴포넌트 시스템
56 lines (53 loc) • 2.28 kB
JavaScript
import { APIResource } from '../resource.js';
import { debug, toFloat32Array } from '../core.js';
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
class Embeddings extends 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) {
debug('Request', '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
debug('response', 'Decoding base64 embeddings to float32 array');
return response._thenUnwrap((response) => {
if (response && response.data) {
response.data.forEach((embeddingBase64Obj) => {
const embeddingBase64Str = embeddingBase64Obj.embedding;
embeddingBase64Obj.embedding = toFloat32Array(embeddingBase64Str);
});
}
return response;
});
}
}
export { Embeddings };
//# sourceMappingURL=embeddings.js.map