npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

n8n-nodes-custom-embed

v0.1.1

Published

Custom embedding node for n8n to work with Supabase Vector Store

Readme

Banner image

n8n-nodes-custom-embed

This is a custom n8n node that allows you to generate embeddings using your own embedding server and use them with the Supabase Vector Store in n8n. It's designed to work seamlessly with the existing LangChain ecosystem in n8n.

Features

  • Generate text embeddings using your custom embedding server
  • Fully compatible with Supabase Vector Store node as a sub-node
  • Configurable embedding model selection
  • Support for API authentication
  • Error handling and input validation

Prerequisites

  • n8n instance (version 0.214.0 or later recommended)
  • A custom embedding server with an API that returns embeddings
  • Supabase instance configured with pgvector extension for vector storage

Installation

Local Installation

  1. Clone this repository:
git clone https://github.com/yourusername/n8n-nodes-custom-embed.git
  1. Install dependencies:
cd n8n-nodes-custom-embed
pnpm install
  1. Build the code:
pnpm build
  1. Link to your n8n installation:
# First, make sure your PNPM_HOME is set correctly
pnpm setup
# Then link
pnpm link -g
cd ~/.n8n/custom
npm link n8n-nodes-custom-embed

Global Installation (npm)

npm install -g n8n-nodes-custom-embed

Setup

  1. Start your n8n instance
  2. Go to Settings > Community Nodes
  3. Make sure n8n-nodes-custom-embed is listed and enabled

Configuration

Custom Embeddings API Credentials

  1. Go to Settings > Credentials
  2. Click "Add Credential"
  3. Select "Custom Embeddings API"
  4. Fill in:
    • API URL: Your embedding server's base URL
    • API Key: Your API authentication key (if required)
  5. Save the credential

Usage

Connecting with Supabase Vector Store

  1. Create a new workflow
  2. Add a trigger node (e.g., HTTP Request)
  3. Add a "Supabase Vector Store" node
  4. When you connect to the Supabase Vector Store node, click on it and look for the "Embedding" connection
  5. In the connection dropdown, you should now see "Custom Embeddings" as an option
  6. Select it and configure:
    • Connect it to your Custom Embeddings API credential
    • Specify the text to embed or input field containing the text
    • Select your embedding model (if applicable)

Example Workflow

Here's a typical workflow structure:

[Trigger] → [Text Input] → [Supabase Vector Store] ↔ [Custom Embeddings]

Where:

  • The Supabase Vector Store node uses the Custom Embeddings sub-node through the "Embedding" connection
  • The Custom Embeddings node generates vector embeddings
  • The Supabase Vector Store node saves the embeddings in your vector database

API Requirements

Your custom embedding server should provide an API with the following:

  1. Endpoint: POST /embeddings (configurable in the node)
  2. Request format:
    {
      "text": "Your text to embed",
      "model": "optional-model-name"
    }
  3. Response format:
    {
      "embeddings": [0.1, 0.2, 0.3, ...],
      "dim": 1536,  // Optional - dimension of embeddings
      "model": "model-name"  // Optional
    }

Troubleshooting

Node not appearing as a sub-node

If the Custom Embeddings node is not appearing as a sub-node for the Supabase Vector Store:

  1. Make sure you've rebuilt the project with pnpm build
  2. Check that you've properly linked the node to your n8n installation
  3. Restart your n8n instance
  4. Try clearing your browser cache or opening in an incognito window

Vector Store compatibility

Make sure the embeddings dimension matches what your Supabase Vector Store expects. If your embeddings have a different dimension than what your pgvector table is configured for, you'll need to update your database schema.

Development

To modify this node:

  1. Clone the repository
  2. Install dependencies with pnpm install
  3. Make your changes to the node implementation
  4. Build with pnpm build
  5. Test with your n8n instance

License

MIT