variphx commited on
Commit
6b23458
·
1 Parent(s): 0c4d5e2

add/fix: add search functionalities and refactor some modules

Browse files
Cargo.lock CHANGED
@@ -46,17 +46,19 @@ version = "0.1.0"
46
  dependencies = [
47
  "anyhow",
48
  "axum 0.8.4",
49
- "candle-core",
50
- "candle-transformers",
51
  "deadpool-diesel",
52
  "diesel",
53
  "futures",
54
  "hf-hub",
 
55
  "qdrant-client",
56
  "rayon",
57
  "serde",
58
  "tokenizers",
59
  "tokio",
 
 
 
60
  "tower 0.5.2",
61
  "tower-http",
62
  "tracing",
@@ -254,38 +256,6 @@ version = "0.22.1"
254
  source = "registry+https://github.com/rust-lang/crates.io-index"
255
  checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
256
 
257
- [[package]]
258
- name = "bindgen_cuda"
259
- version = "0.1.5"
260
- source = "registry+https://github.com/rust-lang/crates.io-index"
261
- checksum = "1f8489af5b7d17a81bffe37e0f4d6e1e4de87c87329d05447f22c35d95a1227d"
262
- dependencies = [
263
- "glob",
264
- "num_cpus",
265
- "rayon",
266
- ]
267
-
268
- [[package]]
269
- name = "bit-set"
270
- version = "0.5.3"
271
- source = "registry+https://github.com/rust-lang/crates.io-index"
272
- checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1"
273
- dependencies = [
274
- "bit-vec",
275
- ]
276
-
277
- [[package]]
278
- name = "bit-vec"
279
- version = "0.6.3"
280
- source = "registry+https://github.com/rust-lang/crates.io-index"
281
- checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb"
282
-
283
- [[package]]
284
- name = "bitflags"
285
- version = "1.3.2"
286
- source = "registry+https://github.com/rust-lang/crates.io-index"
287
- checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
288
-
289
  [[package]]
290
  name = "bitflags"
291
  version = "2.9.2"
@@ -307,26 +277,6 @@ version = "3.19.0"
307
  source = "registry+https://github.com/rust-lang/crates.io-index"
308
  checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43"
309
 
310
- [[package]]
311
- name = "bytemuck"
312
- version = "1.23.2"
313
- source = "registry+https://github.com/rust-lang/crates.io-index"
314
- checksum = "3995eaeebcdf32f91f980d360f78732ddc061097ab4e39991ae7a6ace9194677"
315
- dependencies = [
316
- "bytemuck_derive",
317
- ]
318
-
319
- [[package]]
320
- name = "bytemuck_derive"
321
- version = "1.10.1"
322
- source = "registry+https://github.com/rust-lang/crates.io-index"
323
- checksum = "4f154e572231cb6ba2bd1176980827e3d5dc04cc183a75dea38109fbdd672d29"
324
- dependencies = [
325
- "proc-macro2",
326
- "quote",
327
- "syn",
328
- ]
329
-
330
  [[package]]
331
  name = "byteorder"
332
  version = "1.5.0"
@@ -339,74 +289,6 @@ version = "1.10.1"
339
  source = "registry+https://github.com/rust-lang/crates.io-index"
340
  checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a"
341
 
342
- [[package]]
343
- name = "candle-core"
344
- version = "0.9.1"
345
- source = "registry+https://github.com/rust-lang/crates.io-index"
346
- checksum = "a9f51e2ecf6efe9737af8f993433c839f956d2b6ed4fd2dd4a7c6d8b0fa667ff"
347
- dependencies = [
348
- "byteorder",
349
- "candle-kernels",
350
- "cudarc",
351
- "gemm 0.17.1",
352
- "half",
353
- "memmap2",
354
- "num-traits",
355
- "num_cpus",
356
- "rand 0.9.2",
357
- "rand_distr",
358
- "rayon",
359
- "safetensors",
360
- "thiserror 1.0.69",
361
- "ug",
362
- "ug-cuda",
363
- "yoke 0.7.5",
364
- "zip 1.1.4",
365
- ]
366
-
367
- [[package]]
368
- name = "candle-kernels"
369
- version = "0.9.1"
370
- source = "registry+https://github.com/rust-lang/crates.io-index"
371
- checksum = "9fcd989c2143aa754370b5bfee309e35fbd259e83d9ecf7a73d23d8508430775"
372
- dependencies = [
373
- "bindgen_cuda",
374
- ]
375
-
376
- [[package]]
377
- name = "candle-nn"
378
- version = "0.9.1"
379
- source = "registry+https://github.com/rust-lang/crates.io-index"
380
- checksum = "c1980d53280c8f9e2c6cbe1785855d7ff8010208b46e21252b978badf13ad69d"
381
- dependencies = [
382
- "candle-core",
383
- "half",
384
- "num-traits",
385
- "rayon",
386
- "safetensors",
387
- "serde",
388
- "thiserror 1.0.69",
389
- ]
390
-
391
- [[package]]
392
- name = "candle-transformers"
393
- version = "0.9.1"
394
- source = "registry+https://github.com/rust-lang/crates.io-index"
395
- checksum = "186cb80045dbe47e0b387ea6d3e906f02fb3056297080d9922984c90e90a72b0"
396
- dependencies = [
397
- "byteorder",
398
- "candle-core",
399
- "candle-nn",
400
- "fancy-regex",
401
- "num-traits",
402
- "rand 0.9.2",
403
- "rayon",
404
- "serde",
405
- "serde_json",
406
- "serde_plain",
407
- "tracing",
408
- ]
409
-
410
  [[package]]
411
  name = "castaway"
412
  version = "0.2.4"
@@ -534,12 +416,6 @@ version = "0.8.21"
534
  source = "registry+https://github.com/rust-lang/crates.io-index"
535
  checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28"
536
 
537
- [[package]]
538
- name = "crunchy"
539
- version = "0.2.4"
540
- source = "registry+https://github.com/rust-lang/crates.io-index"
541
- checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5"
542
-
543
  [[package]]
544
  name = "crypto-common"
545
  version = "0.1.6"
@@ -550,16 +426,6 @@ dependencies = [
550
  "typenum",
551
  ]
552
 
553
- [[package]]
554
- name = "cudarc"
555
- version = "0.16.6"
556
- source = "registry+https://github.com/rust-lang/crates.io-index"
557
- checksum = "17200eb07e7d85a243aa1bf4569a7aa998385ba98d14833973a817a63cc86e92"
558
- dependencies = [
559
- "half",
560
- "libloading",
561
- ]
562
-
563
  [[package]]
564
  name = "darling"
565
  version = "0.20.11"
@@ -692,7 +558,7 @@ version = "2.2.12"
692
  source = "registry+https://github.com/rust-lang/crates.io-index"
693
  checksum = "229850a212cd9b84d4f0290ad9d294afc0ae70fccaa8949dbe8b43ffafa1e20c"
694
  dependencies = [
695
- "bitflags 2.9.2",
696
  "byteorder",
697
  "diesel_derives",
698
  "itoa",
@@ -777,25 +643,6 @@ dependencies = [
777
  "syn",
778
  ]
779
 
780
- [[package]]
781
- name = "dyn-stack"
782
- version = "0.10.0"
783
- source = "registry+https://github.com/rust-lang/crates.io-index"
784
- checksum = "56e53799688f5632f364f8fb387488dd05db9fe45db7011be066fc20e7027f8b"
785
- dependencies = [
786
- "bytemuck",
787
- "reborrow",
788
- ]
789
-
790
- [[package]]
791
- name = "dyn-stack"
792
- version = "0.13.0"
793
- source = "registry+https://github.com/rust-lang/crates.io-index"
794
- checksum = "490bd48eb68fffcfed519b4edbfd82c69cbe741d175b84f0e0cbe8c57cbe0bdd"
795
- dependencies = [
796
- "bytemuck",
797
- ]
798
-
799
  [[package]]
800
  name = "either"
801
  version = "1.15.0"
@@ -817,18 +664,6 @@ dependencies = [
817
  "cfg-if",
818
  ]
819
 
820
- [[package]]
821
- name = "enum-as-inner"
822
- version = "0.6.1"
823
- source = "registry+https://github.com/rust-lang/crates.io-index"
824
- checksum = "a1e6a265c649f3f5979b601d26f1d05ada116434c87741c9493cb56218f76cbc"
825
- dependencies = [
826
- "heck",
827
- "proc-macro2",
828
- "quote",
829
- "syn",
830
- ]
831
-
832
  [[package]]
833
  name = "equivalent"
834
  version = "1.0.2"
@@ -854,23 +689,18 @@ dependencies = [
854
  "cc",
855
  ]
856
 
857
- [[package]]
858
- name = "fancy-regex"
859
- version = "0.13.0"
860
- source = "registry+https://github.com/rust-lang/crates.io-index"
861
- checksum = "531e46835a22af56d1e3b66f04844bed63158bc094a628bec1d321d9b4c44bf2"
862
- dependencies = [
863
- "bit-set",
864
- "regex-automata 0.4.9",
865
- "regex-syntax 0.8.5",
866
- ]
867
-
868
  [[package]]
869
  name = "fastrand"
870
  version = "2.3.0"
871
  source = "registry+https://github.com/rust-lang/crates.io-index"
872
  checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be"
873
 
 
 
 
 
 
 
874
  [[package]]
875
  name = "flate2"
876
  version = "1.1.2"
@@ -1001,243 +831,6 @@ dependencies = [
1001
  "slab",
1002
  ]
1003
 
1004
- [[package]]
1005
- name = "gemm"
1006
- version = "0.17.1"
1007
- source = "registry+https://github.com/rust-lang/crates.io-index"
1008
- checksum = "6ab24cc62135b40090e31a76a9b2766a501979f3070fa27f689c27ec04377d32"
1009
- dependencies = [
1010
- "dyn-stack 0.10.0",
1011
- "gemm-c32 0.17.1",
1012
- "gemm-c64 0.17.1",
1013
- "gemm-common 0.17.1",
1014
- "gemm-f16 0.17.1",
1015
- "gemm-f32 0.17.1",
1016
- "gemm-f64 0.17.1",
1017
- "num-complex",
1018
- "num-traits",
1019
- "paste",
1020
- "raw-cpuid 10.7.0",
1021
- "seq-macro",
1022
- ]
1023
-
1024
- [[package]]
1025
- name = "gemm"
1026
- version = "0.18.2"
1027
- source = "registry+https://github.com/rust-lang/crates.io-index"
1028
- checksum = "ab96b703d31950f1aeddded248bc95543c9efc7ac9c4a21fda8703a83ee35451"
1029
- dependencies = [
1030
- "dyn-stack 0.13.0",
1031
- "gemm-c32 0.18.2",
1032
- "gemm-c64 0.18.2",
1033
- "gemm-common 0.18.2",
1034
- "gemm-f16 0.18.2",
1035
- "gemm-f32 0.18.2",
1036
- "gemm-f64 0.18.2",
1037
- "num-complex",
1038
- "num-traits",
1039
- "paste",
1040
- "raw-cpuid 11.5.0",
1041
- "seq-macro",
1042
- ]
1043
-
1044
- [[package]]
1045
- name = "gemm-c32"
1046
- version = "0.17.1"
1047
- source = "registry+https://github.com/rust-lang/crates.io-index"
1048
- checksum = "b9c030d0b983d1e34a546b86e08f600c11696fde16199f971cd46c12e67512c0"
1049
- dependencies = [
1050
- "dyn-stack 0.10.0",
1051
- "gemm-common 0.17.1",
1052
- "num-complex",
1053
- "num-traits",
1054
- "paste",
1055
- "raw-cpuid 10.7.0",
1056
- "seq-macro",
1057
- ]
1058
-
1059
- [[package]]
1060
- name = "gemm-c32"
1061
- version = "0.18.2"
1062
- source = "registry+https://github.com/rust-lang/crates.io-index"
1063
- checksum = "f6db9fd9f40421d00eea9dd0770045a5603b8d684654816637732463f4073847"
1064
- dependencies = [
1065
- "dyn-stack 0.13.0",
1066
- "gemm-common 0.18.2",
1067
- "num-complex",
1068
- "num-traits",
1069
- "paste",
1070
- "raw-cpuid 11.5.0",
1071
- "seq-macro",
1072
- ]
1073
-
1074
- [[package]]
1075
- name = "gemm-c64"
1076
- version = "0.17.1"
1077
- source = "registry+https://github.com/rust-lang/crates.io-index"
1078
- checksum = "fbb5f2e79fefb9693d18e1066a557b4546cd334b226beadc68b11a8f9431852a"
1079
- dependencies = [
1080
- "dyn-stack 0.10.0",
1081
- "gemm-common 0.17.1",
1082
- "num-complex",
1083
- "num-traits",
1084
- "paste",
1085
- "raw-cpuid 10.7.0",
1086
- "seq-macro",
1087
- ]
1088
-
1089
- [[package]]
1090
- name = "gemm-c64"
1091
- version = "0.18.2"
1092
- source = "registry+https://github.com/rust-lang/crates.io-index"
1093
- checksum = "dfcad8a3d35a43758330b635d02edad980c1e143dc2f21e6fd25f9e4eada8edf"
1094
- dependencies = [
1095
- "dyn-stack 0.13.0",
1096
- "gemm-common 0.18.2",
1097
- "num-complex",
1098
- "num-traits",
1099
- "paste",
1100
- "raw-cpuid 11.5.0",
1101
- "seq-macro",
1102
- ]
1103
-
1104
- [[package]]
1105
- name = "gemm-common"
1106
- version = "0.17.1"
1107
- source = "registry+https://github.com/rust-lang/crates.io-index"
1108
- checksum = "a2e7ea062c987abcd8db95db917b4ffb4ecdfd0668471d8dc54734fdff2354e8"
1109
- dependencies = [
1110
- "bytemuck",
1111
- "dyn-stack 0.10.0",
1112
- "half",
1113
- "num-complex",
1114
- "num-traits",
1115
- "once_cell",
1116
- "paste",
1117
- "pulp 0.18.22",
1118
- "raw-cpuid 10.7.0",
1119
- "rayon",
1120
- "seq-macro",
1121
- "sysctl 0.5.5",
1122
- ]
1123
-
1124
- [[package]]
1125
- name = "gemm-common"
1126
- version = "0.18.2"
1127
- source = "registry+https://github.com/rust-lang/crates.io-index"
1128
- checksum = "a352d4a69cbe938b9e2a9cb7a3a63b7e72f9349174a2752a558a8a563510d0f3"
1129
- dependencies = [
1130
- "bytemuck",
1131
- "dyn-stack 0.13.0",
1132
- "half",
1133
- "libm",
1134
- "num-complex",
1135
- "num-traits",
1136
- "once_cell",
1137
- "paste",
1138
- "pulp 0.21.5",
1139
- "raw-cpuid 11.5.0",
1140
- "rayon",
1141
- "seq-macro",
1142
- "sysctl 0.6.0",
1143
- ]
1144
-
1145
- [[package]]
1146
- name = "gemm-f16"
1147
- version = "0.17.1"
1148
- source = "registry+https://github.com/rust-lang/crates.io-index"
1149
- checksum = "7ca4c06b9b11952071d317604acb332e924e817bd891bec8dfb494168c7cedd4"
1150
- dependencies = [
1151
- "dyn-stack 0.10.0",
1152
- "gemm-common 0.17.1",
1153
- "gemm-f32 0.17.1",
1154
- "half",
1155
- "num-complex",
1156
- "num-traits",
1157
- "paste",
1158
- "raw-cpuid 10.7.0",
1159
- "rayon",
1160
- "seq-macro",
1161
- ]
1162
-
1163
- [[package]]
1164
- name = "gemm-f16"
1165
- version = "0.18.2"
1166
- source = "registry+https://github.com/rust-lang/crates.io-index"
1167
- checksum = "cff95ae3259432f3c3410eaa919033cd03791d81cebd18018393dc147952e109"
1168
- dependencies = [
1169
- "dyn-stack 0.13.0",
1170
- "gemm-common 0.18.2",
1171
- "gemm-f32 0.18.2",
1172
- "half",
1173
- "num-complex",
1174
- "num-traits",
1175
- "paste",
1176
- "raw-cpuid 11.5.0",
1177
- "rayon",
1178
- "seq-macro",
1179
- ]
1180
-
1181
- [[package]]
1182
- name = "gemm-f32"
1183
- version = "0.17.1"
1184
- source = "registry+https://github.com/rust-lang/crates.io-index"
1185
- checksum = "e9a69f51aaefbd9cf12d18faf273d3e982d9d711f60775645ed5c8047b4ae113"
1186
- dependencies = [
1187
- "dyn-stack 0.10.0",
1188
- "gemm-common 0.17.1",
1189
- "num-complex",
1190
- "num-traits",
1191
- "paste",
1192
- "raw-cpuid 10.7.0",
1193
- "seq-macro",
1194
- ]
1195
-
1196
- [[package]]
1197
- name = "gemm-f32"
1198
- version = "0.18.2"
1199
- source = "registry+https://github.com/rust-lang/crates.io-index"
1200
- checksum = "bc8d3d4385393304f407392f754cd2dc4b315d05063f62cf09f47b58de276864"
1201
- dependencies = [
1202
- "dyn-stack 0.13.0",
1203
- "gemm-common 0.18.2",
1204
- "num-complex",
1205
- "num-traits",
1206
- "paste",
1207
- "raw-cpuid 11.5.0",
1208
- "seq-macro",
1209
- ]
1210
-
1211
- [[package]]
1212
- name = "gemm-f64"
1213
- version = "0.17.1"
1214
- source = "registry+https://github.com/rust-lang/crates.io-index"
1215
- checksum = "aa397a48544fadf0b81ec8741e5c0fba0043008113f71f2034def1935645d2b0"
1216
- dependencies = [
1217
- "dyn-stack 0.10.0",
1218
- "gemm-common 0.17.1",
1219
- "num-complex",
1220
- "num-traits",
1221
- "paste",
1222
- "raw-cpuid 10.7.0",
1223
- "seq-macro",
1224
- ]
1225
-
1226
- [[package]]
1227
- name = "gemm-f64"
1228
- version = "0.18.2"
1229
- source = "registry+https://github.com/rust-lang/crates.io-index"
1230
- checksum = "35b2a4f76ce4b8b16eadc11ccf2e083252d8237c1b589558a49b0183545015bd"
1231
- dependencies = [
1232
- "dyn-stack 0.13.0",
1233
- "gemm-common 0.18.2",
1234
- "num-complex",
1235
- "num-traits",
1236
- "paste",
1237
- "raw-cpuid 11.5.0",
1238
- "seq-macro",
1239
- ]
1240
-
1241
  [[package]]
1242
  name = "generic-array"
1243
  version = "0.14.7"
@@ -1281,12 +874,6 @@ version = "0.31.1"
1281
  source = "registry+https://github.com/rust-lang/crates.io-index"
1282
  checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f"
1283
 
1284
- [[package]]
1285
- name = "glob"
1286
- version = "0.3.3"
1287
- source = "registry+https://github.com/rust-lang/crates.io-index"
1288
- checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280"
1289
-
1290
  [[package]]
1291
  name = "h2"
1292
  version = "0.4.12"
@@ -1306,20 +893,6 @@ dependencies = [
1306
  "tracing",
1307
  ]
1308
 
1309
- [[package]]
1310
- name = "half"
1311
- version = "2.6.0"
1312
- source = "registry+https://github.com/rust-lang/crates.io-index"
1313
- checksum = "459196ed295495a68f7d7fe1d84f6c4b7ff0e21fe3017b2f283c6fac3ad803c9"
1314
- dependencies = [
1315
- "bytemuck",
1316
- "cfg-if",
1317
- "crunchy",
1318
- "num-traits",
1319
- "rand 0.9.2",
1320
- "rand_distr",
1321
- ]
1322
-
1323
  [[package]]
1324
  name = "hashbrown"
1325
  version = "0.12.3"
@@ -1517,7 +1090,7 @@ checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47"
1517
  dependencies = [
1518
  "displaydoc",
1519
  "potential_utf",
1520
- "yoke 0.8.0",
1521
  "zerofrom",
1522
  "zerovec",
1523
  ]
@@ -1589,7 +1162,7 @@ dependencies = [
1589
  "stable_deref_trait",
1590
  "tinystr",
1591
  "writeable",
1592
- "yoke 0.8.0",
1593
  "zerofrom",
1594
  "zerotrie",
1595
  "zerovec",
@@ -1662,7 +1235,7 @@ version = "0.7.9"
1662
  source = "registry+https://github.com/rust-lang/crates.io-index"
1663
  checksum = "d93587f37623a1a17d94ef2bc9ada592f5465fe7732084ab7beefabe5c77c0c4"
1664
  dependencies = [
1665
- "bitflags 2.9.2",
1666
  "cfg-if",
1667
  "libc",
1668
  ]
@@ -1720,29 +1293,13 @@ version = "0.2.175"
1720
  source = "registry+https://github.com/rust-lang/crates.io-index"
1721
  checksum = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543"
1722
 
1723
- [[package]]
1724
- name = "libloading"
1725
- version = "0.8.8"
1726
- source = "registry+https://github.com/rust-lang/crates.io-index"
1727
- checksum = "07033963ba89ebaf1584d767badaa2e8fcec21aedea6b8c0346d487d49c28667"
1728
- dependencies = [
1729
- "cfg-if",
1730
- "windows-targets 0.53.3",
1731
- ]
1732
-
1733
- [[package]]
1734
- name = "libm"
1735
- version = "0.2.15"
1736
- source = "registry+https://github.com/rust-lang/crates.io-index"
1737
- checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de"
1738
-
1739
  [[package]]
1740
  name = "libredox"
1741
  version = "0.1.9"
1742
  source = "registry+https://github.com/rust-lang/crates.io-index"
1743
  checksum = "391290121bad3d37fbddad76d8f5d1c1c314cfc646d143d7e07a3086ddff0ce3"
1744
  dependencies = [
1745
- "bitflags 2.9.2",
1746
  "libc",
1747
  ]
1748
 
@@ -1822,16 +1379,6 @@ version = "2.7.5"
1822
  source = "registry+https://github.com/rust-lang/crates.io-index"
1823
  checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0"
1824
 
1825
- [[package]]
1826
- name = "memmap2"
1827
- version = "0.9.7"
1828
- source = "registry+https://github.com/rust-lang/crates.io-index"
1829
- checksum = "483758ad303d734cec05e5c12b41d7e93e6a6390c5e9dae6bdeb7c1259012d28"
1830
- dependencies = [
1831
- "libc",
1832
- "stable_deref_trait",
1833
- ]
1834
-
1835
  [[package]]
1836
  name = "mime"
1837
  version = "0.3.17"
@@ -1895,6 +1442,12 @@ dependencies = [
1895
  "syn",
1896
  ]
1897
 
 
 
 
 
 
 
1898
  [[package]]
1899
  name = "native-tls"
1900
  version = "0.2.14"
@@ -1932,81 +1485,6 @@ dependencies = [
1932
  "winapi",
1933
  ]
1934
 
1935
- [[package]]
1936
- name = "num"
1937
- version = "0.4.3"
1938
- source = "registry+https://github.com/rust-lang/crates.io-index"
1939
- checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23"
1940
- dependencies = [
1941
- "num-bigint",
1942
- "num-complex",
1943
- "num-integer",
1944
- "num-iter",
1945
- "num-rational",
1946
- "num-traits",
1947
- ]
1948
-
1949
- [[package]]
1950
- name = "num-bigint"
1951
- version = "0.4.6"
1952
- source = "registry+https://github.com/rust-lang/crates.io-index"
1953
- checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9"
1954
- dependencies = [
1955
- "num-integer",
1956
- "num-traits",
1957
- ]
1958
-
1959
- [[package]]
1960
- name = "num-complex"
1961
- version = "0.4.6"
1962
- source = "registry+https://github.com/rust-lang/crates.io-index"
1963
- checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495"
1964
- dependencies = [
1965
- "bytemuck",
1966
- "num-traits",
1967
- ]
1968
-
1969
- [[package]]
1970
- name = "num-integer"
1971
- version = "0.1.46"
1972
- source = "registry+https://github.com/rust-lang/crates.io-index"
1973
- checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f"
1974
- dependencies = [
1975
- "num-traits",
1976
- ]
1977
-
1978
- [[package]]
1979
- name = "num-iter"
1980
- version = "0.1.45"
1981
- source = "registry+https://github.com/rust-lang/crates.io-index"
1982
- checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf"
1983
- dependencies = [
1984
- "autocfg",
1985
- "num-integer",
1986
- "num-traits",
1987
- ]
1988
-
1989
- [[package]]
1990
- name = "num-rational"
1991
- version = "0.4.2"
1992
- source = "registry+https://github.com/rust-lang/crates.io-index"
1993
- checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824"
1994
- dependencies = [
1995
- "num-bigint",
1996
- "num-integer",
1997
- "num-traits",
1998
- ]
1999
-
2000
- [[package]]
2001
- name = "num-traits"
2002
- version = "0.2.19"
2003
- source = "registry+https://github.com/rust-lang/crates.io-index"
2004
- checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
2005
- dependencies = [
2006
- "autocfg",
2007
- "libm",
2008
- ]
2009
-
2010
  [[package]]
2011
  name = "num_cpus"
2012
  version = "1.17.0"
@@ -2017,28 +1495,6 @@ dependencies = [
2017
  "libc",
2018
  ]
2019
 
2020
- [[package]]
2021
- name = "num_enum"
2022
- version = "0.7.4"
2023
- source = "registry+https://github.com/rust-lang/crates.io-index"
2024
- checksum = "a973b4e44ce6cad84ce69d797acf9a044532e4184c4f267913d1b546a0727b7a"
2025
- dependencies = [
2026
- "num_enum_derive",
2027
- "rustversion",
2028
- ]
2029
-
2030
- [[package]]
2031
- name = "num_enum_derive"
2032
- version = "0.7.4"
2033
- source = "registry+https://github.com/rust-lang/crates.io-index"
2034
- checksum = "77e878c846a8abae00dd069496dbe8751b16ac1c3d6bd2a7283a938e8228f90d"
2035
- dependencies = [
2036
- "proc-macro-crate",
2037
- "proc-macro2",
2038
- "quote",
2039
- "syn",
2040
- ]
2041
-
2042
  [[package]]
2043
  name = "number_prefix"
2044
  version = "0.4.0"
@@ -2066,7 +1522,7 @@ version = "6.5.1"
2066
  source = "registry+https://github.com/rust-lang/crates.io-index"
2067
  checksum = "336b9c63443aceef14bea841b899035ae3abe89b7c486aaf4c5bd8aafedac3f0"
2068
  dependencies = [
2069
- "bitflags 2.9.2",
2070
  "libc",
2071
  "once_cell",
2072
  "onig_sys",
@@ -2088,7 +1544,7 @@ version = "0.10.73"
2088
  source = "registry+https://github.com/rust-lang/crates.io-index"
2089
  checksum = "8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8"
2090
  dependencies = [
2091
- "bitflags 2.9.2",
2092
  "cfg-if",
2093
  "foreign-types",
2094
  "libc",
@@ -2150,6 +1606,16 @@ version = "2.3.1"
2150
  source = "registry+https://github.com/rust-lang/crates.io-index"
2151
  checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
2152
 
 
 
 
 
 
 
 
 
 
 
2153
  [[package]]
2154
  name = "pin-project"
2155
  version = "1.1.10"
@@ -2223,12 +1689,13 @@ dependencies = [
2223
  ]
2224
 
2225
  [[package]]
2226
- name = "proc-macro-crate"
2227
- version = "3.3.0"
2228
  source = "registry+https://github.com/rust-lang/crates.io-index"
2229
- checksum = "edce586971a4dfaa28950c6f18ed55e0406c1ab88bbce2c6f6293a7aaba73d35"
2230
  dependencies = [
2231
- "toml_edit",
 
2232
  ]
2233
 
2234
  [[package]]
@@ -2247,7 +1714,39 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
2247
  checksum = "2796faa41db3ec313a31f7624d9286acf277b52de526150b7e69f3debf891ee5"
2248
  dependencies = [
2249
  "bytes",
2250
- "prost-derive",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2251
  ]
2252
 
2253
  [[package]]
@@ -2263,39 +1762,55 @@ dependencies = [
2263
  "syn",
2264
  ]
2265
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2266
  [[package]]
2267
  name = "prost-types"
2268
  version = "0.13.5"
2269
  source = "registry+https://github.com/rust-lang/crates.io-index"
2270
  checksum = "52c2c1bf36ddb1a1c396b3601a3cec27c2462e45f07c386894ec3ccf5332bd16"
2271
  dependencies = [
2272
- "prost",
2273
  ]
2274
 
2275
  [[package]]
2276
- name = "pulp"
2277
- version = "0.18.22"
2278
  source = "registry+https://github.com/rust-lang/crates.io-index"
2279
- checksum = "a0a01a0dc67cf4558d279f0c25b0962bd08fc6dec0137699eae304103e882fe6"
2280
  dependencies = [
2281
- "bytemuck",
2282
- "libm",
2283
- "num-complex",
2284
- "reborrow",
2285
  ]
2286
 
2287
  [[package]]
2288
- name = "pulp"
2289
- version = "0.21.5"
2290
  source = "registry+https://github.com/rust-lang/crates.io-index"
2291
- checksum = "96b86df24f0a7ddd5e4b95c94fc9ed8a98f1ca94d3b01bdce2824097e7835907"
2292
  dependencies = [
2293
- "bytemuck",
2294
- "cfg-if",
2295
- "libm",
2296
- "num-complex",
2297
- "reborrow",
2298
- "version_check",
 
 
 
 
 
 
2299
  ]
2300
 
2301
  [[package]]
@@ -2308,15 +1823,15 @@ dependencies = [
2308
  "derive_builder",
2309
  "futures",
2310
  "futures-util",
2311
- "prost",
2312
- "prost-types",
2313
  "reqwest",
2314
  "semver",
2315
  "serde",
2316
  "serde_json",
2317
  "thiserror 1.0.69",
2318
  "tokio",
2319
- "tonic",
2320
  ]
2321
 
2322
  [[package]]
@@ -2448,34 +1963,6 @@ dependencies = [
2448
  "getrandom 0.3.3",
2449
  ]
2450
 
2451
- [[package]]
2452
- name = "rand_distr"
2453
- version = "0.5.1"
2454
- source = "registry+https://github.com/rust-lang/crates.io-index"
2455
- checksum = "6a8615d50dcf34fa31f7ab52692afec947c4dd0ab803cc87cb3b0b4570ff7463"
2456
- dependencies = [
2457
- "num-traits",
2458
- "rand 0.9.2",
2459
- ]
2460
-
2461
- [[package]]
2462
- name = "raw-cpuid"
2463
- version = "10.7.0"
2464
- source = "registry+https://github.com/rust-lang/crates.io-index"
2465
- checksum = "6c297679cb867470fa8c9f67dbba74a78d78e3e98d7cf2b08d6d71540f797332"
2466
- dependencies = [
2467
- "bitflags 1.3.2",
2468
- ]
2469
-
2470
- [[package]]
2471
- name = "raw-cpuid"
2472
- version = "11.5.0"
2473
- source = "registry+https://github.com/rust-lang/crates.io-index"
2474
- checksum = "c6df7ab838ed27997ba19a4664507e6f82b41fe6e20be42929332156e5e85146"
2475
- dependencies = [
2476
- "bitflags 2.9.2",
2477
- ]
2478
-
2479
  [[package]]
2480
  name = "rayon"
2481
  version = "1.11.0"
@@ -2507,12 +1994,6 @@ dependencies = [
2507
  "crossbeam-utils",
2508
  ]
2509
 
2510
- [[package]]
2511
- name = "reborrow"
2512
- version = "0.5.5"
2513
- source = "registry+https://github.com/rust-lang/crates.io-index"
2514
- checksum = "03251193000f4bd3b042892be858ee50e8b3719f2b08e5833ac4353724632430"
2515
-
2516
  [[package]]
2517
  name = "redox_users"
2518
  version = "0.5.2"
@@ -2681,7 +2162,7 @@ version = "1.0.8"
2681
  source = "registry+https://github.com/rust-lang/crates.io-index"
2682
  checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8"
2683
  dependencies = [
2684
- "bitflags 2.9.2",
2685
  "errno",
2686
  "libc",
2687
  "linux-raw-sys",
@@ -2757,16 +2238,6 @@ version = "1.0.20"
2757
  source = "registry+https://github.com/rust-lang/crates.io-index"
2758
  checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f"
2759
 
2760
- [[package]]
2761
- name = "safetensors"
2762
- version = "0.4.5"
2763
- source = "registry+https://github.com/rust-lang/crates.io-index"
2764
- checksum = "44560c11236a6130a46ce36c836a62936dc81ebf8c36a37947423571be0e55b6"
2765
- dependencies = [
2766
- "serde",
2767
- "serde_json",
2768
- ]
2769
-
2770
  [[package]]
2771
  name = "same-file"
2772
  version = "1.0.6"
@@ -2791,7 +2262,7 @@ version = "2.11.1"
2791
  source = "registry+https://github.com/rust-lang/crates.io-index"
2792
  checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02"
2793
  dependencies = [
2794
- "bitflags 2.9.2",
2795
  "core-foundation 0.9.4",
2796
  "core-foundation-sys",
2797
  "libc",
@@ -2804,7 +2275,7 @@ version = "3.3.0"
2804
  source = "registry+https://github.com/rust-lang/crates.io-index"
2805
  checksum = "80fb1d92c5028aa318b4b8bd7302a5bfcf48be96a37fc6fc790f806b0004ee0c"
2806
  dependencies = [
2807
- "bitflags 2.9.2",
2808
  "core-foundation 0.10.1",
2809
  "core-foundation-sys",
2810
  "libc",
@@ -2827,12 +2298,6 @@ version = "1.0.26"
2827
  source = "registry+https://github.com/rust-lang/crates.io-index"
2828
  checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0"
2829
 
2830
- [[package]]
2831
- name = "seq-macro"
2832
- version = "0.3.6"
2833
- source = "registry+https://github.com/rust-lang/crates.io-index"
2834
- checksum = "1bc711410fbe7399f390ca1c3b60ad0f53f80e95c5eb935e52268a0e2cd49acc"
2835
-
2836
  [[package]]
2837
  name = "serde"
2838
  version = "1.0.219"
@@ -2875,15 +2340,6 @@ dependencies = [
2875
  "serde",
2876
  ]
2877
 
2878
- [[package]]
2879
- name = "serde_plain"
2880
- version = "1.0.2"
2881
- source = "registry+https://github.com/rust-lang/crates.io-index"
2882
- checksum = "9ce1fc6db65a611022b23a0dec6975d63fb80a302cb3388835ff02c097258d50"
2883
- dependencies = [
2884
- "serde",
2885
- ]
2886
-
2887
  [[package]]
2888
  name = "serde_urlencoded"
2889
  version = "0.7.1"
@@ -3038,41 +2494,13 @@ dependencies = [
3038
  "syn",
3039
  ]
3040
 
3041
- [[package]]
3042
- name = "sysctl"
3043
- version = "0.5.5"
3044
- source = "registry+https://github.com/rust-lang/crates.io-index"
3045
- checksum = "ec7dddc5f0fee506baf8b9fdb989e242f17e4b11c61dfbb0635b705217199eea"
3046
- dependencies = [
3047
- "bitflags 2.9.2",
3048
- "byteorder",
3049
- "enum-as-inner",
3050
- "libc",
3051
- "thiserror 1.0.69",
3052
- "walkdir",
3053
- ]
3054
-
3055
- [[package]]
3056
- name = "sysctl"
3057
- version = "0.6.0"
3058
- source = "registry+https://github.com/rust-lang/crates.io-index"
3059
- checksum = "01198a2debb237c62b6826ec7081082d951f46dbb64b0e8c7649a452230d1dfc"
3060
- dependencies = [
3061
- "bitflags 2.9.2",
3062
- "byteorder",
3063
- "enum-as-inner",
3064
- "libc",
3065
- "thiserror 1.0.69",
3066
- "walkdir",
3067
- ]
3068
-
3069
  [[package]]
3070
  name = "system-configuration"
3071
  version = "0.6.1"
3072
  source = "registry+https://github.com/rust-lang/crates.io-index"
3073
  checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b"
3074
  dependencies = [
3075
- "bitflags 2.9.2",
3076
  "core-foundation 0.9.4",
3077
  "system-configuration-sys",
3078
  ]
@@ -3281,23 +2709,6 @@ dependencies = [
3281
  "tokio",
3282
  ]
3283
 
3284
- [[package]]
3285
- name = "toml_datetime"
3286
- version = "0.6.11"
3287
- source = "registry+https://github.com/rust-lang/crates.io-index"
3288
- checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c"
3289
-
3290
- [[package]]
3291
- name = "toml_edit"
3292
- version = "0.22.27"
3293
- source = "registry+https://github.com/rust-lang/crates.io-index"
3294
- checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a"
3295
- dependencies = [
3296
- "indexmap 2.10.0",
3297
- "toml_datetime",
3298
- "winnow",
3299
- ]
3300
-
3301
  [[package]]
3302
  name = "tonic"
3303
  version = "0.12.3"
@@ -3319,7 +2730,7 @@ dependencies = [
3319
  "hyper-util",
3320
  "percent-encoding",
3321
  "pin-project",
3322
- "prost",
3323
  "rustls-native-certs",
3324
  "rustls-pemfile",
3325
  "socket2 0.5.10",
@@ -3332,6 +2743,74 @@ dependencies = [
3332
  "tracing",
3333
  ]
3334
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3335
  [[package]]
3336
  name = "tower"
3337
  version = "0.4.13"
@@ -3360,9 +2839,12 @@ checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9"
3360
  dependencies = [
3361
  "futures-core",
3362
  "futures-util",
 
3363
  "pin-project-lite",
 
3364
  "sync_wrapper",
3365
  "tokio",
 
3366
  "tower-layer",
3367
  "tower-service",
3368
  "tracing",
@@ -3374,7 +2856,7 @@ version = "0.6.6"
3374
  source = "registry+https://github.com/rust-lang/crates.io-index"
3375
  checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2"
3376
  dependencies = [
3377
- "bitflags 2.9.2",
3378
  "bytes",
3379
  "futures-util",
3380
  "http",
@@ -3473,40 +2955,6 @@ version = "1.18.0"
3473
  source = "registry+https://github.com/rust-lang/crates.io-index"
3474
  checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f"
3475
 
3476
- [[package]]
3477
- name = "ug"
3478
- version = "0.4.0"
3479
- source = "registry+https://github.com/rust-lang/crates.io-index"
3480
- checksum = "90b70b37e9074642bc5f60bb23247fd072a84314ca9e71cdf8527593406a0dd3"
3481
- dependencies = [
3482
- "gemm 0.18.2",
3483
- "half",
3484
- "libloading",
3485
- "memmap2",
3486
- "num",
3487
- "num-traits",
3488
- "num_cpus",
3489
- "rayon",
3490
- "safetensors",
3491
- "serde",
3492
- "thiserror 1.0.69",
3493
- "tracing",
3494
- "yoke 0.7.5",
3495
- ]
3496
-
3497
- [[package]]
3498
- name = "ug-cuda"
3499
- version = "0.4.0"
3500
- source = "registry+https://github.com/rust-lang/crates.io-index"
3501
- checksum = "14053653d0b7fa7b21015aa9a62edc8af2f60aa6f9c54e66386ecce55f22ed29"
3502
- dependencies = [
3503
- "cudarc",
3504
- "half",
3505
- "serde",
3506
- "thiserror 1.0.69",
3507
- "ug",
3508
- ]
3509
-
3510
  [[package]]
3511
  name = "unicase"
3512
  version = "2.8.1"
@@ -3640,7 +3088,7 @@ dependencies = [
3640
  "serde_json",
3641
  "url",
3642
  "utoipa",
3643
- "zip 3.0.0",
3644
  ]
3645
 
3646
  [[package]]
@@ -4039,22 +3487,13 @@ version = "0.53.0"
4039
  source = "registry+https://github.com/rust-lang/crates.io-index"
4040
  checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486"
4041
 
4042
- [[package]]
4043
- name = "winnow"
4044
- version = "0.7.12"
4045
- source = "registry+https://github.com/rust-lang/crates.io-index"
4046
- checksum = "f3edebf492c8125044983378ecb5766203ad3b4c2f7a922bd7dd207f6d443e95"
4047
- dependencies = [
4048
- "memchr",
4049
- ]
4050
-
4051
  [[package]]
4052
  name = "wit-bindgen-rt"
4053
  version = "0.39.0"
4054
  source = "registry+https://github.com/rust-lang/crates.io-index"
4055
  checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1"
4056
  dependencies = [
4057
- "bitflags 2.9.2",
4058
  ]
4059
 
4060
  [[package]]
@@ -4063,18 +3502,6 @@ version = "0.6.1"
4063
  source = "registry+https://github.com/rust-lang/crates.io-index"
4064
  checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb"
4065
 
4066
- [[package]]
4067
- name = "yoke"
4068
- version = "0.7.5"
4069
- source = "registry+https://github.com/rust-lang/crates.io-index"
4070
- checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40"
4071
- dependencies = [
4072
- "serde",
4073
- "stable_deref_trait",
4074
- "yoke-derive 0.7.5",
4075
- "zerofrom",
4076
- ]
4077
-
4078
  [[package]]
4079
  name = "yoke"
4080
  version = "0.8.0"
@@ -4083,22 +3510,10 @@ checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc"
4083
  dependencies = [
4084
  "serde",
4085
  "stable_deref_trait",
4086
- "yoke-derive 0.8.0",
4087
  "zerofrom",
4088
  ]
4089
 
4090
- [[package]]
4091
- name = "yoke-derive"
4092
- version = "0.7.5"
4093
- source = "registry+https://github.com/rust-lang/crates.io-index"
4094
- checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154"
4095
- dependencies = [
4096
- "proc-macro2",
4097
- "quote",
4098
- "syn",
4099
- "synstructure",
4100
- ]
4101
-
4102
  [[package]]
4103
  name = "yoke-derive"
4104
  version = "0.8.0"
@@ -4165,7 +3580,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
4165
  checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595"
4166
  dependencies = [
4167
  "displaydoc",
4168
- "yoke 0.8.0",
4169
  "zerofrom",
4170
  ]
4171
 
@@ -4175,7 +3590,7 @@ version = "0.11.4"
4175
  source = "registry+https://github.com/rust-lang/crates.io-index"
4176
  checksum = "e7aa2bd55086f1ab526693ecbe444205da57e25f4489879da80635a46d90e73b"
4177
  dependencies = [
4178
- "yoke 0.8.0",
4179
  "zerofrom",
4180
  "zerovec-derive",
4181
  ]
@@ -4191,21 +3606,6 @@ dependencies = [
4191
  "syn",
4192
  ]
4193
 
4194
- [[package]]
4195
- name = "zip"
4196
- version = "1.1.4"
4197
- source = "registry+https://github.com/rust-lang/crates.io-index"
4198
- checksum = "9cc23c04387f4da0374be4533ad1208cbb091d5c11d070dfef13676ad6497164"
4199
- dependencies = [
4200
- "arbitrary",
4201
- "crc32fast",
4202
- "crossbeam-utils",
4203
- "displaydoc",
4204
- "indexmap 2.10.0",
4205
- "num_enum",
4206
- "thiserror 1.0.69",
4207
- ]
4208
-
4209
  [[package]]
4210
  name = "zip"
4211
  version = "3.0.0"
 
46
  dependencies = [
47
  "anyhow",
48
  "axum 0.8.4",
 
 
49
  "deadpool-diesel",
50
  "diesel",
51
  "futures",
52
  "hf-hub",
53
+ "prost 0.14.1",
54
  "qdrant-client",
55
  "rayon",
56
  "serde",
57
  "tokenizers",
58
  "tokio",
59
+ "tonic 0.14.1",
60
+ "tonic-prost",
61
+ "tonic-prost-build",
62
  "tower 0.5.2",
63
  "tower-http",
64
  "tracing",
 
256
  source = "registry+https://github.com/rust-lang/crates.io-index"
257
  checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
258
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
259
  [[package]]
260
  name = "bitflags"
261
  version = "2.9.2"
 
277
  source = "registry+https://github.com/rust-lang/crates.io-index"
278
  checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43"
279
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
280
  [[package]]
281
  name = "byteorder"
282
  version = "1.5.0"
 
289
  source = "registry+https://github.com/rust-lang/crates.io-index"
290
  checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a"
291
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
292
  [[package]]
293
  name = "castaway"
294
  version = "0.2.4"
 
416
  source = "registry+https://github.com/rust-lang/crates.io-index"
417
  checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28"
418
 
 
 
 
 
 
 
419
  [[package]]
420
  name = "crypto-common"
421
  version = "0.1.6"
 
426
  "typenum",
427
  ]
428
 
 
 
 
 
 
 
 
 
 
 
429
  [[package]]
430
  name = "darling"
431
  version = "0.20.11"
 
558
  source = "registry+https://github.com/rust-lang/crates.io-index"
559
  checksum = "229850a212cd9b84d4f0290ad9d294afc0ae70fccaa8949dbe8b43ffafa1e20c"
560
  dependencies = [
561
+ "bitflags",
562
  "byteorder",
563
  "diesel_derives",
564
  "itoa",
 
643
  "syn",
644
  ]
645
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
646
  [[package]]
647
  name = "either"
648
  version = "1.15.0"
 
664
  "cfg-if",
665
  ]
666
 
 
 
 
 
 
 
 
 
 
 
 
 
667
  [[package]]
668
  name = "equivalent"
669
  version = "1.0.2"
 
689
  "cc",
690
  ]
691
 
 
 
 
 
 
 
 
 
 
 
 
692
  [[package]]
693
  name = "fastrand"
694
  version = "2.3.0"
695
  source = "registry+https://github.com/rust-lang/crates.io-index"
696
  checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be"
697
 
698
+ [[package]]
699
+ name = "fixedbitset"
700
+ version = "0.5.7"
701
+ source = "registry+https://github.com/rust-lang/crates.io-index"
702
+ checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99"
703
+
704
  [[package]]
705
  name = "flate2"
706
  version = "1.1.2"
 
831
  "slab",
832
  ]
833
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
834
  [[package]]
835
  name = "generic-array"
836
  version = "0.14.7"
 
874
  source = "registry+https://github.com/rust-lang/crates.io-index"
875
  checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f"
876
 
 
 
 
 
 
 
877
  [[package]]
878
  name = "h2"
879
  version = "0.4.12"
 
893
  "tracing",
894
  ]
895
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
896
  [[package]]
897
  name = "hashbrown"
898
  version = "0.12.3"
 
1090
  dependencies = [
1091
  "displaydoc",
1092
  "potential_utf",
1093
+ "yoke",
1094
  "zerofrom",
1095
  "zerovec",
1096
  ]
 
1162
  "stable_deref_trait",
1163
  "tinystr",
1164
  "writeable",
1165
+ "yoke",
1166
  "zerofrom",
1167
  "zerotrie",
1168
  "zerovec",
 
1235
  source = "registry+https://github.com/rust-lang/crates.io-index"
1236
  checksum = "d93587f37623a1a17d94ef2bc9ada592f5465fe7732084ab7beefabe5c77c0c4"
1237
  dependencies = [
1238
+ "bitflags",
1239
  "cfg-if",
1240
  "libc",
1241
  ]
 
1293
  source = "registry+https://github.com/rust-lang/crates.io-index"
1294
  checksum = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543"
1295
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1296
  [[package]]
1297
  name = "libredox"
1298
  version = "0.1.9"
1299
  source = "registry+https://github.com/rust-lang/crates.io-index"
1300
  checksum = "391290121bad3d37fbddad76d8f5d1c1c314cfc646d143d7e07a3086ddff0ce3"
1301
  dependencies = [
1302
+ "bitflags",
1303
  "libc",
1304
  ]
1305
 
 
1379
  source = "registry+https://github.com/rust-lang/crates.io-index"
1380
  checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0"
1381
 
 
 
 
 
 
 
 
 
 
 
1382
  [[package]]
1383
  name = "mime"
1384
  version = "0.3.17"
 
1442
  "syn",
1443
  ]
1444
 
1445
+ [[package]]
1446
+ name = "multimap"
1447
+ version = "0.10.1"
1448
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1449
+ checksum = "1d87ecb2933e8aeadb3e3a02b828fed80a7528047e68b4f424523a0981a3a084"
1450
+
1451
  [[package]]
1452
  name = "native-tls"
1453
  version = "0.2.14"
 
1485
  "winapi",
1486
  ]
1487
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1488
  [[package]]
1489
  name = "num_cpus"
1490
  version = "1.17.0"
 
1495
  "libc",
1496
  ]
1497
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1498
  [[package]]
1499
  name = "number_prefix"
1500
  version = "0.4.0"
 
1522
  source = "registry+https://github.com/rust-lang/crates.io-index"
1523
  checksum = "336b9c63443aceef14bea841b899035ae3abe89b7c486aaf4c5bd8aafedac3f0"
1524
  dependencies = [
1525
+ "bitflags",
1526
  "libc",
1527
  "once_cell",
1528
  "onig_sys",
 
1544
  source = "registry+https://github.com/rust-lang/crates.io-index"
1545
  checksum = "8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8"
1546
  dependencies = [
1547
+ "bitflags",
1548
  "cfg-if",
1549
  "foreign-types",
1550
  "libc",
 
1606
  source = "registry+https://github.com/rust-lang/crates.io-index"
1607
  checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
1608
 
1609
+ [[package]]
1610
+ name = "petgraph"
1611
+ version = "0.7.1"
1612
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1613
+ checksum = "3672b37090dbd86368a4145bc067582552b29c27377cad4e0a306c97f9bd7772"
1614
+ dependencies = [
1615
+ "fixedbitset",
1616
+ "indexmap 2.10.0",
1617
+ ]
1618
+
1619
  [[package]]
1620
  name = "pin-project"
1621
  version = "1.1.10"
 
1689
  ]
1690
 
1691
  [[package]]
1692
+ name = "prettyplease"
1693
+ version = "0.2.37"
1694
  source = "registry+https://github.com/rust-lang/crates.io-index"
1695
+ checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b"
1696
  dependencies = [
1697
+ "proc-macro2",
1698
+ "syn",
1699
  ]
1700
 
1701
  [[package]]
 
1714
  checksum = "2796faa41db3ec313a31f7624d9286acf277b52de526150b7e69f3debf891ee5"
1715
  dependencies = [
1716
  "bytes",
1717
+ "prost-derive 0.13.5",
1718
+ ]
1719
+
1720
+ [[package]]
1721
+ name = "prost"
1722
+ version = "0.14.1"
1723
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1724
+ checksum = "7231bd9b3d3d33c86b58adbac74b5ec0ad9f496b19d22801d773636feaa95f3d"
1725
+ dependencies = [
1726
+ "bytes",
1727
+ "prost-derive 0.14.1",
1728
+ ]
1729
+
1730
+ [[package]]
1731
+ name = "prost-build"
1732
+ version = "0.14.1"
1733
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1734
+ checksum = "ac6c3320f9abac597dcbc668774ef006702672474aad53c6d596b62e487b40b1"
1735
+ dependencies = [
1736
+ "heck",
1737
+ "itertools",
1738
+ "log",
1739
+ "multimap",
1740
+ "once_cell",
1741
+ "petgraph",
1742
+ "prettyplease",
1743
+ "prost 0.14.1",
1744
+ "prost-types 0.14.1",
1745
+ "pulldown-cmark",
1746
+ "pulldown-cmark-to-cmark",
1747
+ "regex",
1748
+ "syn",
1749
+ "tempfile",
1750
  ]
1751
 
1752
  [[package]]
 
1762
  "syn",
1763
  ]
1764
 
1765
+ [[package]]
1766
+ name = "prost-derive"
1767
+ version = "0.14.1"
1768
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1769
+ checksum = "9120690fafc389a67ba3803df527d0ec9cbbc9cc45e4cc20b332996dfb672425"
1770
+ dependencies = [
1771
+ "anyhow",
1772
+ "itertools",
1773
+ "proc-macro2",
1774
+ "quote",
1775
+ "syn",
1776
+ ]
1777
+
1778
  [[package]]
1779
  name = "prost-types"
1780
  version = "0.13.5"
1781
  source = "registry+https://github.com/rust-lang/crates.io-index"
1782
  checksum = "52c2c1bf36ddb1a1c396b3601a3cec27c2462e45f07c386894ec3ccf5332bd16"
1783
  dependencies = [
1784
+ "prost 0.13.5",
1785
  ]
1786
 
1787
  [[package]]
1788
+ name = "prost-types"
1789
+ version = "0.14.1"
1790
  source = "registry+https://github.com/rust-lang/crates.io-index"
1791
+ checksum = "b9b4db3d6da204ed77bb26ba83b6122a73aeb2e87e25fbf7ad2e84c4ccbf8f72"
1792
  dependencies = [
1793
+ "prost 0.14.1",
 
 
 
1794
  ]
1795
 
1796
  [[package]]
1797
+ name = "pulldown-cmark"
1798
+ version = "0.13.0"
1799
  source = "registry+https://github.com/rust-lang/crates.io-index"
1800
+ checksum = "1e8bbe1a966bd2f362681a44f6edce3c2310ac21e4d5067a6e7ec396297a6ea0"
1801
  dependencies = [
1802
+ "bitflags",
1803
+ "memchr",
1804
+ "unicase",
1805
+ ]
1806
+
1807
+ [[package]]
1808
+ name = "pulldown-cmark-to-cmark"
1809
+ version = "21.0.0"
1810
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1811
+ checksum = "e5b6a0769a491a08b31ea5c62494a8f144ee0987d86d670a8af4df1e1b7cde75"
1812
+ dependencies = [
1813
+ "pulldown-cmark",
1814
  ]
1815
 
1816
  [[package]]
 
1823
  "derive_builder",
1824
  "futures",
1825
  "futures-util",
1826
+ "prost 0.13.5",
1827
+ "prost-types 0.13.5",
1828
  "reqwest",
1829
  "semver",
1830
  "serde",
1831
  "serde_json",
1832
  "thiserror 1.0.69",
1833
  "tokio",
1834
+ "tonic 0.12.3",
1835
  ]
1836
 
1837
  [[package]]
 
1963
  "getrandom 0.3.3",
1964
  ]
1965
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1966
  [[package]]
1967
  name = "rayon"
1968
  version = "1.11.0"
 
1994
  "crossbeam-utils",
1995
  ]
1996
 
 
 
 
 
 
 
1997
  [[package]]
1998
  name = "redox_users"
1999
  version = "0.5.2"
 
2162
  source = "registry+https://github.com/rust-lang/crates.io-index"
2163
  checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8"
2164
  dependencies = [
2165
+ "bitflags",
2166
  "errno",
2167
  "libc",
2168
  "linux-raw-sys",
 
2238
  source = "registry+https://github.com/rust-lang/crates.io-index"
2239
  checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f"
2240
 
 
 
 
 
 
 
 
 
 
 
2241
  [[package]]
2242
  name = "same-file"
2243
  version = "1.0.6"
 
2262
  source = "registry+https://github.com/rust-lang/crates.io-index"
2263
  checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02"
2264
  dependencies = [
2265
+ "bitflags",
2266
  "core-foundation 0.9.4",
2267
  "core-foundation-sys",
2268
  "libc",
 
2275
  source = "registry+https://github.com/rust-lang/crates.io-index"
2276
  checksum = "80fb1d92c5028aa318b4b8bd7302a5bfcf48be96a37fc6fc790f806b0004ee0c"
2277
  dependencies = [
2278
+ "bitflags",
2279
  "core-foundation 0.10.1",
2280
  "core-foundation-sys",
2281
  "libc",
 
2298
  source = "registry+https://github.com/rust-lang/crates.io-index"
2299
  checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0"
2300
 
 
 
 
 
 
 
2301
  [[package]]
2302
  name = "serde"
2303
  version = "1.0.219"
 
2340
  "serde",
2341
  ]
2342
 
 
 
 
 
 
 
 
 
 
2343
  [[package]]
2344
  name = "serde_urlencoded"
2345
  version = "0.7.1"
 
2494
  "syn",
2495
  ]
2496
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2497
  [[package]]
2498
  name = "system-configuration"
2499
  version = "0.6.1"
2500
  source = "registry+https://github.com/rust-lang/crates.io-index"
2501
  checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b"
2502
  dependencies = [
2503
+ "bitflags",
2504
  "core-foundation 0.9.4",
2505
  "system-configuration-sys",
2506
  ]
 
2709
  "tokio",
2710
  ]
2711
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2712
  [[package]]
2713
  name = "tonic"
2714
  version = "0.12.3"
 
2730
  "hyper-util",
2731
  "percent-encoding",
2732
  "pin-project",
2733
+ "prost 0.13.5",
2734
  "rustls-native-certs",
2735
  "rustls-pemfile",
2736
  "socket2 0.5.10",
 
2743
  "tracing",
2744
  ]
