Skip to main content

VoyageAI - AI Rooms Workflow Addon

Overview

VoyageAI embeddings addon for Rooms AI, providing state-of-the-art text embeddings for semantic search, RAG, and similarity tasks.

Addon Type: voyageai ( 'ai-tool' type addon )

Features

  • Text Embeddings: Generate high-quality embeddings using VoyageAI models
  • Multiple Models: Support for voyage-3.5, voyage-3-large, voyage-code-3, and specialized models
  • Flexible Input Types: Document and query embeddings with optimized processing
  • Configurable Dimensions: Support for 256, 512, 1024, and 2048 dimensional embeddings
  • RAG Ready: Perfect for Retrieval-Augmented Generation workflows

Add to Rooms AI using poetry

Using the script

poetry add git+https://github.com/synvex-ai/voyageai-rooms-pkg.git

In the web interface, follow online guide for adding an addon. You can still use JSON in web interface.

Configuration

Addon Configuration

Add this addon to your AI Rooms workflow configuration:

{
"addons": [
{
"id": "voyage-embeddings",
"type": "voyageai",
"name": "VoyageAI Embeddings",
"enabled": true,
"config": {
"model": "voyage-3.5",
"input_type": "document",
"embedding_dimension": 1024
},
"secrets": {
"voyage_api_key": "VOYAGE_API_KEY"
}
}
]
}

Configuration Fields

BaseAddonConfig Fields

All addons inherit these base configuration fields:

FieldTypeRequiredDefaultDescription
idstringYes-Unique identifier for the addon instance
typestringYes-Type of the addon ("voyageai")
namestringYes-Display name of the addon
descriptionstringNo""Description of the addon
enabledbooleanNotrueWhether the addon is enabled

CustomAddonConfig Fields (VoyageAI-specific)

This VoyageAI addon adds these specific configuration fields:

FieldTypeRequiredDefaultDescription
modelstringNo"voyage-3.5"VoyageAI model to use for embeddings
input_typestringNo"document"Default input type: "document" or "query"
embedding_dimensionintegerNo1024Embedding dimension (256, 512, 1024, or 2048)

Available Models

ModelContext LengthDimensionsDescription
voyage-3.532,000256, 512, 1024, 2048Optimized for general-purpose and multilingual retrieval
voyage-3.5-lite32,000256, 512, 1024, 2048Optimized for latency and cost
voyage-3-large32,000256, 512, 1024, 2048Best general-purpose and multilingual quality
voyage-code-332,000256, 512, 1024, 2048Optimized for code retrieval
voyage-finance-232,0001024Optimized for finance retrieval and RAG
voyage-law-216,0001024Optimized for legal and long-context retrieval

Required Secrets

Secret KeyEnvironment VariableDescription
voyage_api_keyVOYAGE_API_KEYVoyageAI API key for embeddings access

Environment Variables

Create a .env file in your workflow directory:

# .env file
VOYAGE_API_KEY=your_voyage_api_key_here

Available Actions

embed

Generate embeddings for text or lists of texts using VoyageAI models.

Parameters:

  • texts (string or array, required): Text or list of texts to embed
  • model (string, optional): Override config default model
  • input_type (string, optional): "document" or "query" - override config default
  • truncation (boolean, optional): Whether to truncate inputs to fit context length
  • output_dimension (integer, optional): Override embedding dimension (256, 512, 1024, or 2048)

Output Structure:

  • embeddings (array): List of embedding vectors (each vector is a list of floats)
  • model (string): Model used for embeddings
  • total_tokens (integer): Total tokens consumed
  • dimensions (integer): Dimension of each embedding vector
  • num_embeddings (integer): Number of embeddings generated

Workflow Usage - Single Text:

{
"id": "embed-query",
"name": "Embed User Query",
"action": "voyage-embeddings::embed",
"parameters": {
"texts": "{{payload.user_question}}",
"input_type": "query"
}
}

Workflow Usage - Multiple Documents:

{
"id": "embed-documents",
"name": "Embed Document Chunks",
"action": "voyage-embeddings::embed",
"parameters": {
"texts": ["First document chunk", "Second document chunk", "Third document chunk"],
"input_type": "document",
"model": "voyage-3-large"
}
}

Testing & Lint

Like all Rooms AI deployments, addons should be thoroughly tested.

A basic PyTest is setup with a CI/CD to require 85% coverage in tests. Else it will not deploy the new release.

We also have ruff set up in CI/CD.

Running the Tests

poetry run pytest tests/ --cov=src/voyageai_rooms_pkg --cov-report=term-missing

Running the linter

poetry run ruff check . --fix

Pull Requests & versioning

Like for all deployments, we use semantic versioning in CI/CD to automatize the versions.

For this, use the appropriate commit message syntax for semantic release in github.

Developers / Maintainers