2.6.0 โ€ข Published 5 months ago

@allemandi/embed-utils v2.6.0

Weekly downloads
-
License
MIT
Repository
github
Last release
5 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

5 months ago

2.5.0

5 months ago

2.4.0

5 months ago

2.3.0

5 months ago

2.2.2

5 months ago

2.2.1

5 months ago

2.2.0

5 months ago

2.1.1

5 months ago

2.1.0

5 months ago

2.0.0

5 months ago

1.1.0

5 months ago

1.0.0

5 months ago