2745
 
2746
+ [[package]]
2747
+ name = "tonic"
2748
+ version = "0.14.1"
2749
+ source = "registry+https://github.com/rust-lang/crates.io-index"
2750
+ checksum = "67ac5a8627ada0968acec063a4746bf79588aa03ccb66db2f75d7dce26722a40"
2751
+ dependencies = [
2752
+ "async-trait",
2753
+ "axum 0.8.4",
2754
+ "base64 0.22.1",
2755
+ "bytes",
2756
+ "h2",
2757
+ "http",
2758
+ "http-body",
2759
+ "http-body-util",
2760
+ "hyper",
2761
+ "hyper-timeout",
2762
+ "hyper-util",
2763
+ "percent-encoding",
2764
+ "pin-project",
2765
+ "socket2 0.6.0",
2766
+ "sync_wrapper",
2767
+ "tokio",
2768
+ "tokio-stream",
2769
+ "tower 0.5.2",
2770
+ "tower-layer",
2771
+ "tower-service",
2772
+ "tracing",
2773
+ ]
2774
+
2775
+ [[package]]
2776
+ name = "tonic-build"
2777
+ version = "0.14.1"
2778
+ source = "registry+https://github.com/rust-lang/crates.io-index"
2779
+ checksum = "49e323d8bba3be30833707e36d046deabf10a35ae8ad3cae576943ea8933e25d"
2780
+ dependencies = [
2781
+ "prettyplease",
2782
+ "proc-macro2",
2783
+ "quote",
2784
+ "syn",
2785
+ ]
2786
+
2787
+ [[package]]
2788
+ name = "tonic-prost"
2789
+ version = "0.14.1"
2790
+ source = "registry+https://github.com/rust-lang/crates.io-index"
2791
+ checksum = "b9c511b9a96d40cb12b7d5d00464446acf3b9105fd3ce25437cfe41c92b1c87d"
2792
+ dependencies = [
2793
+ "bytes",
2794
+ "prost 0.14.1",
2795
+ "tonic 0.14.1",
2796
+ ]
2797
+
2798
+ [[package]]
2799
+ name = "tonic-prost-build"
2800
+ version = "0.14.1"
2801
+ source = "registry+https://github.com/rust-lang/crates.io-index"
2802
+ checksum = "8ef298fcd01b15e135440c4b8c974460ceca4e6a5af7f1c933b08e4d2875efa1"
2803
+ dependencies = [
2804
+ "prettyplease",
2805
+ "proc-macro2",
2806
+ "prost-build",
2807
+ "prost-types 0.14.1",
2808
+ "quote",
2809
+ "syn",
2810
+ "tempfile",
2811
+ "tonic-build",
2812
+ ]
2813
+
2814
  [[package]]
