是的,JavaScript 有一些库和插件可以在浏览器中进行向量相似检索查询。以下是一些常用的库和插件:
TensorFlow.js:TensorFlow.js 是一个用于在浏览器和 Node.js 中进行机器学习的库。它可以用于创建和运行机器学习模型,包括用于向量相似性检索的模型。
import * as tf from '@tensorflow/tfjs';
// 假设你有两个向量
const vector1 = tf.tensor([1, 2, 3]);
const vector2 = tf.tensor([4, 5, 6]);
// 计算余弦相似度
const cosineSimilarity = (vec1, vec2) => {
const dotProduct = vec1.dot(vec2).dataSync()[0];
const norm1 = vec1.norm().dataSync()[0];
const norm2 = vec2.norm().dataSync()[0];
return dotProduct / (norm1 * norm2);
};
console.log(cosineSimilarity(vector1, vector2)); Annoy.js:Annoy (Approximate Nearest Neighbors Oh Yeah) 是一个用于近似最近邻搜索的库,有 JavaScript 版本。它可以用于在浏览器中进行向量相似性检索。
import { AnnoyIndex } from 'annoy-js';
const f = 3; // 向量的维度
const annoy = new AnnoyIndex(f, 'angular'); // 'angular' 是距离度量
// 添加向量
annoy.addItem(0, [1, 2, 3]);
annoy.addItem(1, [4, 5, 6]);
// 构建索引
annoy.build();
// 查询最近邻
const nearest = annoy.getNearest(new Float32Array([7, 8, 9]), 1);
console.log(nearest); hnswlib-js:hnswlib-js 是 Hierarchical Navigable Small World (HNSW) 算法的 JavaScript 实现,用于近似最近邻搜索。
import { HNSWLib } from 'hnswlib-js';
const dimension = 3; // 向量的维度
const space = 'l2'; // 距离度量,可以是 'l2', 'ip', 或 'cosine'
const maxElements = 1000; // 索引中元素的最大数量
const index = new HNSWLib(dimension, space, maxElements);
// 添加向量
index.addPoint([1, 2, 3], 0);
index.addPoint([4, 5, 6], 1);
// 查询最近邻
const nearest = index.searchKNearest([7, 8, 9], 1);
console.log(nearest); 这些库和插件可以帮助你在浏览器中进行向量相似性检索查询。你可以根据具体需求选择合适的库。
网友回复
有没有不依赖embedding向量的RAG技术?
有没有支持实时打断语音通话并后台帮你执行任何的ai模型?
开源ai大模型文件格式GGUF、MLX、Safetensors、 ONNX 有什么区别?
出海挣钱支付收款PayPal、Wise 、PingPong、Stripe如何选择?
如何实现类似google的图片隐形水印添加和识别技术?
linux上如何运行任意windows程序?
ai能写出比黑客还厉害的零日漏洞等攻击工具攻击任意软件系统工程?
js如何获取浏览器的音频上下文指纹、Canvas指纹、WebGL渲染特征?
为啥ai开始抛弃markdown文本,重新偏好html文本了?
网站有没有办法鉴别访问请求是由ai操控chrome-devtools-mcp发出的?


