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:
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
id | string | Yes | - | Unique identifier for the addon instance |
type | string | Yes | - | Type of the addon ("voyageai") |
name | string | Yes | - | Display name of the addon |
description | string | No | "" | Description of the addon |
enabled | boolean | No | true | Whether the addon is enabled |
CustomAddonConfig Fields (VoyageAI-specific)
This VoyageAI addon adds these specific configuration fields:
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
model | string | No | "voyage-3.5" | VoyageAI model to use for embeddings |
input_type | string | No | "document" | Default input type: "document" or "query" |
embedding_dimension | integer | No | 1024 | Embedding dimension (256, 512, 1024, or 2048) |
Available Models
| Model | Context Length | Dimensions | Description |
|---|---|---|---|
voyage-3.5 | 32,000 | 256, 512, 1024, 2048 | Optimized for general-purpose and multilingual retrieval |
voyage-3.5-lite | 32,000 | 256, 512, 1024, 2048 | Optimized for latency and cost |
voyage-3-large | 32,000 | 256, 512, 1024, 2048 | Best general-purpose and multilingual quality |
voyage-code-3 | 32,000 | 256, 512, 1024, 2048 | Optimized for code retrieval |
voyage-finance-2 | 32,000 | 1024 | Optimized for finance retrieval and RAG |
voyage-law-2 | 16,000 | 1024 | Optimized for legal and long-context retrieval |
Required Secrets
| Secret Key | Environment Variable | Description |
|---|---|---|
voyage_api_key | VOYAGE_API_KEY | VoyageAI 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 embedmodel(string, optional): Override config default modelinput_type(string, optional): "document" or "query" - override config defaulttruncation(boolean, optional): Whether to truncate inputs to fit context lengthoutput_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 embeddingstotal_tokens(integer): Total tokens consumeddimensions(integer): Dimension of each embedding vectornum_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
- Adrien EPPLING : adrien.eppling@nexroo.ai