You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在JavaScript中创建向量嵌入的Blob表示以用于Redis向量相似度搜索

如何在JavaScript中生成与NumPy float32数组等价的Blob字节表示?

现有向量嵌入如[1,2,3,4],通过Python的NumPy库可执行如下代码生成其float32格式的Blob字节表示:

np.array([1,2,3,4]).astype(dtype=np.float32).tobytes()

输出的转义字节字符串为:

\x00\x00\x80?\x00\x00\x00@\x00\x00@@\x00\x00\x80@

在JavaScript中可以通过以下方式实现相同效果:

生成等价的转义字节字符串

利用Float32Array处理浮点数组,转换为Uint8Array提取原始字节后,拼接成Python风格的转义字符串:

const vector = [1, 2, 3, 4];

// 创建float32类型数组(默认小端字节序,与NumPy默认行为一致)
const float32Arr = new Float32Array(vector);
// 提取原始字节序列
const uint8Arr = new Uint8Array(float32Arr.buffer);
// 转换为\x开头的转义格式字符串
const blobString = Array.from(uint8Arr)
  .map(byte => `\\x${byte.toString(16).padStart(2, '0')}`)
  .join('');

console.log(blobString); // 输出与Python一致的转义字节串

生成Blob对象(若需实际Blob实例)

如果需要直接生成Blob对象而非字符串表示,可基于Float32Array直接创建:

const vector = [1, 2, 3, 4];
const float32Arr = new Float32Array(vector);
const blob = new Blob([float32Arr], { type: 'application/octet-stream' });

内容的提问来源于stack exchange,提问作者Jonathan Doe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 07:05:03