Skip to content

Commit 6233b9a

Browse files
Anush008timvisee
andauthored
v1.13.0 (#77)
* v1.13.0 Signed-off-by: Anush008 <[email protected]> * with: dotnet-version: 6.x Signed-off-by: Anush008 <[email protected]> * Added StrictModeConfig param Signed-off-by: Anush008 <[email protected]> * chore: Comment out VectorInput variants Signed-off-by: Anush008 <[email protected]> * chore: MissedstrictModeConfig param Signed-off-by: Anush008 <[email protected]> * Update Docker image to 1.13 Co-authored-by: Anush <[email protected]> --------- Signed-off-by: Anush008 <[email protected]> Co-authored-by: Tim Visée <[email protected]>
1 parent c8ee12e commit 6233b9a

File tree

5 files changed

+86
-20
lines changed

5 files changed

+86
-20
lines changed

.github/workflows/test.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,10 @@ jobs:
2323

2424
- name: Setup .NET
2525
uses: actions/setup-dotnet@v4
26+
with:
27+
dotnet-version: |
28+
6.x
29+
8.x
2630
2731
- name: Build
2832
run: ./build.sh build

Directory.Build.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
<PackageProjectUrl>https://github.com/qdrant/qdrant-dotnet</PackageProjectUrl>
1010
<PackageReleaseNotes>https://github.com/qdrant/qdrant-dotnet/releases</PackageReleaseNotes>
1111
<PackageTags>qdrant, database, vector, search</PackageTags>
12-
<QdrantVersion>v1.12.0</QdrantVersion>
12+
<QdrantVersion>v1.13.0</QdrantVersion>
1313
</PropertyGroup>
1414

1515
<PropertyGroup>

src/Qdrant.Client/Grpc/Conditions.cs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -284,6 +284,19 @@ public static Condition DatetimeRange(string field, DateTime? lt = null, DateTim
284284
return new Condition { Field = new FieldCondition { Key = field, DatetimeRange = datetimeRange } };
285285
}
286286

287+
/// <summary>
288+
/// Match all records which contain the specified vector.
289+
/// </summary>
290+
/// <param name="vector">The ids to match</param>
291+
/// <returns>a new instance of <see cref="Condition"/></returns>
292+
public static Condition HasVector(string vector) => new Condition
293+
{
294+
HasVector = new HasVectorCondition
295+
{
296+
HasVector = vector
297+
}
298+
};
299+
287300
}
288301

289302

src/Qdrant.Client/Grpc/VectorInput.cs

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,4 +84,34 @@ public static implicit operator VectorInput(float[][] values)
8484
{
8585
Id = id
8686
};
87+
88+
// /// <summary>
89+
// /// Implicitly converts a <see cref="Document"/> to a new instance of <see cref="VectorInput"/>
90+
// /// </summary>
91+
// /// <param name="document">an instance of <see cref="Document"/></param>
92+
// /// <returns>a new instance of <see cref="VectorInput"/></returns>
93+
// public static implicit operator VectorInput(Document document) => new()
94+
// {
95+
// Document = document
96+
// };
97+
98+
// /// <summary>
99+
// /// Implicitly converts an <see cref="Image"/> to a new instance of <see cref="VectorInput"/>
100+
// /// </summary>
101+
// /// <param name="image">an instance of <see cref="Image"/></param>
102+
// /// <returns>a new instance of <see cref="VectorInput"/></returns>
103+
// public static implicit operator VectorInput(Image image) => new()
104+
// {
105+
// Image = image
106+
// };
107+
108+
// /// <summary>
109+
// /// Implicitly converts an <see cref="InferenceObject"/> to a new instance of <see cref="VectorInput"/>
110+
// /// </summary>
111+
// /// <param name="obj">an instance of <see cref="InferenceObject"/></param>
112+
// /// <returns>a new instance of <see cref="VectorInput"/></returns>
113+
// public static implicit operator VectorInput(InferenceObject obj) => new()
114+
// {
115+
// Object = obj
116+
// };
87117
}

