ai_embed
Generate text embeddings via OpenAI, Ollama, or OAuth-authenticated providers.
Parameters
- providerstringdefault "openai"
- Embedding provider:
"openai","ollama","oauth" - modelstringdefault per provider
- Model name (see defaults below)
- input_keystringrequired
- Context key holding text (string or array of strings)
- output_keystringdefault "embed"
- Prefix for output context keys
- timeoutnumberdefault 120
- HTTP request timeout in seconds
- api_keystring*
- API key (OpenAI)
- base_urlstring*
- Base URL for OpenAI or OAuth endpoint
- ollama_hoststring
- Ollama server URL
- token_urlstring*
- OAuth token endpoint
- client_idstring*
- OAuth client ID
- client_secretstring*
- OAuth client secret
- scopestring
- OAuth scope
*Required for the respective provider; falls back to environment variables.
Default Models
| Provider | Default Model |
|---|---|
openai | text-embedding-3-small |
ollama | nomic-embed-text |
oauth | openai-text-embedding-3-small |
Environment Variable Fallbacks
| Config Key | Environment Variable | Provider |
|---|---|---|
api_key | OPENAI_API_KEY | openai |
base_url | OPENAI_BASE_URL | openai |
ollama_host | OLLAMA_HOST | ollama |
token_url | OAUTH_TOKEN_URL | oauth |
client_id | OAUTH_CLIENT_ID | oauth |
client_secret | OAUTH_CLIENT_SECRET | oauth |
scope | OAUTH_SCOPE | oauth |
base_url | OAUTH_BASE_URL | oauth |
Context Output
| Key | Type | Description |
|---|---|---|
{output_key}_embeddings | array | Array of embedding vectors (each is array of f64) |
{output_key}_count | number | Number of embeddings returned |
{output_key}_dimension | number | Dimension of each embedding vector |
{output_key}_model | string | Model name used |
{output_key}_success | boolean | true on success |
Input
The input_key context value can be:
- A string — embedded as a single text, returns one embedding
- An array of strings — batch embedded, returns one embedding per text
Examples
OpenAI embeddings
flow:step("embed", nodes.ai_embed({
provider = "openai",
model = "text-embedding-3-small",
input_key = "text",
output_key = "result"
}))
Ollama (local)
flow:step("embed", nodes.ai_embed({
provider = "ollama",
model = "nomic-embed-text",
input_key = "text",
output_key = "result"
}))
OAuth-authenticated endpoint
flow:step("embed", nodes.ai_embed({
provider = "oauth",
model = "openai-text-embedding-3-small",
input_key = "text",
output_key = "result"
}))
Batch embedding
flow:step("prepare", function(ctx)
return {
sentences = {
"The quick brown fox",
"jumped over the lazy dog",
"and ran into the forest"
}
}
end)
flow:step("embed", nodes.ai_embed({
provider = "openai",
input_key = "sentences",
output_key = "vectors"
})):depends_on("prepare")