2815
  name = "tower"
2816
  version = "0.4.13"
 
2839
  dependencies = [
2840
  "futures-core",
2841
  "futures-util",
2842
+ "indexmap 2.10.0",
2843
  "pin-project-lite",
2844
+ "slab",
2845
  "sync_wrapper",
2846
  "tokio",
2847
+ "tokio-util",
2848
  "tower-layer",
2849
  "tower-service",
2850
  "tracing",
 
2856
  source = "registry+https://github.com/rust-lang/crates.io-index"
2857
  checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2"
2858
  dependencies = [
2859
+ "bitflags",
2860
  "bytes",
2861
  "futures-util",
2862
  "http",
 
2955
  source = "registry+https://github.com/rust-lang/crates.io-index"
2956
  checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f"
2957
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2958
  [[package]]
2959
  name = "unicase"
2960
  version = "2.8.1"
 
3088
  "serde_json",
3089
  "url",
3090
  "utoipa",
3091
+ "zip",
3092
  ]
3093
 
3094
  [[package]]
 
3487
  source = "registry+https://github.com/rust-lang/crates.io-index"
3488
  checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486"
3489
 
 
 
 
 
 
 
 
 
 
3490
  [[package]]
3491
  name = "wit-bindgen-rt"
3492
  version = "0.39.0"
3493
  source = "registry+https://github.com/rust-lang/crates.io-index"
3494
  checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1"
3495
  dependencies = [
3496
+ "bitflags",
3497
  ]
3498
 
3499
  [[package]]
 
3502
  source = "registry+https://github.com/rust-lang/crates.io-index"
3503
  checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb"
3504
 
 
 
 
 
 
 
 
 
 
 
 
 
3505
  [[package]]
3506
  name = "yoke"
3507
  version = "0.8.0"
 
3510
  dependencies = [
3511
  "serde",
3512
  "stable_deref_trait",
3513
+ "yoke-derive",
3514
  "zerofrom",
3515
  ]
3516
 
 
 
 
 
 
 
 
 
 
 
 
 
3517
  [[package]]
3518
  name = "yoke-derive"
3519
  version = "0.8.0"
 
3580
  checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595"
3581
  dependencies = [
3582
  "displaydoc",
3583
+ "yoke",
3584
  "zerofrom",
3585
  ]
3586
 
 
3590
  source = "registry+https://github.com/rust-lang/crates.io-index"
3591
  checksum = "e7aa2bd55086f1ab526693ecbe444205da57e25f4489879da80635a46d90e73b"
3592
  dependencies = [
3593
+ "yoke",
3594
  "zerofrom",
3595
  "zerovec-derive",
3596
  ]
 
3606
  "syn",
3607
  ]
