@@ -46,11 +46,48 @@ message SparseIndices {
4646 repeated uint32 data = 1 ;
4747}
4848
49+ message Document {
50+ string text = 1 ; // Text of the document
51+ string model = 3 ; // Model name
52+ map <string , Value > options = 4 ; // Model options
53+ }
54+
55+ message Image {
56+ Value image = 1 ; // Image data, either base64 encoded or URL
57+ string model = 2 ; // Model name
58+ map <string , Value > options = 3 ; // Model options
59+ }
60+
61+ message InferenceObject {
62+ Value object = 1 ; // Object to infer
63+ string model = 2 ; // Model name
64+ map <string , Value > options = 3 ; // Model options
65+ }
66+
4967// Legacy vector format, which determines the vector type by the configuration of its fields.
5068message Vector {
51- repeated float data = 1 ; // Vector data (flatten for multi vectors)
52- optional SparseIndices indices = 2 ; // Sparse indices for sparse vectors
53- optional uint32 vectors_count = 3 ; // Number of vectors per multi vector
69+ repeated float data = 1 ; // Vector data (flatten for multi vectors), deprecated
70+ optional SparseIndices indices = 2 ; // Sparse indices for sparse vectors, deprecated
71+ optional uint32 vectors_count = 3 ; // Number of vectors per multi vector, deprecated
72+ oneof vector {
73+ DenseVector dense = 101 ; // Dense vector
74+ SparseVector sparse = 102 ; // Sparse vector
75+ MultiDenseVector multi_dense = 103 ; // Multi dense vector
76+ Document document = 104 ;
77+ Image image = 105 ;
78+ InferenceObject object = 106 ;
79+ }
80+ }
81+
82+ message VectorOutput {
83+ repeated float data = 1 ; // Vector data (flatten for multi vectors), deprecated
84+ optional SparseIndices indices = 2 ; // Sparse indices for sparse vectors, deprecated
85+ optional uint32 vectors_count = 3 ; // Number of vectors per multi vector, deprecated
86+ oneof vector {
87+ DenseVector dense = 101 ; // Dense vector
88+ SparseVector sparse = 102 ; // Sparse vector
89+ MultiDenseVector multi_dense = 103 ; // Multi dense vector
90+ }
5491}
5592
5693message DenseVector {
@@ -73,6 +110,9 @@ message VectorInput {
73110 DenseVector dense = 2 ;
74111 SparseVector sparse = 3 ;
75112 MultiDenseVector multi_dense = 4 ;
113+ Document document = 5 ;
114+ Image image = 6 ;
115+ InferenceObject object = 7 ;
76116 }
77117}
78118
@@ -214,13 +254,24 @@ message NamedVectors {
214254 map <string , Vector > vectors = 1 ;
215255}
216256
257+ message NamedVectorsOutput {
258+ map <string , VectorOutput > vectors = 1 ;
259+ }
260+
217261message Vectors {
218262 oneof vectors_options {
219263 Vector vector = 1 ;
220264 NamedVectors vectors = 2 ;
221265 }
222266}
223267
268+ message VectorsOutput {
269+ oneof vectors_options {
270+ VectorOutput vector = 1 ;
271+ NamedVectorsOutput vectors = 2 ;
272+ }
273+ }
274+
224275message VectorsSelector {
225276 repeated string names = 1 ; // List of vectors to include into result
226277}
@@ -737,7 +788,7 @@ message ScoredPoint {
737788 float score = 3 ; // Similarity score
738789 reserved 4 ; // deprecated "vector" field
739790 uint64 version = 5 ; // Last update operation applied to this point
740- optional Vectors vectors = 6 ; // Vectors to search
791+ optional VectorsOutput vectors = 6 ; // Vectors to search
741792 optional ShardKey shard_key = 7 ; // Shard key
742793 optional OrderValue order_value = 8 ; // Order by value
743794}
@@ -766,21 +817,25 @@ message GroupsResult {
766817message SearchResponse {
767818 repeated ScoredPoint result = 1 ;
768819 double time = 2 ; // Time spent to process
820+ optional HardwareUsage usage = 3 ;
769821}
770822
771823message QueryResponse {
772824 repeated ScoredPoint result = 1 ;
773825 double time = 2 ; // Time spent to process
826+ optional HardwareUsage usage = 3 ;
774827}
775828
776829message QueryBatchResponse {
777830 repeated BatchResult result = 1 ;
778831 double time = 2 ; // Time spent to process
832+ optional HardwareUsage usage = 3 ;
779833}
780834
781835message QueryGroupsResponse {
782836 GroupsResult result = 1 ;
783837 double time = 2 ; // Time spent to process
838+ optional HardwareUsage usage = 3 ;
784839}
785840
786841message BatchResult {
@@ -790,16 +845,19 @@ message BatchResult {
790845message SearchBatchResponse {
791846 repeated BatchResult result = 1 ;
792847 double time = 2 ; // Time spent to process
848+ optional HardwareUsage usage = 3 ;
793849}
794850
795851message SearchGroupsResponse {
796852 GroupsResult result = 1 ;
797853 double time = 2 ; // Time spent to process
854+ optional HardwareUsage usage = 3 ;
798855}
799856
800857message CountResponse {
801858 CountResult result = 1 ;
802859 double time = 2 ; // Time spent to process
860+ optional HardwareUsage usage = 3 ;
803861}
804862
805863message ScrollResponse {
@@ -816,7 +874,7 @@ message RetrievedPoint {
816874 PointId id = 1 ;
817875 map <string , Value > payload = 2 ;
818876 reserved 3 ; // deprecated "vector" field
819- optional Vectors vectors = 4 ;
877+ optional VectorsOutput vectors = 4 ;
820878 optional ShardKey shard_key = 5 ; // Shard key
821879 optional OrderValue order_value = 6 ; // Order-by value
822880}
@@ -829,26 +887,31 @@ message GetResponse {
829887message RecommendResponse {
830888 repeated ScoredPoint result = 1 ;
831889 double time = 2 ; // Time spent to process
890+ optional HardwareUsage usage = 3 ;
832891}
833892
834893message RecommendBatchResponse {
835894 repeated BatchResult result = 1 ;
836895 double time = 2 ; // Time spent to process
896+ optional HardwareUsage usage = 3 ;
837897}
838898
839899message DiscoverResponse {
840900 repeated ScoredPoint result = 1 ;
841901 double time = 2 ; // Time spent to process
902+ optional HardwareUsage usage = 3 ;
842903}
843904
844905message DiscoverBatchResponse {
845906 repeated BatchResult result = 1 ;
846907 double time = 2 ; // Time spent to process
908+ optional HardwareUsage usage = 3 ;
847909}
848910
849911message RecommendGroupsResponse {
850912 GroupsResult result = 1 ;
851913 double time = 2 ; // Time spent to process
914+ optional HardwareUsage usage = 3 ;
852915}
853916
854917message UpdateBatchResponse {
@@ -864,11 +927,13 @@ message FacetResponse {
864927message SearchMatrixPairsResponse {
865928 SearchMatrixPairs result = 1 ;
866929 double time = 2 ; // Time spent to process
930+ optional HardwareUsage usage = 3 ;
867931}
868932
869933message SearchMatrixOffsetsResponse {
870934 SearchMatrixOffsets result = 1 ;
871935 double time = 2 ; // Time spent to process
936+ optional HardwareUsage usage = 3 ;
872937}
873938
874939// ---------------------------------------------
@@ -895,6 +960,7 @@ message Condition {
895960 Filter filter = 4 ;
896961 IsNullCondition is_null = 5 ;
897962 NestedCondition nested = 6 ;
963+ HasVectorCondition has_vector = 7 ;
898964 }
899965}
900966
@@ -910,6 +976,10 @@ message HasIdCondition {
910976 repeated PointId has_id = 1 ;
911977}
912978
979+ message HasVectorCondition {
980+ string has_vector = 1 ;
981+ }
982+
913983message NestedCondition {
914984 string key = 1 ; // Path to nested object
915985 Filter filter = 2 ; // Filter condition
@@ -1021,3 +1091,13 @@ message GeoPoint {
10211091 double lon = 1 ;
10221092 double lat = 2 ;
10231093}
1094+
1095+ // ---------------------------------------------
1096+ // ------------ Hardware measurements ----------
1097+ // ---------------------------------------------
1098+
1099+ message HardwareUsage {
1100+ uint64 cpu = 1 ;
1101+ uint64 io_read = 2 ;
1102+ uint64 io_write = 3 ;
1103+ }
0 commit comments