KO
|
EN
gitlite — search
Search
#python
#hacktoberfest
#python3
#docker
#api
#typescript
#expressjs
#nodejs
#reactjs
#vue
#hacking
#nextjs
faiss-node
★ 139
Open GitHub ↗
Node.js bindings for faiss
Download README (.md)
Explore Similar Repositories
polyfill-php84
:
Symfony polyfill backporting some PHP 8.4+ features to lower PHP versions
codebuddy
:
An Autonomous AI Software Engineer
sdk
:
Universal Python SDK to run AI workloads on Kubernetes
BlazorWebView
:
A WebKitGtk WebView for running Blazor Hybrid applications on Linux.
zod-config
:
Load configuration variables from multiple sources with flexible adapters, ensuring type safety with Zod.
// repository documentation
Was this content helpful?
★ 0
(0 ratings)
Select Rating:
★
★
★
★
★
Submit Feedback
Recent Feedback
×
Download README
Do you want to download the
README.md
file for
faiss-node
?
Download (.md)
# faiss-node [](https://www.npmjs.com/package/faiss-node) [](https://github.com/ewfian/faiss-node) [](https://github.com/ewfian/faiss-node/actions/workflows/unit_test.yml) [](https://github.com/ewfian/faiss-node) [](https://ewfian.github.io/faiss-node/) faiss-node provides Node.js bindings for [faiss](https://github.com/facebookresearch/faiss) _**This package is in a very early stage of development.**_ ## Installation ```sh $ npm install faiss-node ``` ## Documentation * [faiss-node API Documentation](https://ewfian.github.io/faiss-node/) ## Usage ```javascript const { IndexFlatL2, Index, IndexFlatIP, MetricType } = require('faiss-node'); const dimension = 2; const index = new IndexFlatL2(dimension); console.log(index.getDimension()); // 2 console.log(index.isTrained()); // true console.log(index.ntotal()); // 0 // inserting data into index. index.add([1, 0]); index.add([1, 2]); index.add([1, 3]); index.add([1, 1]); console.log(index.ntotal()); // 4 const k = 4; const results = index.search([1, 0], k); console.log(results.labels); // [ 0, 3, 1, 2 ] console.log(results.distances); // [ 0, 1, 4, 9 ] // Save index const fname = 'faiss.index'; index.write(fname); // Load saved index const index_loaded = IndexFlatL2.read(fname); console.log(index_loaded.getDimension()); //2 console.log(index_loaded.ntotal()); //4 const results1 = index_loaded.search([1, 1], 4); console.log(results1.labels); // [ 3, 0, 1, 2 ] console.log(results1.distances); // [ 0, 1, 1, 4 ] // Merge index const newIndex = new IndexFlatL2(dimension); newIndex.mergeFrom(index); console.log(newIndex.ntotal()); // 4 // Remove items console.log(newIndex.search([1, 2], 1)); // { distances: [ 0 ], labels: [ 1 ] } const removedCount = newIndex.removeIds([0]); console.log(removedCount); // 1 console.log(newIndex.ntotal()); // 3 console.log(newIndex.search([1, 2], 1)); // { distances: [ 0 ], labels: [ 0 ] } // IndexFlatIP const ipIndex = new IndexFlatIP(2); ipIndex.add([1, 0]); // Serialize an index const index_buf = newIndex.toBuffer(); const deserializedIndex = Index.fromBuffer(index_buf); console.log(deserializedIndex.ntotal()); // 3 // Factory index const hnswIndex = Index.fromFactory(2, 'HNSW,Flat', MetricType.METRIC_INNER_PRODUCT); const x = [1, 0, 0, 1]; hnswIndex.train(x); hnswIndex.add(x); ``` ## License MIT