2.6.0 โ€ข Published 11 months ago

@allemandi/embed-utils v2.6.0

Weekly downloads
-
License
MIT
Repository
github
Last release
11 months ago

๐Ÿ“– @allemandi/embed-utils

NPM Version License: MIT

Fast, type-safe utilities for comparing and searching vector embeddings.

Works in Node.js, browsers โ€“ supports ESM, CommonJS, and UMD

๐Ÿ”– Table of Contents

โœจ Features

  • ๐Ÿ” Find nearest neighbors by cosine similarity
  • ๐Ÿ“ Compute, normalize, and verify vector similarity
  • โšก Lightweight and fast vector operations

๐Ÿ› ๏ธ Installation

# Yarn
yarn add @allemandi/embed-utils

# NPM
npm install @allemandi/embed-utils

๐Ÿš€ Quick Usage Examples

๐Ÿ“˜ For a complete list of methods and options, see the API docs.

ESM

import { computeCosineSimilarity } from '@allemandi/embed-utils';

CommonJS

const { findNearestNeighbors } = require('@allemandi/embed-utils');

const samples = [
  { embedding: [0.1, 0.2, 0.3], label: 'sports' },
  { embedding: [0.9, 0.8, 0.7], label: 'finance' },
  { embedding: [0.05, 0.1, 0.15], label: 'sports' },
];

const query = [0.09, 0.18, 0.27];

//  Find top 2 neighbors with similarity โ‰ฅ 0.5
const results = findNearestNeighbors(query, samples, { topK: 2, threshold: 0.5 });

console.log(results);
//  [ { embedding: [0.1, 0.2, 0.3], label: "sports", similarityScore: 1 },
//    { embedding: [0.05, 0.1, 0.15], label: "sports", similarityScore: 1 } ] 

UMD (Browser)

<script src="https://unpkg.com/@allemandi/embed-utils"></script>
<script>
    const vectorsToNormalize = [3, 4];
  const result = window.allemandi.embedUtils.normalizeVector(vectorsToNormalize);
  console.log(result);
</script>

๐Ÿงช Tests

Available in the GitHub repo only.

# Run the test suite with Jest
yarn test
# or
npm test

๐Ÿ”— Related Projects

Check out these related projects that might interest you:

Embed Classify CLI

  • Node.js CLI tool for local text classification using word embeddings.

Vector Knowledge Base

  • A minimalist command-line knowledge system with semantic memory capabilities using vector embeddings for information retrieval.

๐Ÿค Contributing

If you have ideas, improvements, or new features:

  1. Fork the project
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request
2.6.0

11 months ago

2.5.0

11 months ago

2.4.0

11 months ago

2.3.0

11 months ago

2.2.2

11 months ago

2.2.1

11 months ago

2.2.0

11 months ago

2.1.1

11 months ago

2.1.0

11 months ago

2.0.0

11 months ago

1.1.0

11 months ago

1.0.0

11 months ago