3608
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3609
  [[package]]
3610
  name = "zip"
3611
  version = "3.0.0"
Cargo.toml CHANGED
@@ -6,17 +6,18 @@ edition = "2024"
6
  [dependencies]
7
  anyhow = "1.0.99"
8
  axum = "0.8.4"
9
- candle-core = { version = "0.9.1", features = ["cuda"] }
10
- candle-transformers = { version = "0.9.1", features = ["cuda"] }
11
  deadpool-diesel = { version = "0.6.1", features = ["postgres"] }
12
  diesel = { version = "2.2.12", features = ["postgres"] }
13
  futures = "0.3.31"
14
  hf-hub = { version = "0.4.3", features = ["tokio"] }
 
15
  qdrant-client = "1.15.0"
16
  rayon = "1.11.0"
17
  serde = { version = "1.0.219", features = ["derive"] }
18
  tokenizers = "0.21.4"
19
  tokio = { version = "1.47.1", features = ["macros", "rt-multi-thread"] }
 
 
20
  tower = "0.5.2"
21
  tower-http = { version = "0.6.6", features = ["cors", "trace"] }
22
  tracing = "0.1.41"
@@ -24,3 +25,7 @@ tracing-subscriber = { version = "0.3.19", features = ["env-filter"] }
24
  utoipa = "5.4.0"
