Skip to content

Commit 460374c

Browse files
committed
Merge remote-tracking branch 'origin/main' into feat/text2vec-google-location
# Conflicts: # src/Weaviate.Client.Tests/Unit/TestVectorizers.cs # src/Weaviate.Client/PublicAPI.Unshipped.txt
2 parents 6ff0a78 + bde7784 commit 460374c

4 files changed

Lines changed: 103 additions & 0 deletions

File tree

src/Weaviate.Client.Tests/Unit/TestVectorizers.cs

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -533,4 +533,90 @@ public void Test_Text2VecGoogle_Omits_Unset_Location()
533533
Assert.Contains("\"text2vec-google\"", json);
534534
Assert.DoesNotContain("\"location\"", json);
535535
}
536+
537+
/// <summary>
538+
/// Tests that Text2VecAWS serializes <c>dimensions</c> as a JSON number (not a string) when it
539+
/// is set via the Bedrock factory.
540+
/// </summary>
541+
[Fact]
542+
[System.Diagnostics.CodeAnalysis.SuppressMessage(
543+
"Performance",
544+
"CA1869:Cache and reuse 'JsonSerializerOptions' instances",
545+
Justification = "<Pending>"
546+
)]
547+
public void Test_Text2VecAWS_Serializes_Dimensions_When_Set()
548+
{
549+
// Arrange
550+
var vc = Configure.Vector(
551+
"default",
552+
v =>
553+
v.Text2VecAWSBedrock(
554+
region: "us-east-1",
555+
model: "amazon.titan-embed-text-v2:0",
556+
dimensions: 1024
557+
)
558+
);
559+
560+
// Act
561+
var dto = vc.Vectorizer?.ToDto() ?? default;
562+
var json = JsonSerializer.Serialize(
563+
dto,
564+
new JsonSerializerOptions
565+
{
566+
PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
567+
DefaultIgnoreCondition = System
568+
.Text
569+
.Json
570+
.Serialization
571+
.JsonIgnoreCondition
572+
.WhenWritingNull,
573+
WriteIndented = false,
574+
}
575+
);
576+
577+
// Assert
578+
Assert.Contains("\"text2vec-aws\"", json);
579+
Assert.Contains("\"dimensions\":1024", json);
580+
Assert.DoesNotContain("\"dimensions\":\"1024\"", json);
581+
}
582+
583+
/// <summary>
584+
/// Tests that Text2VecAWS omits <c>dimensions</c> when it is unset so the server can apply its
585+
/// default.
586+
/// </summary>
587+
[Fact]
588+
[System.Diagnostics.CodeAnalysis.SuppressMessage(
589+
"Performance",
590+
"CA1869:Cache and reuse 'JsonSerializerOptions' instances",
591+
Justification = "<Pending>"
592+
)]
593+
public void Test_Text2VecAWS_Omits_Unset_Dimensions()
594+
{
595+
// Arrange
596+
var vc = Configure.Vector(
597+
"default",
598+
v => v.Text2VecAWSSagemaker(region: "us-east-1", endpoint: "my-endpoint")
599+
);
600+
601+
// Act
602+
var dto = vc.Vectorizer?.ToDto() ?? default;
603+
var json = JsonSerializer.Serialize(
604+
dto,
605+
new JsonSerializerOptions
606+
{
607+
PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
608+
DefaultIgnoreCondition = System
609+
.Text
610+
.Json
611+
.Serialization
612+
.JsonIgnoreCondition
613+
.WhenWritingNull,
614+
WriteIndented = false,
615+
}
616+
);
617+
618+
// Assert
619+
Assert.Contains("\"text2vec-aws\"", json);
620+
Assert.DoesNotContain("\"dimensions\"", json);
621+
}
536622
}

