nexaai 1.0.21rc1__cp310-cp310-win_amd64.whl → 1.0.21rc2__cp310-cp310-win_amd64.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.
Potentially problematic release.
This version of nexaai might be problematic. Click here for more details.
- nexaai/_stub.cp310-win_amd64.pyd +0 -0
- nexaai/_version.py +1 -1
- nexaai/binds/common_bind.cp310-win_amd64.pyd +0 -0
- nexaai/binds/cpu_gpu/ggml-base.dll +0 -0
- nexaai/binds/cpu_gpu/ggml-cpu.dll +0 -0
- nexaai/binds/cpu_gpu/ggml-cuda.dll +0 -0
- nexaai/binds/cpu_gpu/ggml-vulkan.dll +0 -0
- nexaai/binds/cpu_gpu/ggml.dll +0 -0
- nexaai/binds/cpu_gpu/mtmd.dll +0 -0
- nexaai/binds/cpu_gpu/nexa_cpu_gpu.dll +0 -0
- nexaai/binds/cpu_gpu/nexa_plugin.dll +0 -0
- nexaai/binds/embedder_bind.cp310-win_amd64.pyd +0 -0
- nexaai/binds/llm_bind.cp310-win_amd64.pyd +0 -0
- nexaai/binds/nexa_bridge.dll +0 -0
- nexaai/binds/nexaml/ggml-base.dll +0 -0
- nexaai/binds/nexaml/ggml-cpu.dll +0 -0
- nexaai/binds/nexaml/ggml-cuda.dll +0 -0
- nexaai/binds/nexaml/ggml-vulkan.dll +0 -0
- nexaai/binds/nexaml/ggml.dll +0 -0
- nexaai/binds/nexaml/nexa_plugin.dll +0 -0
- nexaai/binds/vlm_bind.cp310-win_amd64.pyd +0 -0
- nexaai/utils/manifest_utils.py +10 -6
- nexaai/utils/model_manager.py +55 -0
- {nexaai-1.0.21rc1.dist-info → nexaai-1.0.21rc2.dist-info}/METADATA +1 -1
- {nexaai-1.0.21rc1.dist-info → nexaai-1.0.21rc2.dist-info}/RECORD +27 -27
- {nexaai-1.0.21rc1.dist-info → nexaai-1.0.21rc2.dist-info}/WHEEL +0 -0
- {nexaai-1.0.21rc1.dist-info → nexaai-1.0.21rc2.dist-info}/top_level.txt +0 -0
nexaai/_stub.cp310-win_amd64.pyd
CHANGED
|
Binary file
|
nexaai/_version.py
CHANGED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
nexaai/binds/cpu_gpu/ggml.dll
CHANGED
|
Binary file
|
nexaai/binds/cpu_gpu/mtmd.dll
CHANGED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
nexaai/binds/nexa_bridge.dll
CHANGED
|
Binary file
|
|
Binary file
|
nexaai/binds/nexaml/ggml-cpu.dll
CHANGED
|
Binary file
|
|
Binary file
|
|
Binary file
|
nexaai/binds/nexaml/ggml.dll
CHANGED
|
Binary file
|
|
Binary file
|
|
Binary file
|
nexaai/utils/manifest_utils.py
CHANGED
|
@@ -157,12 +157,16 @@ def create_gguf_manifest(repo_id: str, files: List[str], directory_path: str, ol
|
|
|
157
157
|
# Use the new enum-based quantization extraction
|
|
158
158
|
quantization_type = extract_quantization_from_filename(current_file_name)
|
|
159
159
|
quant_level = quantization_type.value if quantization_type else "UNKNOWN"
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
160
|
+
|
|
161
|
+
# FIXME: hardcode to handle the multiple mmproj files problem
|
|
162
|
+
if quant_level == "UNKNOWN" and "mmproj" in current_file_name.lower():
|
|
163
|
+
pass
|
|
164
|
+
else:
|
|
165
|
+
model_files[quant_level] = {
|
|
166
|
+
"Name": current_file_name,
|
|
167
|
+
"Downloaded": True,
|
|
168
|
+
"Size": file_size
|
|
169
|
+
}
|
|
166
170
|
|
|
167
171
|
# Determine PluginId with priority: kwargs > downloaded_manifest > model_file_type > default
|
|
168
172
|
plugin_id = kwargs.get('plugin_id')
|
nexaai/utils/model_manager.py
CHANGED
|
@@ -410,6 +410,20 @@ def _remove_specific_file(target_model: DownloadedModel, file_name: str, local_d
|
|
|
410
410
|
except OSError:
|
|
411
411
|
file_size = 0
|
|
412
412
|
|
|
413
|
+
# Check if we should remove entire folder instead (for .gguf files)
|
|
414
|
+
# If removing a .gguf file and no other non-mmproj .gguf files remain, remove entire folder
|
|
415
|
+
if file_name.endswith('.gguf'):
|
|
416
|
+
updated_files = [f for f in target_model.files if f != file_name]
|
|
417
|
+
# Find remaining .gguf files that don't contain "mmproj" in filename
|
|
418
|
+
remaining_non_mmproj_gguf = [
|
|
419
|
+
f for f in updated_files
|
|
420
|
+
if f.endswith('.gguf') and 'mmproj' not in f.lower()
|
|
421
|
+
]
|
|
422
|
+
|
|
423
|
+
# If no non-mmproj .gguf files remain, remove entire repository
|
|
424
|
+
if len(remaining_non_mmproj_gguf) == 0:
|
|
425
|
+
return _remove_entire_repository(target_model, local_dir)
|
|
426
|
+
|
|
413
427
|
# Remove the file
|
|
414
428
|
try:
|
|
415
429
|
os.remove(file_path)
|
|
@@ -846,6 +860,41 @@ class HuggingFaceDownloader:
|
|
|
846
860
|
pass
|
|
847
861
|
return {}
|
|
848
862
|
|
|
863
|
+
def _download_manifest_if_needed(self, repo_id: str, local_dir: str) -> bool:
|
|
864
|
+
"""
|
|
865
|
+
Download nexa.manifest from the repository if it doesn't exist locally.
|
|
866
|
+
|
|
867
|
+
Args:
|
|
868
|
+
repo_id: Repository ID
|
|
869
|
+
local_dir: Local directory where the manifest should be saved
|
|
870
|
+
|
|
871
|
+
Returns:
|
|
872
|
+
bool: True if manifest was downloaded or already exists, False if not found in repo
|
|
873
|
+
"""
|
|
874
|
+
manifest_path = os.path.join(local_dir, 'nexa.manifest')
|
|
875
|
+
|
|
876
|
+
# Check if manifest already exists locally
|
|
877
|
+
if os.path.exists(manifest_path):
|
|
878
|
+
return True
|
|
879
|
+
|
|
880
|
+
# Try to download nexa.manifest from the repository
|
|
881
|
+
try:
|
|
882
|
+
print(f"[INFO] Attempting to download nexa.manifest from {repo_id}...")
|
|
883
|
+
self.api.hf_hub_download(
|
|
884
|
+
repo_id=repo_id,
|
|
885
|
+
filename='nexa.manifest',
|
|
886
|
+
local_dir=local_dir,
|
|
887
|
+
local_dir_use_symlinks=False,
|
|
888
|
+
token=self.token,
|
|
889
|
+
force_download=False
|
|
890
|
+
)
|
|
891
|
+
print(f"[OK] Successfully downloaded nexa.manifest from {repo_id}")
|
|
892
|
+
return True
|
|
893
|
+
except Exception as e:
|
|
894
|
+
# Manifest doesn't exist in repo or other error - this is fine, we'll create it
|
|
895
|
+
print(f"[INFO] nexa.manifest not found in {repo_id}, will create locally")
|
|
896
|
+
return False
|
|
897
|
+
|
|
849
898
|
def _fetch_and_save_metadata(self, repo_id: str, local_dir: str, is_mmproj: bool = False, file_name: Optional[Union[str, List[str]]] = None, **kwargs) -> None:
|
|
850
899
|
"""Fetch model info and save metadata after successful download."""
|
|
851
900
|
# Initialize metadata with defaults to ensure manifest is always created
|
|
@@ -946,6 +995,9 @@ class HuggingFaceDownloader:
|
|
|
946
995
|
if progress_tracker:
|
|
947
996
|
progress_tracker.stop_tracking()
|
|
948
997
|
|
|
998
|
+
# Download nexa.manifest from repo if it doesn't exist locally
|
|
999
|
+
self._download_manifest_if_needed(repo_id, file_local_dir)
|
|
1000
|
+
|
|
949
1001
|
# Save metadata after successful download
|
|
950
1002
|
self._fetch_and_save_metadata(repo_id, file_local_dir, self._current_is_mmproj, self._current_file_name, **kwargs)
|
|
951
1003
|
|
|
@@ -1055,6 +1107,9 @@ class HuggingFaceDownloader:
|
|
|
1055
1107
|
if progress_tracker:
|
|
1056
1108
|
progress_tracker.stop_tracking()
|
|
1057
1109
|
|
|
1110
|
+
# Download nexa.manifest from repo if it doesn't exist locally
|
|
1111
|
+
self._download_manifest_if_needed(repo_id, repo_local_dir)
|
|
1112
|
+
|
|
1058
1113
|
# Save metadata after successful download
|
|
1059
1114
|
self._fetch_and_save_metadata(repo_id, repo_local_dir, self._current_is_mmproj, self._current_file_name, **kwargs)
|
|
1060
1115
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
nexaai/__init__.py,sha256=Yt2YPVcRfwdA6DQoUR4ZI34CHBUYoY2cVsrG7Zp6IrI,2516
|
|
2
|
-
nexaai/_stub.cp310-win_amd64.pyd,sha256=
|
|
3
|
-
nexaai/_version.py,sha256=
|
|
2
|
+
nexaai/_stub.cp310-win_amd64.pyd,sha256=s9lKUQQYMxt6aJWxxMYb5LHq80Em0sCz5pQGrQjSIb8,10752
|
|
3
|
+
nexaai/_version.py,sha256=RntcW2nBfo_nNGJb6146ZZwHwjDCavL1Tj1XtV9VmJI,147
|
|
4
4
|
nexaai/asr.py,sha256=_fsGaxpiU137bUtO5ujtFSYCI1RLsyeEm3Gf4GhHVRk,2118
|
|
5
5
|
nexaai/base.py,sha256=qQBCiQVNzgpkQjZX9aiFDEdbAAe56TROKC3WnWra2Zg,1021
|
|
6
6
|
nexaai/common.py,sha256=muQqFY-WllwL5IO83tImexbuUcoEQsKg73u4gWL2lNs,3548
|
|
@@ -18,29 +18,29 @@ nexaai/asr_impl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
|
18
18
|
nexaai/asr_impl/mlx_asr_impl.py,sha256=XwMX3LYMeulp8cDS0TCCYcjvttFHAyDWQ_oMvABwQmI,3349
|
|
19
19
|
nexaai/asr_impl/pybind_asr_impl.py,sha256=20o5SOPzhF9x41ra8L_qIM7YxCkYeLb5csSrNde-dds,1560
|
|
20
20
|
nexaai/binds/__init__.py,sha256=ENl-uoIF9-3XGIXitVgZ2QmJ6p7Yet4h1-X7nUDZ0Hk,108
|
|
21
|
-
nexaai/binds/common_bind.cp310-win_amd64.pyd,sha256=
|
|
22
|
-
nexaai/binds/embedder_bind.cp310-win_amd64.pyd,sha256=
|
|
21
|
+
nexaai/binds/common_bind.cp310-win_amd64.pyd,sha256=hI07QkGT4tWMoWA0zHZNEZh0ToslONCJxj5HMPqqbnc,205824
|
|
22
|
+
nexaai/binds/embedder_bind.cp310-win_amd64.pyd,sha256=dM2dndm4Ch5F391i90d2ZF8U9tADmLCChzwpaj18oqk,182784
|
|
23
23
|
nexaai/binds/libcrypto-3-x64.dll,sha256=X7hDuQPMn6eRe58dTGJxTmRPKFWgd5i6Gjoy9QPLmPg,7315968
|
|
24
24
|
nexaai/binds/libssl-3-x64.dll,sha256=GRw0cOaGUaR2QHRvBFuU_9S9iNgkyVgm0NIpZMnReAw,1313792
|
|
25
|
-
nexaai/binds/llm_bind.cp310-win_amd64.pyd,sha256=
|
|
26
|
-
nexaai/binds/nexa_bridge.dll,sha256=
|
|
27
|
-
nexaai/binds/vlm_bind.cp310-win_amd64.pyd,sha256=
|
|
28
|
-
nexaai/binds/cpu_gpu/ggml-base.dll,sha256
|
|
29
|
-
nexaai/binds/cpu_gpu/ggml-cpu.dll,sha256=
|
|
30
|
-
nexaai/binds/cpu_gpu/ggml-cuda.dll,sha256=
|
|
31
|
-
nexaai/binds/cpu_gpu/ggml-vulkan.dll,sha256=
|
|
32
|
-
nexaai/binds/cpu_gpu/ggml.dll,sha256=
|
|
33
|
-
nexaai/binds/cpu_gpu/mtmd.dll,sha256=
|
|
34
|
-
nexaai/binds/cpu_gpu/nexa_cpu_gpu.dll,sha256=
|
|
35
|
-
nexaai/binds/cpu_gpu/nexa_plugin.dll,sha256=
|
|
36
|
-
nexaai/binds/nexaml/ggml-base.dll,sha256
|
|
37
|
-
nexaai/binds/nexaml/ggml-cpu.dll,sha256=
|
|
38
|
-
nexaai/binds/nexaml/ggml-cuda.dll,sha256=
|
|
39
|
-
nexaai/binds/nexaml/ggml-vulkan.dll,sha256=
|
|
40
|
-
nexaai/binds/nexaml/ggml.dll,sha256=
|
|
25
|
+
nexaai/binds/llm_bind.cp310-win_amd64.pyd,sha256=DJvEg2tgTcpOvS1NJE0kSkd8hIvaQpSFlmUoTpS2xsU,162816
|
|
26
|
+
nexaai/binds/nexa_bridge.dll,sha256=JMlu4matSkWSfqgnLaaJ4dB4uu0THI8aAdTATlD5VhI,187904
|
|
27
|
+
nexaai/binds/vlm_bind.cp310-win_amd64.pyd,sha256=qBOnkTT7F2FJKOaD8utj2HmCbtDWoI3HFvTeQlAg2aw,170496
|
|
28
|
+
nexaai/binds/cpu_gpu/ggml-base.dll,sha256=-0MMrq_hqJXMk3FSymyq4AoiMk_1r97HT-c_bR55A5w,532480
|
|
29
|
+
nexaai/binds/cpu_gpu/ggml-cpu.dll,sha256=B81v_5sWbOumvKzHRBnK1UWvDsdxmCmOJSn5r-7qy84,672768
|
|
30
|
+
nexaai/binds/cpu_gpu/ggml-cuda.dll,sha256=NH-HpsN_7UYfUy4Q9X2JYH7d-TNt7iRYxfAGpX4WpZY,313528832
|
|
31
|
+
nexaai/binds/cpu_gpu/ggml-vulkan.dll,sha256=iJPrRl--pkNcDc0ZtdW2pw9piHDPd0D252VqgIOhMXo,36627968
|
|
32
|
+
nexaai/binds/cpu_gpu/ggml.dll,sha256=gwZrKugz4jQrltFUeBjRJzvnOEOd6JgviggGEdCYBL8,66560
|
|
33
|
+
nexaai/binds/cpu_gpu/mtmd.dll,sha256=v8UkuqbMFoU3Mot8C844ne8s8eagvtgh0idxk0flMXs,561152
|
|
34
|
+
nexaai/binds/cpu_gpu/nexa_cpu_gpu.dll,sha256=uoKWytNu82wk2_Tjm3xZI3lAKJhn8uTS7Kklsc4Mx30,1611776
|
|
35
|
+
nexaai/binds/cpu_gpu/nexa_plugin.dll,sha256=xCc9UoKj7kyxA2esE8teCo5yARoI5769cME9f_O4CeY,1411072
|
|
36
|
+
nexaai/binds/nexaml/ggml-base.dll,sha256=-0MMrq_hqJXMk3FSymyq4AoiMk_1r97HT-c_bR55A5w,532480
|
|
37
|
+
nexaai/binds/nexaml/ggml-cpu.dll,sha256=B81v_5sWbOumvKzHRBnK1UWvDsdxmCmOJSn5r-7qy84,672768
|
|
38
|
+
nexaai/binds/nexaml/ggml-cuda.dll,sha256=NH-HpsN_7UYfUy4Q9X2JYH7d-TNt7iRYxfAGpX4WpZY,313528832
|
|
39
|
+
nexaai/binds/nexaml/ggml-vulkan.dll,sha256=iJPrRl--pkNcDc0ZtdW2pw9piHDPd0D252VqgIOhMXo,36627968
|
|
40
|
+
nexaai/binds/nexaml/ggml.dll,sha256=gwZrKugz4jQrltFUeBjRJzvnOEOd6JgviggGEdCYBL8,66560
|
|
41
41
|
nexaai/binds/nexaml/nexa-mm-process.dll,sha256=DDD5qPbelZAIrRWGggOd3Pg9U_fh_ZEYIplwqiyD5LY,4643328
|
|
42
42
|
nexaai/binds/nexaml/nexa-sampling.dll,sha256=Notkz287laSUG2_ED3oFXWVLJM3t7x_USkvX6wKVOLA,4265984
|
|
43
|
-
nexaai/binds/nexaml/nexa_plugin.dll,sha256=
|
|
43
|
+
nexaai/binds/nexaml/nexa_plugin.dll,sha256=UMKMlN-KbhGPQAFPBs3aL9KqyjeBW-R31bQEOPDK93g,601600
|
|
44
44
|
nexaai/binds/nexaml/nexaproc.dll,sha256=rRcdSfhkxnRwktXW4lp7Np8sNY_uefNXYwAmPp34AHg,2670080
|
|
45
45
|
nexaai/binds/nexaml/qwen3-vl.dll,sha256=KxwQ0PHvzM1zwLpH7vlNOlfaVzgEUHTfTV76e61KeyA,5873664
|
|
46
46
|
nexaai/binds/nexaml/qwen3vl-vision.dll,sha256=5AX4MtAOWTcXSAkS2qqvl2pFti4HR55dtkCaOO03Evc,1063424
|
|
@@ -63,15 +63,15 @@ nexaai/tts_impl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
|
63
63
|
nexaai/tts_impl/mlx_tts_impl.py,sha256=LcH9bVdIl3Q6lOzSUB_X2s-_nWFmlCl1yL7XSUK0fYI,3195
|
|
64
64
|
nexaai/tts_impl/pybind_tts_impl.py,sha256=n3z4zmPQayQJgAwcvETw0IBUCp8IYROuYFSg0tAy_8Y,1487
|
|
65
65
|
nexaai/utils/decode.py,sha256=0Z9jDH4ICzw4YXj8nD4L-sMouDaev-TISGRQ4KzidWE,421
|
|
66
|
-
nexaai/utils/manifest_utils.py,sha256=
|
|
67
|
-
nexaai/utils/model_manager.py,sha256=
|
|
66
|
+
nexaai/utils/manifest_utils.py,sha256=BoKqnI6N5CkEPTDZCRWSx7wga6aH8h6cr4nbff7gVwg,22020
|
|
67
|
+
nexaai/utils/model_manager.py,sha256=yxLaxOOhfMZ9i_2UnQ0qQSFLE-Rx9x9f_bGG5ut-nrk,63508
|
|
68
68
|
nexaai/utils/model_types.py,sha256=q2m7diYLOpLvRl1ixL2eMq5_kdTj8KqPBGWX4p6Ob08,1532
|
|
69
69
|
nexaai/utils/progress_tracker.py,sha256=BztrFqtjwNUmeREwZ5m7H6ZcrVzQEbpZfsxndWh4z0A,15778
|
|
70
70
|
nexaai/utils/quantization_utils.py,sha256=FxnZ6-uAE_bl_vQ5jsRXlpU0NBn-U4Y8iN9_O6aCdPA,8070
|
|
71
71
|
nexaai/vlm_impl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
72
72
|
nexaai/vlm_impl/mlx_vlm_impl.py,sha256=gI09QJcok68QG-36csXr3c2yPCZXTE0dlq1MUBEo_Ms,11091
|
|
73
73
|
nexaai/vlm_impl/pybind_vlm_impl.py,sha256=4qPt5C5m4y4kWD9EFfVbcAkMq2Dgd5EP9tYo6yZIxgo,10162
|
|
74
|
-
nexaai-1.0.
|
|
75
|
-
nexaai-1.0.
|
|
76
|
-
nexaai-1.0.
|
|
77
|
-
nexaai-1.0.
|
|
74
|
+
nexaai-1.0.21rc2.dist-info/METADATA,sha256=MzoQDZSvw3pwbFRRx2-3F1i9GcqVgYFZ-QR_PX8Tw-Y,1241
|
|
75
|
+
nexaai-1.0.21rc2.dist-info/WHEEL,sha256=KUuBC6lxAbHCKilKua8R9W_TM71_-9Sg5uEP3uDWcoU,101
|
|
76
|
+
nexaai-1.0.21rc2.dist-info/top_level.txt,sha256=LRE2YERlrZk2vfuygnSzsEeqSknnZbz3Z1MHyNmBU4w,7
|
|
77
|
+
nexaai-1.0.21rc2.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|