25
  utoipa-axum = "0.2.0"
26
  utoipa-swagger-ui = { version = "9.0.2", features = ["axum"] }
 
 
 
 
 
6
  [dependencies]
7
  anyhow = "1.0.99"
8
  axum = "0.8.4"
 
 
9
  deadpool-diesel = { version = "0.6.1", features = ["postgres"] }
10
  diesel = { version = "2.2.12", features = ["postgres"] }
11
  futures = "0.3.31"
12
  hf-hub = { version = "0.4.3", features = ["tokio"] }
13
+ prost = "0.14.1"
14
  qdrant-client = "1.15.0"
15
  rayon = "1.11.0"
16
  serde = { version = "1.0.219", features = ["derive"] }
17
  tokenizers = "0.21.4"
18
  tokio = { version = "1.47.1", features = ["macros", "rt-multi-thread"] }
19
+ tonic = "0.14.1"
20
+ tonic-prost = "0.14.1"
21
  tower = "0.5.2"
22
  tower-http = { version = "0.6.6", features = ["cors", "trace"] }
23
  tracing = "0.1.41"
 
25
  utoipa = "5.4.0"
26
  utoipa-axum = "0.2.0"
27
  utoipa-swagger-ui = { version = "9.0.2", features = ["axum"] }
28
+
29
+ [build-dependencies]
30
+ anyhow = "1.0.99"
31
+ tonic-prost-build = "0.14.1"
build.rs ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ fn main() -> anyhow::Result<()> {
2
+ println!("cargo::rerun-if-changed=proto/text_embed.proto");
3
+ tonic_prost_build::compile_protos("proto/text_embed.proto")?;
4
+ Ok(())
5
+ }
proto/text_embed.proto ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ syntax = "proto3";
2
+
3
+ package text_embed;
4
+
5
+ service TextEmbeddingService {
6
+ rpc GetEmbedding (TextRequest) returns (EmbeddingResponse);
7
+ }
8
+
9
+ message TextRequest {
10
+ string text = 1;
11
+ }
12
+
13
+ message EmbeddingResponse {
14
+ repeated float embeddings = 1;
15
+ }
src/constants/mod.rs CHANGED
@@ -1,3 +1,4 @@
1
- pub const EMBEDDING_MODEL_NAME: &str = "openai/clip-vit-base-patch32";
2
  pub const QDRANT_KEYFRAME_COLLECTION_NAME: &str = "keyframes";
 
 
