Embedding Models
Raif supports generation of vector embeddings. You can enable and configure embedding models in your Raif initializer:
Raif.configure do |config|
config.open_ai_embedding_models_enabled = true
config.bedrock_embedding_models_enabled = true
config.default_embedding_model_key = "open_ai_text_embedding_3_small"
end
Supported Embedding Models
Raif currently supports the following embedding models:
OpenAI
open_ai_text_embedding_3_small
open_ai_text_embedding_3_large
open_ai_text_embedding_ada_002
AWS Bedrock
bedrock_titan_embed_text_v2
Creating Embeddings
By default, Raif will use Raif.config.default_embedding_model_key
as the model for creating embeddings. To create an embedding for a piece of text:
# Generate an embedding for a piece of text
embedding = Raif.generate_embedding!("Your text here")
# Generate an embedding for a piece of text with a specific number of dimensions
embedding = Raif.generate_embedding!("Your text here", dimensions: 1024)
# If you're using an OpenAI embedding model, you can pass an array of strings to embed multiple texts at once
embeddings = Raif.generate_embedding!([
"Your text here",
"Your other text here"
])
Or to generate embeddings for a piece of text with a specific model:
model = Raif.embedding_model(:open_ai_text_embedding_3_small)
embedding = model.generate_embedding!("Your text here")
Read next: Customization