src/Qdrant.Client/QdrantClient.cs

Lines changed: 38 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -131,11 +131,12 @@ private QdrantClient(
131131
/// Params for quantization, if <c>null</c> - quantization will be disabled.
132132
/// </param>
133133
/// <param name="initFromCollection">Use data stored in another collection to initialize this collection.</param>
134+
/// <param name="shardingMethod">Sharding method.</param>
135+
/// <param name="sparseVectorsConfig">Configuration for sparse vectors.</param>
136+
/// <param name="strictModeConfig">Configuration for strict mode.</param>
134137
/// <param name="timeout">
135138
/// Wait for operation commit timeout. If timeout is reached, the request will return with a service error.
136139
/// </param>
137-
/// <param name="shardingMethod">Sharding method.</param>
138-
/// <param name="sparseVectorsConfig">Configuration for sparse vectors.</param>
139140
/// <param name="cancellationToken">
140141
/// The token to monitor for cancellation requests. The default value is <see cref="CancellationToken.None" />.
141142
/// </param>
@@ -153,12 +154,13 @@ public Task CreateCollectionAsync(
153154
string? initFromCollection = null,
154155
ShardingMethod? shardingMethod = null,
155156
SparseVectorConfig? sparseVectorsConfig = null,
157+
StrictModeConfig? strictModeConfig = null,
156158
TimeSpan? timeout = null,
157159
CancellationToken cancellationToken = default)
158160
=> CreateCollectionAsync(
159161
collectionName, new VectorsConfig { Params = vectorsConfig }, shardNumber, replicationFactor,
160162
writeConsistencyFactor, onDiskPayload, hnswConfig, optimizersConfig, walConfig, quantizationConfig,
161-
initFromCollection, shardingMethod, sparseVectorsConfig, timeout, cancellationToken);
163+
initFromCollection, shardingMethod, sparseVectorsConfig, strictModeConfig, timeout, cancellationToken);
162164

163165
/// <summary>
164166
/// Creates a new collection with the given parameters.
@@ -191,11 +193,12 @@ public Task CreateCollectionAsync(
191193
/// Params for quantization, if <c>null</c> - quantization will be disabled.
192194
/// </param>
193195
/// <param name="initFromCollection">Use data stored in another collection to initialize this collection.</param>
196+
/// <param name="shardingMethod">Sharding method.</param>
197+
/// <param name="sparseVectorsConfig">Configuration for sparse vectors.</param>
198+
/// <param name="strictModeConfig">Configuration for strict mode.</param>
194199
/// <param name="timeout">
195200
/// Wait for operation commit timeout. If timeout is reached, the request will return with a service error.
196201
/// </param>
197-
/// <param name="shardingMethod">Sharding method.</param>
198-
/// <param name="sparseVectorsConfig">Configuration for sparse vectors.</param>
199202
/// <param name="cancellationToken">
200203
/// The token to monitor for cancellation requests. The default value is <see cref="CancellationToken.None" />.
201204
/// </param>
@@ -213,12 +216,13 @@ public Task CreateCollectionAsync(
213216
string? initFromCollection = null,
214217
ShardingMethod? shardingMethod = null,
215218
SparseVectorConfig? sparseVectorsConfig = null,
219+
StrictModeConfig? strictModeConfig = null,
216220
TimeSpan? timeout = null,
217221
CancellationToken cancellationToken = default)
218222
=> CreateCollectionAsync(
219223
collectionName, vectorsConfig == null ? null : new VectorsConfig { ParamsMap = vectorsConfig }, shardNumber, replicationFactor,
220224
writeConsistencyFactor, onDiskPayload, hnswConfig, optimizersConfig, walConfig, quantizationConfig,
221-
initFromCollection, shardingMethod, sparseVectorsConfig, timeout, cancellationToken);
225+
initFromCollection, shardingMethod, sparseVectorsConfig, strictModeConfig, timeout, cancellationToken);
222226