src/Weaviate.Client/Configure/VectorizerFactory.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -536,11 +536,13 @@ public VectorizerConfig Ref2VecCentroid(string[] referenceProperties, string met
536536
/// </summary>
537537
/// <param name="region">The region</param>
538538
/// <param name="model">The model</param>
539+
/// <param name="dimensions">Number of vector dimensions.</param>
539540
/// <param name="vectorizeCollectionName">The vectorize collection name</param>
540541
/// <returns>The vectorizer config</returns>
541542
public VectorizerConfig Text2VecAWSBedrock(
542543
string region,
543544
string model,
545+
int? dimensions = null,
544546
bool? vectorizeCollectionName = null
545547
) =>
546548
new Text2VecAWS
@@ -551,6 +553,7 @@ public VectorizerConfig Text2VecAWSBedrock(
551553
Model = model,
552554
TargetModel = null,
553555
TargetVariant = null,
556+
Dimensions = dimensions,
554557
VectorizeCollectionName = vectorizeCollectionName,
555558
};
556559

@@ -561,13 +564,15 @@ public VectorizerConfig Text2VecAWSBedrock(
561564
/// <param name="endpoint">The endpoint</param>
562565
/// <param name="targetModel">The target model</param>
563566
/// <param name="targetVariant">The target variant</param>
567+
/// <param name="dimensions">Number of vector dimensions.</param>
564568
/// <param name="vectorizeCollectionName">The vectorize collection name</param>
565569
/// <returns>The vectorizer config</returns>
566570
public VectorizerConfig Text2VecAWSSagemaker(
567571
string region,
568572
string endpoint,
569573
string? targetModel = null,
570574
string? targetVariant = null,
575+
int? dimensions = null,
571576
bool? vectorizeCollectionName = null
572577
) =>
573578
new Text2VecAWS
@@ -578,6 +583,7 @@ public VectorizerConfig Text2VecAWSSagemaker(
578583
Model = null,
579584
TargetModel = targetModel,
580585
TargetVariant = targetVariant,
586+
Dimensions = dimensions,
581587
VectorizeCollectionName = vectorizeCollectionName,
582588
};
583589

src/Weaviate.Client/Models/Vectorizer.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -717,6 +717,11 @@ internal Text2VecAWS() { }
717717
/// </summary>
718718
public string? TargetVariant { get; set; } = null;
719719

720+
/// <summary>
721+
/// Gets or sets the value of the dimensions
722+
/// </summary>
723+
public int? Dimensions { get; set; } = null;
724+
720725
/// <summary>
721726
/// Gets or sets the value of the vectorize collection name
722727
/// </summary>
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
#nullable enable
2+
*REMOVED*Weaviate.Client.VectorizerFactory.Text2VecAWSBedrock(string! region, string! model, bool? vectorizeCollectionName = null) -> Weaviate.Client.Models.VectorizerConfig!
3+
*REMOVED*Weaviate.Client.VectorizerFactory.Text2VecAWSSagemaker(string! region, string! endpoint, string? targetModel = null, string? targetVariant = null, bool? vectorizeCollectionName = null) -> Weaviate.Client.Models.VectorizerConfig!
24
*REMOVED*Weaviate.Client.VectorizerFactory.Text2VecGoogleVertex(string? apiEndpoint = null, string? model = null, string? projectId = null, string? titleProperty = null, int? dimensions = null, string? taskType = null, bool? vectorizeCollectionName = null) -> Weaviate.Client.Models.VectorizerConfig!
5+
Weaviate.Client.Models.Vectorizer.Text2VecAWS.Dimensions.get -> int?
6+
Weaviate.Client.Models.Vectorizer.Text2VecAWS.Dimensions.set -> void
37
Weaviate.Client.Models.Vectorizer.Text2VecGoogle.Location.get -> string?
48
Weaviate.Client.Models.Vectorizer.Text2VecGoogle.Location.set -> void
9+
Weaviate.Client.VectorizerFactory.Text2VecAWSBedrock(string! region, string! model, int? dimensions = null, bool? vectorizeCollectionName = null) -> Weaviate.Client.Models.VectorizerConfig!
10+
Weaviate.Client.VectorizerFactory.Text2VecAWSSagemaker(string! region, string! endpoint, string? targetModel = null, string? targetVariant = null, int? dimensions = null, bool? vectorizeCollectionName = null) -> Weaviate.Client.Models.VectorizerConfig!
511
Weaviate.Client.VectorizerFactory.Text2VecGoogleVertex(string? apiEndpoint = null, string? model = null, string? projectId = null, string? titleProperty = null, int? dimensions = null, string? taskType = null, bool? vectorizeCollectionName = null, string? location = null) -> Weaviate.Client.Models.VectorizerConfig!

0 commit comments

Comments
 (0)