Skip to content

Commit 5aa271f

Browse files
committed
Refactor Embeddings spec to use Constant and custom model dimensions
1 parent 84e17c3 commit 5aa271f

File tree

2 files changed

+14
-9
lines changed

2 files changed

+14
-9
lines changed

spec/ruby_llm/embeddings_spec.rb

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,12 @@
77

88
let(:test_text) { "Ruby is a programmer's best friend" }
99
let(:test_texts) { %w[Ruby Python JavaScript] }
10-
let(:test_dimensions) { 768 }
11-
12-
embedding_models = %w[text-embedding-004 text-embedding-3-small].freeze
1310

1411
describe 'basic functionality' do
15-
embedding_models.each do |model|
16-
provider = RubyLLM::Models.provider_for(model).slug
12+
EMBEDDINGS_MODELS.each do |model_info|
13+
model = model_info[:model]
14+
provider = model_info[:provider]
15+
dimensions = model_info[:default_dimensions]
1716
it "#{provider}/#{model} can handle a single text" do # rubocop:disable RSpec/MultipleExpectations
1817
embedding = RubyLLM.embed(test_text, model: model)
1918
expect(embedding.vectors).to be_an(Array)
@@ -23,9 +22,9 @@
2322
end
2423

2524
it "#{provider}/#{model} can handle a single text with custom dimensions" do # rubocop:disable RSpec/MultipleExpectations
26-
embedding = RubyLLM.embed(test_text, model: model, dimensions: test_dimensions)
25+
embedding = RubyLLM.embed(test_text, model: model, dimensions: dimensions)
2726
expect(embedding.vectors).to be_an(Array)
28-
expect(embedding.vectors.length).to eq(test_dimensions)
27+
expect(embedding.vectors.length).to eq(dimensions)
2928
end
3029

3130
it "#{provider}/#{model} can handle multiple texts" do # rubocop:disable RSpec/ExampleLength,RSpec/MultipleExpectations
@@ -38,10 +37,10 @@
3837
end
3938

4039
it "#{provider}/#{model} can handle multiple texts with custom dimensions" do # rubocop:disable RSpec/MultipleExpectations
41-
embeddings = RubyLLM.embed(test_texts, model: model, dimensions: test_dimensions)
40+
embeddings = RubyLLM.embed(test_texts, model: model, dimensions: dimensions)
4241
expect(embeddings.vectors).to be_an(Array)
4342
embeddings.vectors.each do |vector|
44-
expect(vector.length).to eq(test_dimensions)
43+
expect(vector.length).to eq(dimensions)
4544
end
4645
end
4746
end

spec/spec_helper.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,12 @@
144144
{ provider: :ollama, model: 'qwen3' }
145145
].freeze
146146

147+
EMBEDDINGS_MODELS = [
148+
{ provider: :openai, model: 'text-embedding-004', default_dimensions: 768 },
149+
{ provider: :gemini, model: 'text-embedding-3-small', default_dimensions: 1024 },
150+
{ provider: :cohere, model: 'embed-v4.0', default_dimensions: 1024 }
151+
].freeze
152+
147153
PDF_MODELS = [
148154
{ provider: :anthropic, model: 'claude-3-5-haiku-20241022' },
149155
{ provider: :gemini, model: 'gemini-2.0-flash' },

0 commit comments

Comments
 (0)