3
  pub const OPENAPI_TAG: &str = "AIC Server";
 
 
1
  pub const QDRANT_KEYFRAME_COLLECTION_NAME: &str = "keyframes";
2
+ pub const QDRANT_KEYFRAME_COLLECTION_IMAGE_VECTOR_NAME: &str = "images";
3
+ pub const QDRANT_KEYFRAME_COLLECTION_OBJECT_VECTOR_NAME: &str = "objects";
4
  pub const OPENAPI_TAG: &str = "AIC Server";
src/controllers/v1/vectors/keyframes/mod.rs CHANGED
@@ -7,7 +7,7 @@ use crate::{
7
  dtos::vectors::keyframes::{VectorizedKeyframeDto, VectorizedKeyframeRequestDto},
8
  states::AppState,
9
  },
10
- services::vectors::keyframes::VectorizedKeyframeService,
11
  };
12
 
13
  pub fn router() -> OpenApiRouter<AppState> {
 
7
  dtos::vectors::keyframes::{VectorizedKeyframeDto, VectorizedKeyframeRequestDto},
8
  states::AppState,
9
  },
10
+ services::vector_queries::keyframes::VectorizedKeyframeService,
11
  };
12
 
13
  pub fn router() -> OpenApiRouter<AppState> {
src/models/mod.rs CHANGED
@@ -1,3 +1,4 @@
1
  pub mod dtos;
2
  pub mod entities;
 
3
  pub mod states;
 
1
  pub mod dtos;
2
  pub mod entities;
3
+ pub mod protos;
4
  pub mod states;
src/models/protos/mod.rs ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ pub mod text_embed {
2
+ tonic::include_proto!("text_embed");
3
+ }
src/models/states/mod.rs CHANGED
@@ -1,43 +1,22 @@
1
  use std::sync::Arc;
2
 
3
- use candle_core::{DType, Device};
4
- use candle_transformers::models::{
5
- clip::{ClipConfig, ClipModel},
6
- mimi::candle_nn::VarBuilder,
7
- };
8
  use deadpool_diesel::{
9
  Runtime,
10
  postgres::{Manager, Pool},
11
  };
12
- use hf_hub::api::tokio::ApiRepo;
13
- use qdrant_client::{
14
- Qdrant,
15
- qdrant::{CreateCollectionBuilder, Distance, VectorParamsBuilder},
16
- };
17
- use tokenizers::Tokenizer;
18
-
19
- use crate::constants::{EMBEDDING_MODEL_NAME, QDRANT_KEYFRAME_COLLECTION_NAME};
20
 
21
  #[derive(Clone)]
22
  pub struct AppState {
23
- device: Arc<Device>,
24
  diesel_pool: Pool,
25
- model: Arc<ClipModel>,
26
  qdrant_client: Arc<Qdrant>,
27
- tokenizer: Arc<Tokenizer>,
28
  }
29
 
30
  impl AppState {
31
  pub async fn new() -> anyhow::Result<Self> {
32
- let api = hf_hub::api::tokio::Api::new()?.model(EMBEDDING_MODEL_NAME.to_owned());
33
- let device = Device::cuda_if_available(0)?;
34
-
35
  Ok(Self {
36
  diesel_pool: Self::diesel_pool_helper()?,
37
  qdrant_client: Self::qdrant_client_helper().await?,
38
- model: Self::model_helper(&api, &device).await?,
39
- tokenizer: Self::tokenizer_helper(&api).await?,
40
- device: Arc::new(device),
41
  })
42
  }
43
 
@@ -50,55 +29,20 @@ impl AppState {
50
  }
51
 
52
  async fn qdrant_client_helper() -> anyhow::Result<Arc<Qdrant>> {
53
- let client = Qdrant::from_url(&std::env::var("QDRANT_URL")?).build()?;
54
-
55
- if client
56
- .collection_exists(QDRANT_KEYFRAME_COLLECTION_NAME)
57
- .await?
58
- {
59
- client
60
- .create_collection(
61
- CreateCollectionBuilder::new(QDRANT_KEYFRAME_COLLECTION_NAME)
62
- .vectors_config(VectorParamsBuilder::new(512, Distance::Cosine)),
63
- )
64
- .await?;
65
- }
66
-
67
- Ok(Arc::new(client))
68
- }
69
-
70
- async fn model_helper(api: &ApiRepo, device: &Device) -> anyhow::Result<Arc<ClipModel>> {
71
- let model_path = api.get("pytorch_model.bin").await?;
72
- let vb = VarBuilder::from_pth(model_path, DType::F32, device)?;
73
- let config = ClipConfig::vit_base_patch32();
74
-
75
- Ok(Arc::new(ClipModel::new(vb, &config)?))
76
- }
77
-
78
- async fn tokenizer_helper(api: &ApiRepo) -> anyhow::Result<Arc<Tokenizer>> {
79
- let tokenizer_file = api.get("tokenizer.json").await?;
80
- Ok(Arc::new(
81
- Tokenizer::from_file(tokenizer_file).map_err(anyhow::Error::msg)?,
82
  ))
83
- }
84
-
85
- pub fn device(&self) -> &Device {
86
- &self.device
87
  }
88
 
89
  pub fn diesel_pool(&self) -> &Pool {
90
  &self.diesel_pool
91
  }
92
 
93
- pub fn model(&self) -> &ClipModel {
94
- &self.model
95
- }
96
-
97
  pub fn qdrant_client(&self) -> &Qdrant {
98
  &self.qdrant_client
99
  }
100
-
101
- pub fn tokenizer(&self) -> &Tokenizer {
102
- &self.tokenizer
103
- }
104
  }
 
1
  use std::sync::Arc;
2
 
 
 
 
 
 
3
  use deadpool_diesel::{
4
  Runtime,
5
  postgres::{Manager, Pool},
6
  };
7
+ use qdrant_client::Qdrant;
 
 
 
 
 
 
 
8
 
9
  #[derive(Clone)]
10
  pub struct AppState {
 
11
  diesel_pool: Pool,
 
12
  qdrant_client: Arc<Qdrant>,
 
13
  }
14
 
15
  impl AppState {
16
  pub async fn new() -> anyhow::Result<Self> {
 
 
 
17
  Ok(Self {
18
  diesel_pool: Self::diesel_pool_helper()?,
19
  qdrant_client: Self::qdrant_client_helper().await?,
 
 
 
20
  })
21
  }
22
 
 
29
  }
30
 
31
  async fn qdrant_client_helper() -> anyhow::Result<Arc<Qdrant>> {
32
+ let client = Qdrant::from_url(&format!(
33
+ "http://{}:{}",
34
+ std::env::var("QDRANT_HOST")?,
35
+ std::env::var("QDRANT_GRPC_PORT")?
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
36
  ))
37
+ .build()?;
38
+ Ok(Arc::new(client))
 
 
39
  }
40
 
41
  pub fn diesel_pool(&self) -> &Pool {
42
  &self.diesel_pool
43
  }
44
 
 
 
 
 
45
  pub fn qdrant_client(&self) -> &Qdrant {
46
  &self.qdrant_client
47
  }
 
 
 
 
48
  }
