qwak-core 0.6.7__py3-none-any.whl → 0.7.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- frogml_storage/__init__.py +1 -0
- frogml_storage/artifactory/__init__.py +1 -0
- frogml_storage/artifactory/_artifactory_api.py +315 -0
- frogml_storage/authentication/login/__init__.py +1 -0
- frogml_storage/authentication/login/_login_cli.py +239 -0
- frogml_storage/authentication/login/_login_command.py +74 -0
- frogml_storage/authentication/models/__init__.py +3 -0
- frogml_storage/authentication/models/_auth.py +24 -0
- frogml_storage/authentication/models/_auth_config.py +70 -0
- frogml_storage/authentication/models/_login.py +22 -0
- frogml_storage/authentication/utils/__init__.py +18 -0
- frogml_storage/authentication/utils/_authentication_utils.py +284 -0
- frogml_storage/authentication/utils/_login_checks_utils.py +114 -0
- frogml_storage/base_storage.py +140 -0
- frogml_storage/constants.py +56 -0
- frogml_storage/exceptions/checksum_verification_error.py +3 -0
- frogml_storage/exceptions/validation_error.py +4 -0
- frogml_storage/frog_ml.py +668 -0
- frogml_storage/http/__init__.py +1 -0
- frogml_storage/http/http_client.py +83 -0
- frogml_storage/logging/__init__.py +1 -0
- frogml_storage/logging/_log_config.py +45 -0
- frogml_storage/logging/log_utils.py +21 -0
- frogml_storage/models/__init__.py +1 -0
- frogml_storage/models/_download_context.py +54 -0
- frogml_storage/models/dataset_manifest.py +13 -0
- frogml_storage/models/entity_manifest.py +93 -0
- frogml_storage/models/frogml_dataset_version.py +21 -0
- frogml_storage/models/frogml_entity_type_info.py +50 -0
- frogml_storage/models/frogml_entity_version.py +34 -0
- frogml_storage/models/frogml_model_version.py +21 -0
- frogml_storage/models/model_manifest.py +60 -0
- frogml_storage/models/serialization_metadata.py +15 -0
- frogml_storage/utils/__init__.py +12 -0
- frogml_storage/utils/_environment.py +21 -0
- frogml_storage/utils/_input_checks_utility.py +104 -0
- frogml_storage/utils/_storage_utils.py +15 -0
- frogml_storage/utils/_url_utils.py +27 -0
- qwak/__init__.py +1 -1
- qwak/clients/model_management/client.py +5 -0
- qwak/clients/project/client.py +7 -0
- qwak/inner/const.py +8 -0
- qwak/inner/di_configuration/account.py +67 -6
- qwak/inner/di_configuration/dependency_wiring.py +0 -2
- qwak/inner/tool/auth.py +83 -0
- qwak/inner/tool/grpc/grpc_auth.py +35 -0
- qwak/inner/tool/grpc/grpc_tools.py +37 -14
- qwak/inner/tool/grpc/grpc_try_wrapping.py +1 -3
- qwak/qwak_client/client.py +6 -0
- {qwak_core-0.6.7.dist-info → qwak_core-0.7.0.dist-info}/METADATA +1 -1
- {qwak_core-0.6.7.dist-info → qwak_core-0.7.0.dist-info}/RECORD +54 -30
- qwak_services_mock/mocks/qwak_mocks.py +2 -8
- qwak_services_mock/services_mock.py +0 -24
- qwak/clients/vector_store/__init__.py +0 -2
- qwak/clients/vector_store/management_client.py +0 -124
- qwak/clients/vector_store/serving_client.py +0 -156
- qwak/vector_store/__init__.py +0 -4
- qwak/vector_store/client.py +0 -150
- qwak/vector_store/collection.py +0 -426
- qwak/vector_store/filters.py +0 -354
- qwak/vector_store/inference_client.py +0 -103
- qwak/vector_store/rest_helpers.py +0 -72
- qwak/vector_store/utils/__init__.py +0 -0
- qwak/vector_store/utils/filter_utils.py +0 -21
- qwak/vector_store/utils/upsert_utils.py +0 -217
- qwak_services_mock/mocks/vector_serving_api.py +0 -154
- qwak_services_mock/mocks/vectors_management_api.py +0 -96
- {qwak_core-0.6.7.dist-info → qwak_core-0.7.0.dist-info}/WHEEL +0 -0
|
@@ -628,7 +628,45 @@ _qwak_proto/qwak/workspace/workspace_pb2_grpc.py,sha256=1oboBPFxaTEXt9Aw7EAj8gXH
|
|
|
628
628
|
_qwak_proto/qwak/workspace/workspace_service_pb2.py,sha256=93uNm83VVrkLG_XVsuBOBTPs4UJF91YD1xJTOEbRyig,9239
|
|
629
629
|
_qwak_proto/qwak/workspace/workspace_service_pb2.pyi,sha256=nKKCHwnovZhsy8TSVmdz-Vtl0nviOOoX56HD-41Xo08,13726
|
|
630
630
|
_qwak_proto/qwak/workspace/workspace_service_pb2_grpc.py,sha256=yKGuexxTBza99Ihe0DSTniV2ZSd_AG47inHenqfi890,27193
|
|
631
|
-
|
|
631
|
+
frogml_storage/__init__.py,sha256=RaANGbRu5e-vehwXI1-Qe2ggPPfs1TQaZj072JdbLk4,22
|
|
632
|
+
frogml_storage/artifactory/__init__.py,sha256=C02rcm7kqsZBVA6c6Gztxamj96hn8Aj6BuzYWFRmWbQ,71
|
|
633
|
+
frogml_storage/artifactory/_artifactory_api.py,sha256=z8YX90bCy82BWqMNUdpbbig1qF5CarkIOfP6V96uYYg,11188
|
|
634
|
+
frogml_storage/authentication/login/__init__.py,sha256=ch8UhQwh3o5ddyoJykQ0Bnog5-8qKHmeDpwqny8xMzM,46
|
|
635
|
+
frogml_storage/authentication/login/_login_cli.py,sha256=pGWGfelbUMorVqn6XEgOSa4ZbUJQL-fNHW5xBjDcj8M,8412
|
|
636
|
+
frogml_storage/authentication/login/_login_command.py,sha256=dj9pOanaYg4PMNbF1EbgMXeoIMo1lfoHp5JFNUZFZ5g,2849
|
|
637
|
+
frogml_storage/authentication/models/__init__.py,sha256=-nG08ZWSD2nIa5lqGtn9pidXM_-XLj4ASG_jHATOK84,113
|
|
638
|
+
frogml_storage/authentication/models/_auth.py,sha256=uKo6hxD1jjDGmYeQIJSnKJCOZIE6iTA8LJJs__BTufA,600
|
|
639
|
+
frogml_storage/authentication/models/_auth_config.py,sha256=uDcPXaPRXKDEtAhHEuN-GQTeDg8AUL8FE4aiAByHU_I,2024
|
|
640
|
+
frogml_storage/authentication/models/_login.py,sha256=jcFdiWRqjaVAGG9hiYpPHF0WUNT4DqMqVp1FPFGuwOM,723
|
|
641
|
+
frogml_storage/authentication/utils/__init__.py,sha256=8TrFU_IUyO0g_JLazY3ui51uSCCTsP6eDmMI-dvXD4k,431
|
|
642
|
+
frogml_storage/authentication/utils/_authentication_utils.py,sha256=9vIeK88UrKRixOLfuXWRFT9vrZtkWTQADcdT42icB_E,9705
|
|
643
|
+
frogml_storage/authentication/utils/_login_checks_utils.py,sha256=OQZSJHN9C0ujCaAjYuttBBxyoOrWo0KGLKOw5et__ds,2993
|
|
644
|
+
frogml_storage/base_storage.py,sha256=gbkDRhXhLLJrr72A2vGcQqEHEjCDEk9-n7ye98F3_2k,5606
|
|
645
|
+
frogml_storage/constants.py,sha256=Fx-Dyzkl9e28O2qCvIgyEf2aBuhftXAdbn2BIfXFaGw,1542
|
|
646
|
+
frogml_storage/exceptions/checksum_verification_error.py,sha256=t1muLRYvqza7Q4jo1mYHck9ZoDwlGE7WxcheAFAnIQs,159
|
|
647
|
+
frogml_storage/exceptions/validation_error.py,sha256=_twu_xcL-O7D26qkskuuR-_NcnPPTADIUO9HGY4g0x0,156
|
|
648
|
+
frogml_storage/frog_ml.py,sha256=RO6YVLv1eBAZWs1noWkNqyWcI8yNoHP3mnGIr67qCkk,24182
|
|
649
|
+
frogml_storage/http/__init__.py,sha256=BOXGzjq1gJXlihldaZvMQNGJIdCy-UHWsk3u-bXEZnQ,36
|
|
650
|
+
frogml_storage/http/http_client.py,sha256=jYwe4aHhMRsTjl5fZDlJxaTFuY3RnIcw7P1Wz8Ykz4g,2420
|
|
651
|
+
frogml_storage/logging/__init__.py,sha256=JaBPWQQt3pjoLhUcZtgqPydGlKAWYpSvfPkt2z1Wi90,32
|
|
652
|
+
frogml_storage/logging/_log_config.py,sha256=ytwyRLYr3SyRlo4UpTjLBtlNqVApP9URTVO5m5DN3uU,1162
|
|
653
|
+
frogml_storage/logging/log_utils.py,sha256=MLuQvBrmysiWAeKKq1lHFt3o6DJPyafFWRJNTg9ECaY,711
|
|
654
|
+
frogml_storage/models/__init__.py,sha256=ZoWMjtQ4Bn-ARJqKEUp-XDRbHgaSQJG_1M2S5z91jbQ,47
|
|
655
|
+
frogml_storage/models/_download_context.py,sha256=8Jc5JmQG5mwObQp-CXF-D6dP3xUbZcyHUSdwM-p-8s0,1667
|
|
656
|
+
frogml_storage/models/dataset_manifest.py,sha256=w5ARGQSkRSP7mofsbxOcc9bXORKXIMo5iF1yFGd8Nyw,303
|
|
657
|
+
frogml_storage/models/entity_manifest.py,sha256=BXwJz1q3NIH6QFccnGDG51R3HnHO9-oCeO9qZqaxQg4,2787
|
|
658
|
+
frogml_storage/models/frogml_dataset_version.py,sha256=Uwe50e8eD9XqwARCsa4-iJJqyMQsDqs9E-iuAInvJuA,637
|
|
659
|
+
frogml_storage/models/frogml_entity_type_info.py,sha256=gIoWcm-nqKQRpVg8DJcq8jJE-e7qgR_-EUv6R8wKCFs,1448
|
|
660
|
+
frogml_storage/models/frogml_entity_version.py,sha256=jiDGk3xcZ-OaaTacs6VLshpyUNKYs8qgBOPk1NUJFkY,928
|
|
661
|
+
frogml_storage/models/frogml_model_version.py,sha256=2pVHW-BhowBcIScLZzWj5SH0abAirP3cDvXeq334lJI,631
|
|
662
|
+
frogml_storage/models/model_manifest.py,sha256=NEyUTt0ZbLbv-47nb_yJJrA0xnTCk67SdEUcZ09tjr8,2200
|
|
663
|
+
frogml_storage/models/serialization_metadata.py,sha256=KOJ9Yj0XGbYudpcUBMh67Hd7VohmoWsYOvhD-L2yzyY,347
|
|
664
|
+
frogml_storage/utils/__init__.py,sha256=HQUWfuGUIPZY7kfS795TRW8BQ4WmNqrNjS7lUrbxCdk,299
|
|
665
|
+
frogml_storage/utils/_environment.py,sha256=NEnRxaFdRDi3UA33IVTSfQxqc9ZB6nV9YlHDmT5bIkI,650
|
|
666
|
+
frogml_storage/utils/_input_checks_utility.py,sha256=ZUvkxhcTcbSKtpSo5ePWha3Ca5xohxIpiAlZlpcQ3xk,3221
|
|
667
|
+
frogml_storage/utils/_storage_utils.py,sha256=HB2g7uY5A3b33yIcAUM1OjHb5jWsnpESsiDrEviQwrI,366
|
|
668
|
+
frogml_storage/utils/_url_utils.py,sha256=NUEfz9Fp1iE8b676-A5wrMlSTsJVRKrUhcUItOFAJD8,821
|
|
669
|
+
qwak/__init__.py,sha256=gkgi11OkNJ_VMpm721NGVpcZRHEd-UnGTtDKivrMGL8,585
|
|
632
670
|
qwak/automations/__init__.py,sha256=qFZRvCxUUn8gcxkJR0v19ulHW2oJ0x6-Rif7HiheDP4,1522
|
|
633
671
|
qwak/automations/automation_executions.py,sha256=5MeH_epYYWb8NKXgAozwT_jPyyUDednBHG7izloi7RY,3228
|
|
634
672
|
qwak/automations/automations.py,sha256=2Wyrgj2mW5VmJzTKAXj3vQM_svYCuq_Bsu3_Vu9SdR4,12732
|
|
@@ -703,9 +741,9 @@ qwak/clients/location_discovery/client.py,sha256=O-wjMGiSTJ5qGjD0VhofE6Mv7NqvmwC
|
|
|
703
741
|
qwak/clients/logging_client/__init__.py,sha256=1OCHnigQBYThBwGbxCreYA0BgP0HcuLFzNEWd3Yxh-c,34
|
|
704
742
|
qwak/clients/logging_client/client.py,sha256=bLTxX2JFF1DKWjxtqoZexS10pN1BHSen3IRSbWjX5HQ,4746
|
|
705
743
|
qwak/clients/model_management/__init__.py,sha256=vjWVP8MjmK4_A70WOgJqa6x24AeLK-ABjGJtogGzw9w,43
|
|
706
|
-
qwak/clients/model_management/client.py,sha256=
|
|
744
|
+
qwak/clients/model_management/client.py,sha256=LHJlR12plQCjv0TtuozJ4Da91M7C-ay6Gvc09BEXItM,4755
|
|
707
745
|
qwak/clients/project/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
708
|
-
qwak/clients/project/client.py,sha256=
|
|
746
|
+
qwak/clients/project/client.py,sha256=Np4vDU4iPndGtWTF_bH2CqepCQHw49whvsq23uLMMJs,2484
|
|
709
747
|
qwak/clients/prompt_manager/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
710
748
|
qwak/clients/prompt_manager/model_descriptor_mapper.py,sha256=QDLPImRIPv9Jrdtg03oL7zgKvrWDXmzK0QXkUFAo1bs,7395
|
|
711
749
|
qwak/clients/prompt_manager/prompt_manager_client.py,sha256=Mg1uqJjwj57jFfNKx6tomzfOe6C8keTKpxvXFSPo0yA,6952
|
|
@@ -716,9 +754,6 @@ qwak/clients/system_secret/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJ
|
|
|
716
754
|
qwak/clients/system_secret/system_secret_client.py,sha256=79xwp-vica-APOqq7iL6KO8SwyxwZewjHOqiHsfMg48,1065
|
|
717
755
|
qwak/clients/user_application_instance/__init__.py,sha256=lvdNCdtV7BGcN7XlK5Lb_OnXAJ-ued3AGckiZ-_EmL0,50
|
|
718
756
|
qwak/clients/user_application_instance/client.py,sha256=M3NSuBl9bg9IjPN8Z9HJIs1PagxwXuUAWJpzk-uHIbA,6013
|
|
719
|
-
qwak/clients/vector_store/__init__.py,sha256=JGMvcS9kGCbwEIMMji4G4ohZPvccGWoTJNC6vF6RPwc,102
|
|
720
|
-
qwak/clients/vector_store/management_client.py,sha256=EiO6B-zO0ETgL0VonWJZnigqpF3iIebVArlsfJ-nOQ0,4247
|
|
721
|
-
qwak/clients/vector_store/serving_client.py,sha256=hl9B5Rr3fvCN12gCI6amlNoUll7sxT8rUE0a_JqhEHs,5293
|
|
722
757
|
qwak/clients/workspace_manager/__init__.py,sha256=sJ_tnt-CqjXVVNlcywmyQ5L3n5Dk0uMDNjSVvEwHziA,43
|
|
723
758
|
qwak/clients/workspace_manager/client.py,sha256=KXoipmYmzKTS1-auStjbZ7JKzXdCyHHqk22Q7KnrgV4,8136
|
|
724
759
|
qwak/exceptions/__init__.py,sha256=RgGCJgUvVbNm9Z_Kxnu3YUiI877LcqdMv7mJVtDxqYg,856
|
|
@@ -875,12 +910,12 @@ qwak/inner/build_logic/tools/files.py,sha256=druKkTp640Zy3x1MLjuTuXY56r5blEnH8dS
|
|
|
875
910
|
qwak/inner/build_logic/tools/ignore_files.py,sha256=E65s3m46pmSX4q4hX2-R5HYHDO4VCQHjip8Xn_yOBRg,750
|
|
876
911
|
qwak/inner/build_logic/tools/text.py,sha256=tH-v19Mt8l90sMVxku5XRtrderT0qdRqJ-jLijqannA,188
|
|
877
912
|
qwak/inner/build_logic/trigger_build_context.py,sha256=n5s7MRk41h8cxPI3IVuqMQUVuCc-D8A7Hhq35YuuAps,200
|
|
878
|
-
qwak/inner/const.py,sha256=
|
|
913
|
+
qwak/inner/const.py,sha256=lDDl3eSowB6-Z7GA45vvC-f0bdvgfof-uiRUQsFcvR4,1295
|
|
879
914
|
qwak/inner/di_configuration/__init__.py,sha256=RxGaowPAmq-entRtvlp2Ln6uc08wD0TTFwnTr7cr5zI,133
|
|
880
|
-
qwak/inner/di_configuration/account.py,sha256=
|
|
915
|
+
qwak/inner/di_configuration/account.py,sha256=K0QbvzJE74vICfJqxfPyNXPssegHr3ePzHXUPLMb02g,7649
|
|
881
916
|
qwak/inner/di_configuration/config.yml,sha256=GUvaZMWIDIR_d7hFcPVG_kHdCwpERKH1AFDakG3vqI4,242
|
|
882
917
|
qwak/inner/di_configuration/containers.py,sha256=dK-cfd8ajT6yujlEhPhcRYB-avdYDcreQz_2kTIVDRQ,1252
|
|
883
|
-
qwak/inner/di_configuration/dependency_wiring.py,sha256=
|
|
918
|
+
qwak/inner/di_configuration/dependency_wiring.py,sha256=dh2rM0R05ZZjaFSOjkQCOEkNMN4JJwXvPIcezaTspnU,2611
|
|
884
919
|
qwak/inner/di_configuration/session.py,sha256=Pwqapcu-0dsbb5dDn7ZGewVk4bYRN9sWk6ity72IDqY,452
|
|
885
920
|
qwak/inner/instance_template/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
886
921
|
qwak/inner/instance_template/verify_template_id.py,sha256=-c0Fh89XAfphKCpkurYaD-YyX3M3NkkpSLH4QsNPyko,1916
|
|
@@ -890,11 +925,11 @@ qwak/inner/runtime_di/__init__.py,sha256=ylaHwo2Hlq3pmeziA0Ip87DMnkcuBffKKi0tTH7
|
|
|
890
925
|
qwak/inner/runtime_di/containers.py,sha256=-AREM-IUAd9JhrhQablqixxpj4L9Tk1iQkK1fA5YbrA,545
|
|
891
926
|
qwak/inner/singleton_meta.py,sha256=1cU99I0f9tjuMQLMJyLsK1oK3fZJMsO5-TbRHAMXqds,627
|
|
892
927
|
qwak/inner/tool/__init__.py,sha256=DDoMZk7LIZNfu63Ft0mLE5wflwlQoghAJ1ZmMAcAeVE,74
|
|
893
|
-
qwak/inner/tool/auth.py,sha256=
|
|
928
|
+
qwak/inner/tool/auth.py,sha256=5dFw-yzpe9BJWTEFS9B9szhDq8-b2VniJf9M14MWSd8,7811
|
|
894
929
|
qwak/inner/tool/grpc/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
895
|
-
qwak/inner/tool/grpc/grpc_auth.py,sha256=
|
|
896
|
-
qwak/inner/tool/grpc/grpc_tools.py,sha256=
|
|
897
|
-
qwak/inner/tool/grpc/grpc_try_wrapping.py,sha256=
|
|
930
|
+
qwak/inner/tool/grpc/grpc_auth.py,sha256=V3NOHakh1AHtqnBYO5cbXYmtaTM-ElpU9ZXiQXo2FoY,2361
|
|
931
|
+
qwak/inner/tool/grpc/grpc_tools.py,sha256=i8y8S855DNG2lv8_QhD_L879kbDxhUIbm3lj7AiVqLE,11685
|
|
932
|
+
qwak/inner/tool/grpc/grpc_try_wrapping.py,sha256=cGUfy74IcFGjUE9EMQEpB3-0ta6WkzO4UW_34NtPH_Q,5651
|
|
898
933
|
qwak/inner/tool/protobuf_factory.py,sha256=ar_oY38w_x0sxgVF7EBs5h7gchNsDntvtKK5sSYxb24,1686
|
|
899
934
|
qwak/inner/tool/retry_utils.py,sha256=KcSFJuj02RKF-H9INpCmdiTNXlywEMJ2ClBa00N9aNM,435
|
|
900
935
|
qwak/inner/tool/run_config/__init__.py,sha256=AIuy7zhaF9Zvlp6tuLonnCfjp7vIwH1YOl8P5qT6YGE,275
|
|
@@ -1029,7 +1064,7 @@ qwak/qwak_client/builds/build.py,sha256=1dBRZkvZV04uw8RI-7iOs_yvfgUzglh9ZyzgHJyU
|
|
|
1029
1064
|
qwak/qwak_client/builds/filters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
1030
1065
|
qwak/qwak_client/builds/filters/metric_filter.py,sha256=i0ZsjqN1iw-cX_uxvbJzRT-EYAOEqejKkukLiyYmYqE,1185
|
|
1031
1066
|
qwak/qwak_client/builds/filters/parameter_filter.py,sha256=IY-J6bAIEM_KyVzESMDx0xv_fAScRp_AsltdMJk0IDY,1088
|
|
1032
|
-
qwak/qwak_client/client.py,sha256
|
|
1067
|
+
qwak/qwak_client/client.py,sha256=GPR8Pd2K8kwAzlG_eohPpPZNjB6vjaf4986rP9NjVUQ,28590
|
|
1033
1068
|
qwak/qwak_client/data_versioning/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
1034
1069
|
qwak/qwak_client/data_versioning/data_tag.py,sha256=B7_TsBrp0LZK-yLqGpodVhoh67dpWBsiyEgWq3RCKcA,806
|
|
1035
1070
|
qwak/qwak_client/deployments/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -1050,15 +1085,6 @@ qwak/tools/logger/logging.yml,sha256=UWC2i3NVKT3j5S8_SapzqClDzXLIEAurzNIXa2tS4UA
|
|
|
1050
1085
|
qwak/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
1051
1086
|
qwak/utils/datetime_utils.py,sha256=3zK7PUrerMlwB7U6WeuYwMAclVMfPqBNZihNRyIVMs4,581
|
|
1052
1087
|
qwak/utils/dict_utils.py,sha256=YsOSQeGpmrsm3CMnx2ZbqvzEcybk3m-0TCMXbBdBXaY,263
|
|
1053
|
-
qwak/vector_store/__init__.py,sha256=9gR2B5A1MXb2ks5VUzqrPASGpVTDuJs4uq7N7FNWOY4,120
|
|
1054
|
-
qwak/vector_store/client.py,sha256=UVc3UK2ytyhhXPF8rAznENXBWhjYpxEl8i5JIjWgO_8,6040
|
|
1055
|
-
qwak/vector_store/collection.py,sha256=3HWXU5DwcK30-eJ1ABs-r0S3UsUAPmDjS_aR1DgSHSM,16916
|
|
1056
|
-
qwak/vector_store/filters.py,sha256=y549rUHf2pRSDqNnslxb7DgUj-eNu_i755-CuTt8apo,8209
|
|
1057
|
-
qwak/vector_store/inference_client.py,sha256=Zyqx3nmhvyiNDBlaL8J1egDiZuB__ecsfvSTgNxrkT0,3711
|
|
1058
|
-
qwak/vector_store/rest_helpers.py,sha256=pKp77Qt8NPJDuampmOWhJgt6zgMLDq6YwahHwMcehME,2323
|
|
1059
|
-
qwak/vector_store/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
1060
|
-
qwak/vector_store/utils/filter_utils.py,sha256=fK01Ag2UxdXXqCVWWQOibh2OAGvm6Lvdl1dBWk3vVlg,837
|
|
1061
|
-
qwak/vector_store/utils/upsert_utils.py,sha256=DEjJlX_h1NM1_AhakH_IyfOJPOxWnyTPG9DOrEH7QIw,7459
|
|
1062
1088
|
qwak_services_mock/__init__.py,sha256=UH7y3X0K0j75G4mYFgCgxcv6hvhaCppC18E6fTF-eC4,46
|
|
1063
1089
|
qwak_services_mock/mocks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
1064
1090
|
qwak_services_mock/mocks/alert_manager_service_api.py,sha256=X9VF5-zroUqo9SpeaG_Oz_Jz9BHJW2-qHc3N1MDeCT4,2150
|
|
@@ -1098,19 +1124,17 @@ qwak_services_mock/mocks/logging_service.py,sha256=rkOud7CFAvb0xfP6WXf3kP541eXdY
|
|
|
1098
1124
|
qwak_services_mock/mocks/model_management_service.py,sha256=H3bMTr7VLrGjZjIrjgrjBk3kNDy1UjQXOeUyL5eAL_o,4153
|
|
1099
1125
|
qwak_services_mock/mocks/project_manager_service.py,sha256=WzcYzN3O04kSpvuTwX0QIF0HCh_ggsV9-gMel_vQVuc,3090
|
|
1100
1126
|
qwak_services_mock/mocks/prompt_manager_service.py,sha256=tEhVUVwkvRy68r7MNX9V3V8ZBZ1ynqzr6v1zREMm0_s,9895
|
|
1101
|
-
qwak_services_mock/mocks/qwak_mocks.py,sha256=
|
|
1127
|
+
qwak_services_mock/mocks/qwak_mocks.py,sha256=V4ngV3dna2YGgcZKDtVHDPlrtlEVnMp3YZ_tXCD2Ros,6125
|
|
1102
1128
|
qwak_services_mock/mocks/secret_service.py,sha256=BwNyhNSTmxHDACzrr7NHjZ0YchX3wHWuJkl1ioi0Aig,1406
|
|
1103
1129
|
qwak_services_mock/mocks/self_service_user_service.py,sha256=UK22V-wAc0zHScXCE0QKDO0TdbrHf_uk7tEEIM47MpI,1205
|
|
1104
1130
|
qwak_services_mock/mocks/system_secret_service.py,sha256=S8MfGGEex7bs0AvnAf8SbPOzE-YDfCvePT1TxXWzHRQ,1896
|
|
1105
1131
|
qwak_services_mock/mocks/user_application_instance_service_api.py,sha256=AHGppH_XXxQ2WXucqxgiFtKkzR13o4PVYnLxYzkgp3I,4083
|
|
1106
1132
|
qwak_services_mock/mocks/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
1107
1133
|
qwak_services_mock/mocks/utils/exception_handlers.py,sha256=Fhi9cx_qNytDnl4BtZmEerjXGLeTq9DLZgbdi3sqvKg,159
|
|
1108
|
-
qwak_services_mock/mocks/vector_serving_api.py,sha256=7ZSmDJVdw7_ne7BxLLrmy8eZkzVCeZ508gfL51wpKeY,5722
|
|
1109
|
-
qwak_services_mock/mocks/vectors_management_api.py,sha256=ePh8l3MlDGzs7E4NuPZzF5xK-bC9AdMgDaNZrq3FkHc,3594
|
|
1110
1134
|
qwak_services_mock/mocks/workspace_manager_service_mock.py,sha256=O9ZSwln4T4kHVkR_usXnDQtarTeNfffSMON0P6wbT4g,7740
|
|
1111
|
-
qwak_services_mock/services_mock.py,sha256=
|
|
1135
|
+
qwak_services_mock/services_mock.py,sha256=woIlkM0Y5SCweaN5SFaJYnlx3v5UxIuDTGWxsOGJA-4,19685
|
|
1112
1136
|
qwak_services_mock/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
1113
1137
|
qwak_services_mock/utils/service_utils.py,sha256=ZlB0CnB1J6oBn6_m7fQO2U8tKoboHdUa6ljjkRMYNXU,265
|
|
1114
|
-
qwak_core-0.
|
|
1115
|
-
qwak_core-0.
|
|
1116
|
-
qwak_core-0.
|
|
1138
|
+
qwak_core-0.7.0.dist-info/METADATA,sha256=Lu7jU0CVYUwVcBjIeVigtoOKJGY02DayYO-riXic3DE,1986
|
|
1139
|
+
qwak_core-0.7.0.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
|
1140
|
+
qwak_core-0.7.0.dist-info/RECORD,,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import dataclasses
|
|
2
2
|
|
|
3
|
-
from qwak_services_mock.mocks import
|
|
3
|
+
from qwak_services_mock.mocks.workspace_manager_service_mock import WorkspaceManagerServiceMock
|
|
4
4
|
from qwak_services_mock.mocks.alert_manager_service_api import (
|
|
5
5
|
AlertManagerServiceApiMock,
|
|
6
6
|
)
|
|
@@ -79,10 +79,6 @@ from qwak_services_mock.mocks.system_secret_service import SystemSecretServiceMo
|
|
|
79
79
|
from qwak_services_mock.mocks.user_application_instance_service_api import (
|
|
80
80
|
UserApplicationInstanceServiceApiMock,
|
|
81
81
|
)
|
|
82
|
-
from qwak_services_mock.mocks.vector_serving_api import VectorServingServiceMock
|
|
83
|
-
from qwak_services_mock.mocks.vectors_management_api import (
|
|
84
|
-
VectorCollectionManagementServiceMock,
|
|
85
|
-
)
|
|
86
82
|
|
|
87
83
|
|
|
88
84
|
@dataclasses.dataclass
|
|
@@ -118,9 +114,7 @@ class QwakMocks:
|
|
|
118
114
|
fs_feature_sets_service: FeatureSetServiceMock
|
|
119
115
|
instance_templates_service: InstanceTemplateManagementServiceMock
|
|
120
116
|
alerts_registry_service: AlertsRegistryServiceApiMock
|
|
121
|
-
workspace_manager_service:
|
|
122
|
-
vector_serving_service: VectorServingServiceMock
|
|
123
|
-
vector_collection_service: VectorCollectionManagementServiceMock
|
|
117
|
+
workspace_manager_service: WorkspaceManagerServiceMock
|
|
124
118
|
execution_management_service: ExecutionManagementServiceMock
|
|
125
119
|
system_secret_service: SystemSecretServiceMock
|
|
126
120
|
integration_management_service: IntegrationManagementServiceMock
|
|
@@ -116,12 +116,6 @@ from _qwak_proto.qwak.self_service.user.v1.user_service_pb2_grpc import (
|
|
|
116
116
|
from _qwak_proto.qwak.service_discovery.service_discovery_location_service_pb2_grpc import (
|
|
117
117
|
add_LocationDiscoveryServiceServicer_to_server,
|
|
118
118
|
)
|
|
119
|
-
from _qwak_proto.qwak.vectors.v1.collection.collection_service_pb2_grpc import (
|
|
120
|
-
add_VectorCollectionServiceServicer_to_server,
|
|
121
|
-
)
|
|
122
|
-
from _qwak_proto.qwak.vectors.v1.vector_service_pb2_grpc import (
|
|
123
|
-
add_VectorServiceServicer_to_server,
|
|
124
|
-
)
|
|
125
119
|
from _qwak_proto.qwak.workspace.workspace_service_pb2_grpc import (
|
|
126
120
|
add_WorkspaceManagementServiceServicer_to_server,
|
|
127
121
|
)
|
|
@@ -205,10 +199,6 @@ from qwak_services_mock.mocks.system_secret_service import SystemSecretServiceMo
|
|
|
205
199
|
from qwak_services_mock.mocks.user_application_instance_service_api import (
|
|
206
200
|
UserApplicationInstanceServiceApiMock,
|
|
207
201
|
)
|
|
208
|
-
from qwak_services_mock.mocks.vector_serving_api import VectorServingServiceMock
|
|
209
|
-
from qwak_services_mock.mocks.vectors_management_api import (
|
|
210
|
-
VectorCollectionManagementServiceMock,
|
|
211
|
-
)
|
|
212
202
|
from qwak_services_mock.mocks.workspace_manager_service_mock import (
|
|
213
203
|
WorkspaceManagerServiceMock,
|
|
214
204
|
)
|
|
@@ -255,7 +245,6 @@ def qwak_container():
|
|
|
255
245
|
project,
|
|
256
246
|
secret_service,
|
|
257
247
|
user_application_instance,
|
|
258
|
-
vector_store,
|
|
259
248
|
workspace_manager,
|
|
260
249
|
)
|
|
261
250
|
from qwak.clients.administration import (
|
|
@@ -269,7 +258,6 @@ def qwak_container():
|
|
|
269
258
|
from qwak.clients.integration_management import integration_manager_client
|
|
270
259
|
from qwak.clients.prompt_manager import prompt_manager_client
|
|
271
260
|
from qwak.clients.system_secret import system_secret_client
|
|
272
|
-
from qwak.vector_store.utils import upsert_utils
|
|
273
261
|
|
|
274
262
|
container.wire(
|
|
275
263
|
packages=[
|
|
@@ -299,8 +287,6 @@ def qwak_container():
|
|
|
299
287
|
secret_service,
|
|
300
288
|
alerts_registry,
|
|
301
289
|
workspace_manager,
|
|
302
|
-
vector_store,
|
|
303
|
-
upsert_utils,
|
|
304
290
|
integration_manager_client,
|
|
305
291
|
system_secret_client,
|
|
306
292
|
prompt_manager_client,
|
|
@@ -492,16 +478,6 @@ def attach_servicers(free_port, server):
|
|
|
492
478
|
WorkspaceManagerServiceMock,
|
|
493
479
|
add_WorkspaceManagementServiceServicer_to_server,
|
|
494
480
|
),
|
|
495
|
-
(
|
|
496
|
-
"vector_serving_service",
|
|
497
|
-
VectorServingServiceMock,
|
|
498
|
-
add_VectorServiceServicer_to_server,
|
|
499
|
-
),
|
|
500
|
-
(
|
|
501
|
-
"vector_collection_service",
|
|
502
|
-
VectorCollectionManagementServiceMock,
|
|
503
|
-
add_VectorCollectionServiceServicer_to_server,
|
|
504
|
-
),
|
|
505
481
|
(
|
|
506
482
|
"execution_management_service",
|
|
507
483
|
ExecutionManagementServiceMock,
|
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
from typing import List, Optional
|
|
2
|
-
|
|
3
|
-
import grpc
|
|
4
|
-
from _qwak_proto.qwak.vectors.v1.collection.collection_pb2 import (
|
|
5
|
-
VectorCollection,
|
|
6
|
-
VectorCollectionMetric,
|
|
7
|
-
VectorCollectionSpec,
|
|
8
|
-
VectorCollectionVectorizer,
|
|
9
|
-
)
|
|
10
|
-
from _qwak_proto.qwak.vectors.v1.collection.collection_service_pb2 import (
|
|
11
|
-
CreateCollectionRequest,
|
|
12
|
-
DeleteCollectionByIdRequest,
|
|
13
|
-
DeleteCollectionByNameRequest,
|
|
14
|
-
GetCollectionByIdRequest,
|
|
15
|
-
GetCollectionByNameRequest,
|
|
16
|
-
ListCollectionsRequest,
|
|
17
|
-
)
|
|
18
|
-
from _qwak_proto.qwak.vectors.v1.collection.collection_service_pb2_grpc import (
|
|
19
|
-
VectorCollectionServiceStub,
|
|
20
|
-
)
|
|
21
|
-
from dependency_injector.wiring import Provide, inject
|
|
22
|
-
from qwak.exceptions import QwakException
|
|
23
|
-
from qwak.inner.di_configuration import QwakContainer
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
class VectorManagementClient:
|
|
27
|
-
@inject
|
|
28
|
-
def __init__(self, grpc_channel=Provide[QwakContainer.core_grpc_channel]):
|
|
29
|
-
self._vector_management_service: VectorCollectionServiceStub = (
|
|
30
|
-
VectorCollectionServiceStub(grpc_channel)
|
|
31
|
-
)
|
|
32
|
-
|
|
33
|
-
def create_collection(
|
|
34
|
-
self,
|
|
35
|
-
name: str,
|
|
36
|
-
dimension: int,
|
|
37
|
-
description: str = None,
|
|
38
|
-
metric: VectorCollectionMetric = VectorCollectionMetric.COLLECTION_METRIC_L2_SQUARED,
|
|
39
|
-
vectorizer: Optional[str] = None,
|
|
40
|
-
multi_tenant: bool = False,
|
|
41
|
-
) -> VectorCollection:
|
|
42
|
-
"""
|
|
43
|
-
Create a collection
|
|
44
|
-
"""
|
|
45
|
-
try:
|
|
46
|
-
return self._vector_management_service.CreateCollection(
|
|
47
|
-
CreateCollectionRequest(
|
|
48
|
-
collection_spec=VectorCollectionSpec(
|
|
49
|
-
name=name,
|
|
50
|
-
description=description,
|
|
51
|
-
vectorizer=VectorCollectionVectorizer(
|
|
52
|
-
qwak_model_name=vectorizer
|
|
53
|
-
),
|
|
54
|
-
metric=metric,
|
|
55
|
-
dimension=dimension,
|
|
56
|
-
multi_tenancy_enabled=multi_tenant,
|
|
57
|
-
)
|
|
58
|
-
)
|
|
59
|
-
).vector_collection
|
|
60
|
-
|
|
61
|
-
except grpc.RpcError as e:
|
|
62
|
-
raise QwakException(f"Failed to create collection: {e.details()}")
|
|
63
|
-
|
|
64
|
-
def list_collections(self) -> List[VectorCollection]:
|
|
65
|
-
"""
|
|
66
|
-
List all vector collections
|
|
67
|
-
"""
|
|
68
|
-
try:
|
|
69
|
-
return self._vector_management_service.ListCollections(
|
|
70
|
-
ListCollectionsRequest()
|
|
71
|
-
).vector_collections
|
|
72
|
-
|
|
73
|
-
except grpc.RpcError as e:
|
|
74
|
-
raise QwakException(f"Failed to list collections: {e.details()}")
|
|
75
|
-
|
|
76
|
-
def get_collection_by_name(self, name: str) -> VectorCollection:
|
|
77
|
-
"""
|
|
78
|
-
Get vector collection by name
|
|
79
|
-
"""
|
|
80
|
-
try:
|
|
81
|
-
return self._vector_management_service.GetCollectionByName(
|
|
82
|
-
GetCollectionByNameRequest(name=name)
|
|
83
|
-
).vector_collection
|
|
84
|
-
except grpc.RpcError as e:
|
|
85
|
-
raise QwakException(
|
|
86
|
-
f"Failed to get collection by name '{name}': {e.details()}"
|
|
87
|
-
)
|
|
88
|
-
|
|
89
|
-
def get_collection_by_id(self, id: str) -> VectorCollection:
|
|
90
|
-
"""
|
|
91
|
-
Get vector collection by id
|
|
92
|
-
"""
|
|
93
|
-
try:
|
|
94
|
-
return self._vector_management_service.GetCollectionById(
|
|
95
|
-
GetCollectionByIdRequest(id=id)
|
|
96
|
-
).vector_collection
|
|
97
|
-
except grpc.RpcError as e:
|
|
98
|
-
raise QwakException(f"Failed to get collection by id '{id}': {e.details()}")
|
|
99
|
-
|
|
100
|
-
def delete_collection_by_id(self, id: str) -> None:
|
|
101
|
-
"""
|
|
102
|
-
Delete vector collection by id
|
|
103
|
-
"""
|
|
104
|
-
try:
|
|
105
|
-
self._vector_management_service.DeleteCollectionById(
|
|
106
|
-
DeleteCollectionByIdRequest(id=id)
|
|
107
|
-
)
|
|
108
|
-
except grpc.RpcError as e:
|
|
109
|
-
raise QwakException(
|
|
110
|
-
f"Failed to delete collection by id '{id}': {e.details()}"
|
|
111
|
-
)
|
|
112
|
-
|
|
113
|
-
def delete_collection_by_name(self, name: str) -> None:
|
|
114
|
-
"""
|
|
115
|
-
Delete vector collection by id
|
|
116
|
-
"""
|
|
117
|
-
try:
|
|
118
|
-
self._vector_management_service.DeleteCollectionByName(
|
|
119
|
-
DeleteCollectionByNameRequest(name=name)
|
|
120
|
-
)
|
|
121
|
-
except grpc.RpcError as e:
|
|
122
|
-
raise QwakException(
|
|
123
|
-
f"Failed to delete collection by name '{name}': {e.details()}"
|
|
124
|
-
)
|
|
@@ -1,156 +0,0 @@
|
|
|
1
|
-
from typing import List, Optional
|
|
2
|
-
|
|
3
|
-
import grpc
|
|
4
|
-
from _qwak_proto.qwak.vectors.v1.filters_pb2 import Filter as ProtoFilter
|
|
5
|
-
from _qwak_proto.qwak.vectors.v1.vector_pb2 import (
|
|
6
|
-
DoubleVector,
|
|
7
|
-
SearchResult,
|
|
8
|
-
StoredVector,
|
|
9
|
-
VectorIdentifier,
|
|
10
|
-
)
|
|
11
|
-
from _qwak_proto.qwak.vectors.v1.vector_service_pb2 import (
|
|
12
|
-
DeleteVectorsRequest,
|
|
13
|
-
FetchVectorRequest,
|
|
14
|
-
SearchSimilarVectorsRequest,
|
|
15
|
-
UpsertVectorsRequest,
|
|
16
|
-
)
|
|
17
|
-
from _qwak_proto.qwak.vectors.v1.vector_service_pb2_grpc import VectorServiceStub
|
|
18
|
-
from qwak.clients._inner.edge_communications import get_endpoint_url
|
|
19
|
-
from qwak.exceptions import QwakException, QwakNotFoundException
|
|
20
|
-
from qwak.inner.tool.grpc.grpc_tools import create_grpc_channel
|
|
21
|
-
from typeguard import typechecked
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
class VectorServingClient:
|
|
25
|
-
def __init__(
|
|
26
|
-
self,
|
|
27
|
-
edge_services_url: Optional[str] = None,
|
|
28
|
-
environment_id: Optional[str] = None,
|
|
29
|
-
):
|
|
30
|
-
edge_services_url = get_endpoint_url(edge_services_url, environment_id)
|
|
31
|
-
self._edge_services_url = edge_services_url
|
|
32
|
-
|
|
33
|
-
grpc_channel = create_grpc_channel(
|
|
34
|
-
url=edge_services_url,
|
|
35
|
-
enable_ssl=False if edge_services_url.startswith("localhost") else True,
|
|
36
|
-
status_for_retry=(
|
|
37
|
-
grpc.StatusCode.UNAVAILABLE,
|
|
38
|
-
grpc.StatusCode.DEADLINE_EXCEEDED,
|
|
39
|
-
grpc.StatusCode.INTERNAL,
|
|
40
|
-
),
|
|
41
|
-
backoff_options={"init_backoff_ms": 250},
|
|
42
|
-
)
|
|
43
|
-
|
|
44
|
-
self._vector_serving_service = VectorServiceStub(grpc_channel)
|
|
45
|
-
|
|
46
|
-
@typechecked
|
|
47
|
-
def search(
|
|
48
|
-
self,
|
|
49
|
-
collection_name: str,
|
|
50
|
-
vector: List[float],
|
|
51
|
-
properties: List[str],
|
|
52
|
-
top_results: int = 1,
|
|
53
|
-
include_id: bool = True,
|
|
54
|
-
include_vector: bool = False,
|
|
55
|
-
include_distance: bool = False,
|
|
56
|
-
filters: Optional[ProtoFilter] = None,
|
|
57
|
-
tenant_id: Optional[str] = None,
|
|
58
|
-
) -> List[SearchResult]:
|
|
59
|
-
"""
|
|
60
|
-
Search for similar vectors
|
|
61
|
-
"""
|
|
62
|
-
request: SearchSimilarVectorsRequest
|
|
63
|
-
if tenant_id is not None:
|
|
64
|
-
request = SearchSimilarVectorsRequest(
|
|
65
|
-
collection_name=collection_name,
|
|
66
|
-
reference_vector=DoubleVector(element=vector),
|
|
67
|
-
properties=properties,
|
|
68
|
-
max_results=top_results,
|
|
69
|
-
filter=filters,
|
|
70
|
-
include_id=include_id,
|
|
71
|
-
include_vector=include_vector,
|
|
72
|
-
include_distance=include_distance,
|
|
73
|
-
tenant_id=tenant_id,
|
|
74
|
-
)
|
|
75
|
-
else:
|
|
76
|
-
request = SearchSimilarVectorsRequest(
|
|
77
|
-
collection_name=collection_name,
|
|
78
|
-
reference_vector=DoubleVector(element=vector),
|
|
79
|
-
properties=properties,
|
|
80
|
-
max_results=top_results,
|
|
81
|
-
filter=filters,
|
|
82
|
-
include_id=include_id,
|
|
83
|
-
include_vector=include_vector,
|
|
84
|
-
include_distance=include_distance,
|
|
85
|
-
)
|
|
86
|
-
|
|
87
|
-
try:
|
|
88
|
-
return list(
|
|
89
|
-
self._vector_serving_service.SearchSimilarVectors(
|
|
90
|
-
request
|
|
91
|
-
).search_results
|
|
92
|
-
)
|
|
93
|
-
|
|
94
|
-
except grpc.RpcError as e:
|
|
95
|
-
raise QwakException(
|
|
96
|
-
f"Failed to query collection '{collection_name}' for vector '{str(vector)}': {repr(e)}"
|
|
97
|
-
)
|
|
98
|
-
|
|
99
|
-
@typechecked
|
|
100
|
-
def upsert_vectors(self, collection_name: str, vectors: List[StoredVector]) -> None:
|
|
101
|
-
"""
|
|
102
|
-
Upsert vectors to a collection
|
|
103
|
-
"""
|
|
104
|
-
try:
|
|
105
|
-
self._vector_serving_service.UpsertVectors(
|
|
106
|
-
UpsertVectorsRequest(
|
|
107
|
-
collection_name=collection_name,
|
|
108
|
-
vector=vectors,
|
|
109
|
-
)
|
|
110
|
-
)
|
|
111
|
-
|
|
112
|
-
except grpc.RpcError as e:
|
|
113
|
-
raise QwakException(f"Failed to upsert, got: {repr(e)}")
|
|
114
|
-
|
|
115
|
-
@typechecked
|
|
116
|
-
def delete_vectors(
|
|
117
|
-
self, collection_name: str, vector_identifiers: List[VectorIdentifier]
|
|
118
|
-
) -> int:
|
|
119
|
-
"""
|
|
120
|
-
Delete vectors from a collection
|
|
121
|
-
"""
|
|
122
|
-
try:
|
|
123
|
-
return self._vector_serving_service.DeleteVectors(
|
|
124
|
-
DeleteVectorsRequest(
|
|
125
|
-
collection_name=collection_name,
|
|
126
|
-
vector_identifiers=vector_identifiers,
|
|
127
|
-
)
|
|
128
|
-
).num_vectors_deleted
|
|
129
|
-
|
|
130
|
-
except grpc.RpcError as e:
|
|
131
|
-
raise QwakException(
|
|
132
|
-
f"Failed to delete vectors by id '{str(vector_identifiers)}': {repr(e)}"
|
|
133
|
-
)
|
|
134
|
-
|
|
135
|
-
@typechecked
|
|
136
|
-
def fetch_vector(
|
|
137
|
-
self, collection_name: str, vector_identifier: VectorIdentifier
|
|
138
|
-
) -> StoredVector:
|
|
139
|
-
"""
|
|
140
|
-
Fetch a vector from a collection
|
|
141
|
-
"""
|
|
142
|
-
try:
|
|
143
|
-
return self._vector_serving_service.FetchVector(
|
|
144
|
-
FetchVectorRequest(
|
|
145
|
-
collection_name=collection_name, vector_identifier=vector_identifier
|
|
146
|
-
)
|
|
147
|
-
).vector
|
|
148
|
-
|
|
149
|
-
except grpc.RpcError as e:
|
|
150
|
-
if e.args[0].code.name == "NOT_FOUND":
|
|
151
|
-
raise QwakNotFoundException(
|
|
152
|
-
f"Could not find vector {repr(vector_identifier)} in collection {collection_name}"
|
|
153
|
-
)
|
|
154
|
-
raise QwakException(
|
|
155
|
-
f"Failed to get vector by ID '{vector_identifier}': {repr(e)}"
|
|
156
|
-
)
|
qwak/vector_store/__init__.py
DELETED