Skip to content

Commit ad2860e

Browse files
fzowlmpartipilo
andauthored
feat: voyage-multimodal-3.5 model (#261)
Co-authored-by: Michelangelo Partipilo <[email protected]>
1 parent 804bf14 commit ad2860e

File tree

3 files changed

+52
-37
lines changed

3 files changed

+52
-37
lines changed

docs/VECTORIZER_CONFIGURATION.md

Lines changed: 37 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,7 @@ public record MultiVectorConfig
231231
{
232232
// Aggregation method for combining multiple vectors during search
233233
public string? Aggregation { get; init; } = "maxSim";
234-
234+
235235
// Encoding configuration for compressing multi-vectors
236236
public EncodingConfig? Encoding { get; init; } = new MuveraEncoding();
237237
}
@@ -461,7 +461,7 @@ Use when you provide your own vectors.
461461
var config = Configure.Vectorizer.SelfProvided();
462462
```
463463

464-
**Wire Format:** `none`
464+
**Wire Format:** `none`
465465
**Type:** Single Vector
466466

467467
#### SelfProvided (Configure.MultiVectors)
@@ -470,7 +470,7 @@ var config = Configure.Vectorizer.SelfProvided();
470470
var config = Configure.MultiVectors.SelfProvided().New("colbert");
471471
```
472472

473-
**Wire Format:** `none`
473+
**Wire Format:** `none`
474474
**Type:** Multi-Vector
475475

476476
### Text Vectorizers
@@ -492,7 +492,7 @@ var config = Configure.Vectors.Text2VecOpenAI(
492492
).New("default", "title", "content");
493493
```
494494

495-
**Wire Format:** `text2vec-openai`
495+
**Wire Format:** `text2vec-openai`
496496
**Type:** Single Vector
497497

498498
**Parameters:**
@@ -518,7 +518,7 @@ var config = Configure.Vectors.Text2VecAzureOpenAI(
518518
).New("default", "text");
519519
```
520520

521-
**Wire Format:** `text2vec-azure-openai`
521+
**Wire Format:** `text2vec-azure-openai`
522522
**Type:** Single Vector
523523

524524
**Required Parameters:**
@@ -539,7 +539,7 @@ var config = Configure.Vectors.Text2VecCohere(
539539
).New("default", "content");
540540
```
541541

542-
**Wire Format:** `text2vec-cohere`
542+
**Wire Format:** `text2vec-cohere`
543543
**Type:** Single Vector
544544

545545
**Parameters:**
@@ -562,7 +562,7 @@ var config = Configure.Vectors.Text2VecHuggingFace(
562562
).New("default", "text");
563563
```
564564

565-
**Wire Format:** `text2vec-huggingface`
565+
**Wire Format:** `text2vec-huggingface`
566566
**Type:** Single Vector
567567

568568
**Parameters:**
@@ -587,7 +587,7 @@ var config = Configure.Vectors.Text2VecTransformers(
587587
).New("default", "description");
588588
```
589589

590-
**Wire Format:** `text2vec-transformers`
590+
**Wire Format:** `text2vec-transformers`
591591
**Type:** Single Vector
592592

593593
**Parameters:**
@@ -611,7 +611,7 @@ var config = Configure.Vectors.Text2VecGoogle(
611611
).New("default", "text");
612612
```
613613

614-
**Wire Format:** `text2vec-palm`
614+
**Wire Format:** `text2vec-palm`
615615
**Type:** Single Vector
616616

617617
**Parameters:**
@@ -635,7 +635,7 @@ var config = Configure.Vectors.Text2VecAWS(
635635
).New("default", "content");
636636
```
637637

638-
**Wire Format:** `text2vec-aws`
638+
**Wire Format:** `text2vec-aws`
639639
**Type:** Single Vector
640640

641641
**Required Parameters:**
@@ -655,7 +655,7 @@ var config = Configure.Vectors.Text2VecJinaAI(
655655
).New("default", "text");
656656
```
657657

658-
**Wire Format:** `text2vec-jinaai`
658+
**Wire Format:** `text2vec-jinaai`
659659
**Type:** Single Vector
660660

661661
#### Text2VecVoyageAI
@@ -672,7 +672,7 @@ var config = Configure.Vectors.Text2VecVoyageAI(
672672
).New("default", "content");
673673
```
674674

675-
**Wire Format:** `text2vec-voyageai`
675+
**Wire Format:** `text2vec-voyageai`
676676
**Type:** Single Vector
677677

678678
#### Text2VecOllama
@@ -687,7 +687,7 @@ var config = Configure.Vectors.Text2VecOllama(
687687
).New("default", "text");
688688
```
689689

690-
**Wire Format:** `text2vec-ollama`
690+
**Wire Format:** `text2vec-ollama`
691691
**Type:** Single Vector
692692

693693
#### Text2VecWeaviate
@@ -703,7 +703,7 @@ var config = Configure.Vectors.Text2VecWeaviate(
703703
).New("default", "content");
704704
```
705705

706-
**Wire Format:** `text2vec-weaviate`
706+
**Wire Format:** `text2vec-weaviate`
707707
**Type:** Single Vector
708708

709709
#### Text2VecDatabricks
@@ -718,7 +718,7 @@ var config = Configure.Vectors.Text2VecDatabricks(
718718
).New("default", "text");
719719
```
720720

721-
**Wire Format:** `text2vec-databricks`
721+
**Wire Format:** `text2vec-databricks`
722722
**Type:** Single Vector
723723

724724
**Required Parameters:**
@@ -737,7 +737,7 @@ var config = Configure.Vectors.Text2VecNvidia(
737737
).New("default", "content");
738738
```
739739

740-
**Wire Format:** `text2vec-nvidia`
740+
**Wire Format:** `text2vec-nvidia`
741741
**Type:** Single Vector
742742

743743
#### Text2VecMistral
@@ -752,7 +752,7 @@ var config = Configure.Vectors.Text2VecMistral(
752752
).New("default", "text");
753753
```
754754

755-
**Wire Format:** `text2vec-mistral`
755+
**Wire Format:** `text2vec-mistral`
756756
**Type:** Single Vector
757757

758758
#### Text2VecMorph
@@ -767,7 +767,7 @@ var config = Configure.Vectors.Text2VecMorph(
767767
).New("default", "content");
768768
```
769769

770-
**Wire Format:** `text2vec-morph`
770+
**Wire Format:** `text2vec-morph`
771771
**Type:** Single Vector
772772

773773
#### Text2VecModel2Vec
@@ -781,7 +781,7 @@ var config = Configure.Vectors.Text2VecModel2Vec(
781781
).New("default", "text");
782782
```
783783

784-
**Wire Format:** `text2vec-model2vec`
784+
**Wire Format:** `text2vec-model2vec`
785785
**Type:** Single Vector
786786

787787
### Multi-Media Vectorizers
@@ -801,7 +801,7 @@ var config = Configure.Vectors.Multi2VecClip(
801801
).New("default");
802802
```
803803

804-
**Wire Format:** `multi2vec-clip`
804+
**Wire Format:** `multi2vec-clip`
805805
**Type:** Single Vector
806806

807807
**With Weighted Fields:**
@@ -835,7 +835,7 @@ var config = Configure.Vectors.Multi2VecBind(
835835
).New("default");
836836
```
837837

838-
**Wire Format:** `multi2vec-bind`
838+
**Wire Format:** `multi2vec-bind`
839839
**Type:** Single Vector
840840

841841
**Supported Modalities:**
@@ -873,7 +873,7 @@ var config = Configure.Vectors.Multi2VecGoogle(
873873
).New("default");
874874
```
875875

876-
**Wire Format:** `multi2vec-palm`
876+
**Wire Format:** `multi2vec-palm`
877877
**Type:** Single Vector
878878

879879
**Required Parameters:**
@@ -899,7 +899,7 @@ var config = Configure.Vectors.Multi2VecCohere(
899899
).New("default");
900900
```
901901

902-
**Wire Format:** `multi2vec-cohere`
902+
**Wire Format:** `multi2vec-cohere`
903903
**Type:** Single Vector
904904

905905
#### Multi2VecAWS
@@ -917,7 +917,7 @@ var config = Configure.Vectors.Multi2VecAWS(
917917
).New("default");
918918
```
919919

920-
**Wire Format:** `multi2vec-aws`
920+
**Wire Format:** `multi2vec-aws`
921921
**Type:** Single Vector
922922

923923
#### Multi2VecJinaAI
@@ -935,7 +935,7 @@ var config = Configure.Vectors.Multi2VecJinaAI(
935935
).New("default");
936936
```
937937

938-
**Wire Format:** `multi2vec-jinaai`
938+
**Wire Format:** `multi2vec-jinaai`
939939
**Type:** Single Vector
940940

941941
#### Multi2VecVoyageAI
@@ -948,12 +948,13 @@ var config = Configure.Vectors.Multi2VecVoyageAI(
948948
imageFields: ["photo"],
949949
model: "voyage-multimodal-3",
950950
textFields: ["caption"],
951+
videoFields: ["video"],
951952
truncate: false,
952953
vectorizeCollectionName: true
953954
).New("default");
954955
```
955956

956-
**Wire Format:** `multi2vec-voyageai`
957+
**Wire Format:** `multi2vec-voyageai`
957958
**Type:** Single Vector
958959

959960
#### Multi2VecNvidia
@@ -969,7 +970,7 @@ var config = Configure.Vectors.Multi2VecNvidia(
969970
).New("default");
970971
```
971972

972-
**Wire Format:** `multi2vec-nvidia`
973+
**Wire Format:** `multi2vec-nvidia`
973974
**Type:** Single Vector
974975

975976
### Image Vectorizers
@@ -986,7 +987,7 @@ var config = Configure.Vectors.Img2VecNeural(
986987
).New("default");
987988
```
988989

989-
**Wire Format:** `img2vec-neural`
990+
**Wire Format:** `img2vec-neural`
990991
**Type:** Single Vector
991992

992993
**Required Parameters:**
@@ -1007,7 +1008,7 @@ var config = Configure.Vectors.Ref2VecCentroid(
10071008
).New("default");
10081009
```
10091010

1010-
**Wire Format:** `ref2vec-centroid`
1011+
**Wire Format:** `ref2vec-centroid`
10111012
**Type:** Single Vector
10121013

10131014
**Required Parameters:**
@@ -1044,7 +1045,7 @@ var config = Configure.MultiVectors.Text2MultiVecJinaAI(
10441045
);
10451046
```
10461047

1047-
**Wire Format:** `text2multivec-jinaai`
1048+
**Wire Format:** `text2multivec-jinaai`
10481049
**Type:** Multi-Vector
10491050

10501051
#### Multi2MultiVecJinaAI
@@ -1064,7 +1065,7 @@ var config = Configure.MultiVectors.Multi2MultiVecJinaAI(
10641065
);
10651066
```
10661067

1067-
**Wire Format:** `multi2multivec-jinaai`
1068+
**Wire Format:** `multi2multivec-jinaai`
10681069
**Type:** Multi-Vector
10691070

10701071
**With Weighted Fields:**
@@ -1128,11 +1129,11 @@ var collection = await client.Collections.Create(
11281129
// Text embeddings
11291130
Configure.Vectors.Text2VecOpenAI(model: "text-embedding-3-small")
11301131
.New("text_vec", "title", "content"),
1131-
1132+
11321133
// Image embeddings
11331134
Configure.Vectors.Img2VecNeural(imageFields: ["image"])
11341135
.New("image_vec"),
1135-
1136+
11361137
// Multi-modal embeddings
11371138
Configure.Vectors.Multi2VecClip(
11381139
textFields: ["title"],
@@ -1158,7 +1159,7 @@ var collection = await client.Collections.Create(
11581159
// Regular single vector
11591160
Configure.Vectors.Text2VecOpenAI()
11601161
.New("regular"),
1161-
1162+
11621163
// Multi-vector for fine-grained retrieval
11631164
Configure.MultiVectors.Text2MultiVecJinaAI(model: "jina-colbert-v2")
11641165
.New(
@@ -1328,11 +1329,11 @@ var collection = await client.Collections.Create(
13281329
// Fast vector for initial retrieval
13291330
Configure.Vectors.Text2VecOpenAI(model: "text-embedding-3-small")
13301331
.New("fast", "title", "summary"),
1331-
1332+
13321333
// Detailed vector for reranking
13331334
Configure.Vectors.Text2VecOpenAI(model: "text-embedding-3-large")
13341335
.New("detailed", "title", "content"),
1335-
1336+
13361337
// Specialized domain vector
13371338
Configure.Vectors.Text2VecCohere(model: "embed-english-v3.0")
13381339
.New("cohere", "content")

src/Weaviate.Client/Configure/VectorizerFactory.cs

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -242,34 +242,46 @@ public VectorizerConfig Multi2VecGoogle(
242242
public VectorizerConfig Multi2VecVoyageAI(
243243
WeightedFields imageFields,
244244
WeightedFields textFields,
245+
WeightedFields videoFields,
245246
string? baseURL = null,
247+
int? dimensions = null,
246248
string? model = null,
247249
bool? truncate = null,
248250
bool? vectorizeCollectionName = null
249251
) =>
250252
new Models.Vectorizer.Multi2VecVoyageAI
251253
{
252254
BaseURL = baseURL,
255+
Dimensions = dimensions,
253256
ImageFields = imageFields,
254257
Model = model,
255258
TextFields = textFields,
259+
VideoFields = videoFields,
256260
Truncate = truncate,
257261
VectorizeCollectionName = vectorizeCollectionName,
258-
Weights = VectorizerWeights.FromWeightedFields(imageFields, textFields),
262+
Weights = VectorizerWeights.FromWeightedFields(
263+
imageFields,
264+
textFields,
265+
videoFields: videoFields
266+
),
259267
};
260268

261269
public VectorizerConfig Multi2VecVoyageAI(
262270
string[]? imageFields = null,
263271
string[]? textFields = null,
272+
string[]? videoFields = null,
264273
string? baseURL = null,
274+
int? dimensions = null,
265275
string? model = null,
266276
bool? truncate = null,
267277
bool? vectorizeCollectionName = null
268278
) =>
269279
new Models.Vectorizer.Multi2VecVoyageAI
270280
{
271281
BaseURL = baseURL,
282+
Dimensions = dimensions,
272283
ImageFields = imageFields,
284+
VideoFields = videoFields,
273285
Model = model,
274286
TextFields = textFields,
275287
Truncate = truncate,

src/Weaviate.Client/Models/Vectorizer.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -249,9 +249,11 @@ internal Multi2VecVoyageAI() { }
249249

250250
[JsonPropertyName("baseUrl")]
251251
public string? BaseURL { get; set; } = null;
252+
public int? Dimensions { get; set; } = null;
252253
public string[]? ImageFields { get; set; } = null;
253254
public string? Model { get; set; } = null;
254255
public string[]? TextFields { get; set; } = null;
256+
public string[]? VideoFields { get; set; } = null;
255257
public bool? Truncate { get; set; } = null;
256258

257259
[JsonPropertyName("vectorizeClassName")]

0 commit comments

Comments
 (0)