src/services/embeddings/mod.rs ADDED
@@ -0,0 +1 @@
 
 
1
+ pub mod texts;
src/services/embeddings/texts/mod.rs ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ use tonic::Request;
2
+
3
+ use crate::models::protos::text_embed::{
4
+ TextRequest, text_embedding_service_client::TextEmbeddingServiceClient,
5
+ };
6
+
7
+ pub struct TextEmbeddingService {
8
+ client: TextEmbeddingServiceClient<tonic::transport::Channel>,
9
+ }
10
+
11
+ impl TextEmbeddingService {
12
+ pub async fn new() -> anyhow::Result<Self> {
13
+ Ok(Self {
14
+ client: TextEmbeddingServiceClient::connect(std::env::var("EMBEDDING_SERVER_URL")?)
15
+ .await?,
16
+ })
17
+ }
18
+
19
+ pub async fn embed_text(&mut self, text: &str) -> anyhow::Result<Vec<f32>> {
20
+ let request = Request::new(TextRequest { text: text.into() });
21
+ let response = self.client.get_embedding(request).await?;
22
+ Ok(response.into_inner().embeddings)
23
+ }
24
+ }
src/services/mod.rs CHANGED
@@ -1,3 +1,4 @@
 
1
  pub mod keyframes;
2
- pub mod vectors;
3
  pub mod videos;
 
