|
7 | 7 |
|
8 | 8 | let(:test_text) { "Ruby is a programmer's best friend" } |
9 | 9 | 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 |
13 | 10 |
|
14 | 11 | 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] |
17 | 16 | it "#{provider}/#{model} can handle a single text" do # rubocop:disable RSpec/MultipleExpectations |
18 | 17 | embedding = RubyLLM.embed(test_text, model: model) |
19 | 18 | expect(embedding.vectors).to be_an(Array) |
|
23 | 22 | end |
24 | 23 |
|
25 | 24 | 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) |
27 | 26 | expect(embedding.vectors).to be_an(Array) |
28 | | - expect(embedding.vectors.length).to eq(test_dimensions) |
| 27 | + expect(embedding.vectors.length).to eq(dimensions) |
29 | 28 | end |
30 | 29 |
|
31 | 30 | it "#{provider}/#{model} can handle multiple texts" do # rubocop:disable RSpec/ExampleLength,RSpec/MultipleExpectations |
|
38 | 37 | end |
39 | 38 |
|
40 | 39 | 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) |
42 | 41 | expect(embeddings.vectors).to be_an(Array) |
43 | 42 | embeddings.vectors.each do |vector| |
44 | | - expect(vector.length).to eq(test_dimensions) |
| 43 | + expect(vector.length).to eq(dimensions) |
45 | 44 | end |
46 | 45 | end |
47 | 46 | end |
|
0 commit comments