223227
private async Task CreateCollectionAsync(
224228
string collectionName,
@@ -234,6 +238,7 @@ private async Task CreateCollectionAsync(
234238
string? initFromCollection = null,
235239
ShardingMethod? shardingMethod = null,
236240
SparseVectorConfig? sparseVectorsConfig = null,
241+
StrictModeConfig? strictModeConfig = null,
237242
TimeSpan? timeout = null,
238243
CancellationToken cancellationToken = default)
239244
{
@@ -250,6 +255,7 @@ private async Task CreateCollectionAsync(
250255
WalConfig = walConfig,
251256
QuantizationConfig = quantizationConfig,
252257
SparseVectorsConfig = sparseVectorsConfig,
258+
StrictModeConfig = strictModeConfig
253259
};
254260

255261
if (timeout is not null)
@@ -316,11 +322,12 @@ private async Task CreateCollectionAsync(
316322
/// Params for quantization, if <c>null</c> - quantization will be disabled.
317323
/// </param>
318324
/// <param name="initFromCollection">Use data stored in another collection to initialize this collection.</param>
325+
/// <param name="shardingMethod">Sharding method.</param>
326+
/// <param name="sparseVectorsConfig">Configuration for sparse vectors.</param>
327+
/// <param name="strictModeConfig">Configuration for strict mode.</param>
319328
/// <param name="timeout">
320329
/// Wait for operation commit timeout. If timeout is reached, the request will return with a service error.
321330
/// </param>
322-
/// <param name="shardingMethod">Sharding method.</param>
323-
/// <param name="sparseVectorsConfig">Configuration for sparse vectors.</param>
324331
/// <param name="cancellationToken">
325332
/// The token to monitor for cancellation requests. The default value is <see cref="CancellationToken.None" />.
326333
/// </param>
@@ -338,12 +345,13 @@ public Task RecreateCollectionAsync(
338345
string? initFromCollection = null,
339346
ShardingMethod? shardingMethod = null,
340347
SparseVectorConfig? sparseVectorsConfig = null,
348+
StrictModeConfig? strictModeConfig = null,
341349
TimeSpan? timeout = null,
342350
CancellationToken cancellationToken = default)
343351
=> RecreateCollectionAsync(
344352
collectionName, new VectorsConfig { Params = vectorsConfig }, shardNumber, replicationFactor,
345353
writeConsistencyFactor, onDiskPayload, hnswConfig, optimizersConfig, walConfig, quantizationConfig,
346-
initFromCollection, shardingMethod, sparseVectorsConfig, timeout, cancellationToken);
354+
initFromCollection, shardingMethod, sparseVectorsConfig, strictModeConfig, timeout, cancellationToken);
347355

348356
/// <summary>
349357
/// Deletes a collection if one exists, and creates a new collection with the given parameters.
@@ -376,11 +384,12 @@ public Task RecreateCollectionAsync(
376384
/// Params for quantization, if <c>null</c> - quantization will be disabled.
377385
/// </param>
378386
/// <param name="initFromCollection">Use data stored in another collection to initialize this collection.</param>
387+
/// <param name="shardingMethod">Sharding method.</param>
388+
/// <param name="sparseVectorsConfig">Configuration for sparse vectors.</param>
389+
/// <param name="strictModeConfig">Configuration for strict mode.</param>
379390
/// <param name="timeout">
380391
/// Wait for operation commit timeout. If timeout is reached, the request will return with a service error.
381392
/// </param>
382-
/// <param name="shardingMethod">Sharding method.</param>
383-
/// <param name="sparseVectorsConfig">Configuration for sparse vectors.</param>
384393
/// <param name="cancellationToken">
385394
/// The token to monitor for cancellation requests. The default value is <see cref="CancellationToken.None" />.
386395
/// </param>
@@ -398,12 +407,13 @@ public Task RecreateCollectionAsync(
398407
string? initFromCollection = null,
399408
ShardingMethod? shardingMethod = null,
400409
SparseVectorConfig? sparseVectorsConfig = null,
410+
StrictModeConfig? strictModeConfig = null,
401411
TimeSpan? timeout = null,
402412
CancellationToken cancellationToken = default)
403413
=> RecreateCollectionAsync(
404414
collectionName, vectorsConfig == null ? null : new VectorsConfig { ParamsMap = vectorsConfig }, shardNumber, replicationFactor,
405415
writeConsistencyFactor, onDiskPayload, hnswConfig, optimizersConfig, walConfig, quantizationConfig,
406-
initFromCollection, shardingMethod, sparseVectorsConfig, timeout, cancellationToken);
416+
initFromCollection, shardingMethod, sparseVectorsConfig, strictModeConfig, timeout, cancellationToken);
407417

408418
private async Task RecreateCollectionAsync(
409419
string collectionName,
@@ -419,6 +429,7 @@ private async Task RecreateCollectionAsync(
419429
string? initFromCollection = null,
420430
ShardingMethod? shardingMethod = null,
421431
SparseVectorConfig? sparseVectorsConfig = null,
432+
StrictModeConfig? strictModeConfig = null,
422433
TimeSpan? timeout = null,
423434
CancellationToken cancellationToken = default)
424435
{
@@ -429,7 +440,7 @@ private async Task RecreateCollectionAsync(
429440
await CreateCollectionAsync(
430441
collectionName, vectorsConfig, shardNumber, replicationFactor,
431442
writeConsistencyFactor, onDiskPayload, hnswConfig, optimizersConfig, walConfig, quantizationConfig,
432-
initFromCollection, shardingMethod, sparseVectorsConfig, timeout, cancellationToken)
443+
initFromCollection, shardingMethod, sparseVectorsConfig, strictModeConfig, timeout, cancellationToken)
433444
.ConfigureAwait(false);
434445
}
435446

@@ -595,10 +606,11 @@ public async Task<bool> CollectionExistsAsync(
595606
/// <param name="quantizationConfig">
596607
/// Params for quantization, if <c>null</c> - quantization will be disabled.
597608
/// </param>
609+
/// <param name="sparseVectorsConfig">Configuration for sparse vectors.</param>
610+
/// <param name="strictModeConfig">Configuration for strict mode.</param>
598611
/// <param name="timeout">
599612
/// Wait for operation commit timeout. If timeout is reached, the request will return with a service error.
600613
/// </param>
601-
/// <param name="sparseVectorsConfig">Configuration for sparse vectors.</param>
602614
/// <param name="cancellationToken">
603615
/// The token to monitor for cancellation requests. The default value is <see cref="CancellationToken.None" />.
604616
/// </param>
@@ -610,10 +622,11 @@ public Task UpdateCollectionAsync(
610622
HnswConfigDiff? hnswConfig = null,
611623
QuantizationConfigDiff? quantizationConfig = null,
612624
SparseVectorConfig? sparseVectorsConfig = null,
625+
StrictModeConfig? strictModeConfig = null,
613626
TimeSpan? timeout = null,
614627
CancellationToken cancellationToken = default)
615628
=> UpdateCollectionCoreAsync(collectionName, new VectorsConfigDiff { Params = vectorsConfig }, optimizersConfig,
616-
collectionParams, hnswConfig, quantizationConfig, sparseVectorsConfig, timeout, cancellationToken);
629+
collectionParams, hnswConfig, quantizationConfig, sparseVectorsConfig, strictModeConfig, timeout, cancellationToken);
617630

618631
/// <summary>
619632
/// Update parameters of the collection.
@@ -629,10 +642,11 @@ public Task UpdateCollectionAsync(
629642
/// <param name="quantizationConfig">
630643
/// Params for quantization, if <c>null</c> - quantization will be disabled.
631644
/// </param>
645+
/// <param name="sparseVectorsConfig">Configuration for sparse vectors.</param>
646+
/// <param name="strictModeConfig">Configuration for strict mode.</param>
632647
/// <param name="timeout">
633648
/// Wait for operation commit timeout. If timeout is reached, the request will return with a service error.
634649
/// </param>
635-
/// <param name="sparseVectorsConfig">Configuration for sparse vectors.</param>
636650
/// <param name="cancellationToken">
637651
/// The token to monitor for cancellation requests. The default value is <see cref="CancellationToken.None" />.
638652
/// </param>
@@ -644,10 +658,11 @@ public Task UpdateCollectionAsync(
644658
HnswConfigDiff? hnswConfig = null,
645659
QuantizationConfigDiff? quantizationConfig = null,
646660
SparseVectorConfig? sparseVectorsConfig = null,
661+
StrictModeConfig? strictModeConfig = null,
647662
TimeSpan? timeout = null,
648663
CancellationToken cancellationToken = default)
649664
=> UpdateCollectionCoreAsync(collectionName, new VectorsConfigDiff { ParamsMap = vectorsConfig },
650-
optimizersConfig, collectionParams, hnswConfig, quantizationConfig, sparseVectorsConfig, timeout, cancellationToken);
665+
optimizersConfig, collectionParams, hnswConfig, quantizationConfig, sparseVectorsConfig, strictModeConfig, timeout, cancellationToken);
651666

652667
/// <summary>
653668
/// Update parameters of the collection.
@@ -659,10 +674,11 @@ public Task UpdateCollectionAsync(
659674
/// <param name="quantizationConfig">
660675
/// Params for quantization, if <c>null</c> - quantization will be disabled.
661676
/// </param>
677+
/// <param name="sparseVectorsConfig">Configuration for sparse vectors.</param>
678+
/// <param name="strictModeConfig">Configuration for strict mode.</param>
662679
/// <param name="timeout">
663680
/// Wait for operation commit timeout. If timeout is reached, the request will return with a service error.
664681
/// </param>
665-
/// <param name="sparseVectorsConfig">Configuration for sparse vectors.</param>
666682
/// <param name="cancellationToken">
667683
/// The token to monitor for cancellation requests. The default value is <see cref="CancellationToken.None" />.
668684
/// </param>
@@ -673,10 +689,11 @@ public Task UpdateCollectionAsync(
673689
HnswConfigDiff? hnswConfig = null,
674690
QuantizationConfigDiff? quantizationConfig = null,
675691
SparseVectorConfig? sparseVectorsConfig = null,
692+
StrictModeConfig? strictModeConfig = null,
676693
TimeSpan? timeout = null,
677694
CancellationToken cancellationToken = default)
678695
=> UpdateCollectionCoreAsync(collectionName, vectorsConfig: null, optimizersConfig, collectionParams,
679-
hnswConfig, quantizationConfig, sparseVectorsConfig, timeout, cancellationToken);
696+
hnswConfig, quantizationConfig, sparseVectorsConfig, strictModeConfig, timeout, cancellationToken);
680697

681698
private async Task UpdateCollectionCoreAsync(
682699
string collectionName,
@@ -686,6 +703,7 @@ private async Task UpdateCollectionCoreAsync(
686703
HnswConfigDiff? hnswConfig = null,
687704
QuantizationConfigDiff? quantizationConfig = null,
688705
SparseVectorConfig? sparseVectorsConfig = null,
706+
StrictModeConfig? strictModeConfig = null,
689707
TimeSpan? timeout = null,
690708
CancellationToken cancellationToken = default)
691709
{
@@ -698,6 +716,7 @@ private async Task UpdateCollectionCoreAsync(
698716
HnswConfig = hnswConfig,
699717
QuantizationConfig = quantizationConfig,
700718
SparseVectorsConfig = sparseVectorsConfig,
719+
StrictModeConfig = strictModeConfig
701720
};
702721

703722
if (timeout is not null)

0 commit comments

Comments
 (0)