1
+ pub mod embeddings;
2
  pub mod keyframes;
3
+ pub mod vector_queries;
4
  pub mod videos;
src/services/{vectors → vector_queries}/keyframes/mod.rs RENAMED
@@ -1,44 +1,35 @@
1
- use candle_core::{Device, Tensor};
2
- use candle_transformers::models::clip::ClipModel;
3
- use qdrant_client::{Qdrant, qdrant::QueryPointsBuilder};
 
4
  use rayon::iter::{IntoParallelIterator, ParallelIterator};
5
- use tokenizers::Tokenizer;
6
 
7
- use crate::models::{dtos::vectors::keyframes::VectorizedKeyframeDto, states::AppState};
 
 
 
 
 
 
 
8
 
9
  #[derive(Clone, Copy)]
10
  pub struct VectorizedKeyframeService<'a> {
11
  client: &'a Qdrant,
12
- device: &'a Device,
13
- model: &'a ClipModel,
14
- tokenizer: &'a Tokenizer,
15
  }
16
 
17
  impl<'a> From<&'a AppState> for VectorizedKeyframeService<'a> {
18
  fn from(value: &'a AppState) -> Self {
19
  Self {
20
- model: value.model(),
21
- tokenizer: value.tokenizer(),
22
- device: value.device(),
23
  client: value.qdrant_client(),
24
  }
25
  }
26
  }
27
 
28
  impl<'a> VectorizedKeyframeService<'a> {
29
- fn embed_text(&self, text: &str) -> anyhow::Result<Tensor> {
30
- let input_ids = {
31
- let input_ids = self
32
- .tokenizer
33
- .encode_fast(text, true)
34
- .map_err(anyhow::Error::msg)?;
35
- Tensor::new(input_ids.get_ids(), self.device)?
36
- };
37
-
38
- Ok(self
39
- .model
40
- .get_text_features(&input_ids.unsqueeze(0)?)
41
- .map(|x| x.squeeze(0))??)
42
  }
43
 
44
  pub async fn find_nearest_top_k_by_text(
@@ -46,13 +37,20 @@ impl<'a> VectorizedKeyframeService<'a> {
46
  text: &str,
47
  top_k: u64,
48
  ) -> anyhow::Result<Vec<VectorizedKeyframeDto>> {
49
- let embeddings = self.embed_text(text)?;
50
 
51
  let query_result = self
52
  .client
53
  .query(
54
- QueryPointsBuilder::new("keyframes")
55
- .query(embeddings.squeeze(0)?.to_vec1::<f32>()?)
 
 
 
 
 
 
 
56
  .limit(top_k),
57
  )
58
  .await?
 
1
+ use qdrant_client::{
2
+ Qdrant,
3
+ qdrant::{PrefetchQueryBuilder, Query, QueryPointsBuilder},
4
+ };
5
  use rayon::iter::{IntoParallelIterator, ParallelIterator};
 
6
 
7
+ use crate::{
8
+ constants::{
9
+ QDRANT_KEYFRAME_COLLECTION_IMAGE_VECTOR_NAME, QDRANT_KEYFRAME_COLLECTION_NAME,
10
+ QDRANT_KEYFRAME_COLLECTION_OBJECT_VECTOR_NAME,
11
+ },
12
+ models::{dtos::vectors::keyframes::VectorizedKeyframeDto, states::AppState},
13
+ services::embeddings::texts::TextEmbeddingService,
14
+ };
15
 
16
  #[derive(Clone, Copy)]
17
  pub struct VectorizedKeyframeService<'a> {
18
  client: &'a Qdrant,
 
 
 
19
  }
20
 
21
  impl<'a> From<&'a AppState> for VectorizedKeyframeService<'a> {
22
  fn from(value: &'a AppState) -> Self {
23
  Self {
 
 
 
24
  client: value.qdrant_client(),
25
  }
26
  }
27
  }
28
 
29
  impl<'a> VectorizedKeyframeService<'a> {
30
+ async fn embed_text(&self, text: &str) -> anyhow::Result<Vec<f32>> {
31
+ let mut embedding_service = TextEmbeddingService::new().await?;
32
+ embedding_service.embed_text(text).await
 
 
 
 
 
 
 
 
 
 
33
  }
34
 
35
  pub async fn find_nearest_top_k_by_text(
 
37
  text: &str,
38
  top_k: u64,
39
  ) -> anyhow::Result<Vec<VectorizedKeyframeDto>> {
40
+ let embeddings = self.embed_text(text).await?;
41
 
42
  let query_result = self
43
  .client
44
  .query(
45
+ QueryPointsBuilder::new(QDRANT_KEYFRAME_COLLECTION_NAME)
46
+ .add_prefetch(
47
+ PrefetchQueryBuilder::default()
48
+ .query(Query::new_nearest(embeddings.clone()))
49
+ .using(QDRANT_KEYFRAME_COLLECTION_IMAGE_VECTOR_NAME)
50
+ .limit(100u64),
51
+ )
52
+ .query(Query::new_nearest(embeddings))
53
+ .using(QDRANT_KEYFRAME_COLLECTION_OBJECT_VECTOR_NAME)
54
  .limit(top_k),
55
  )
56
  .await?
src/services/{vectors → vector_queries}/mod.rs RENAMED
File without changes