@@ -175,67 +175,48 @@ def _create_pip_update_command(package_name: str, compatible_version: str, is_de
175
175
176
176
@functools .lru_cache (1 )
177
177
def is_openvino_tokenizers_available ():
178
- _openvino_tokenizers_available = (
179
- importlib .util .find_spec ("openvino_tokenizers" ) is not None and _openvino_available
180
- )
181
- _openvino_tokenizers_version = "N/A"
182
- if _openvino_tokenizers_available :
183
- try :
184
- _openvino_tokenizers_version = importlib_metadata .version ("openvino_tokenizers" )
185
- except importlib_metadata .PackageNotFoundError :
186
- return False
187
-
188
- if _openvino_available and _openvino_tokenizers_available and _openvino_tokenizers_version != "N/A" :
189
- _is_ovt_dev_version = "dev" in _openvino_tokenizers_version
190
- try :
191
- _ov_version = importlib_metadata .version ("openvino" )
192
- except importlib_metadata .PackageNotFoundError :
193
- try :
194
- _ov_version = importlib_metadata .version ("openvino-nightly" )
195
- except importlib_metadata .PackageNotFoundError :
196
- _ov_version = _openvino_version
197
-
198
- _is_ov_dev_version = "dev" in _ov_version
199
- if _is_ovt_dev_version :
200
- _compatible_openvino_major_version , _ , _dev_date = _openvino_tokenizers_version .rsplit ("." , 2 )
201
- _compatible_ov_version = _compatible_openvino_major_version + "." + _dev_date
202
- _compatible_ovt_version = _ov_version .replace ("dev" , "0.dev" )
203
- else :
204
- _compatible_openvino_major_version = _openvino_tokenizers_version .rsplit ("." , 1 )[0 ]
205
- _compatible_ov_version = _compatible_openvino_major_version
206
- if _is_ov_dev_version :
207
- _compatible_ovt_version = _ov_version .replace ("dev" , "0.dev" )
208
- else :
209
- _compatible_ovt_version = _ov_version + ".0"
210
-
211
- _update_ov_command = _create_pip_update_command (
212
- "openvino" , _compatible_ov_version , is_dev_version = _is_ovt_dev_version
178
+ if not is_openvino_available ():
179
+ return False
180
+
181
+ try :
182
+ import openvino_tokenizers
183
+ except ImportError :
184
+ logger .info (
185
+ "OpenVINO Tokenizers is not available, tokenizer won't be converted. To automatically "
186
+ "convert tokenizer during OpenVINO model export install OpenVINO Tokenizers.\n "
187
+ "For PyPI distribution of OpenVINO:\n "
188
+ "pip install openvino-tokenizers[transformers]\n "
189
+ "For pre-release OpenVINO version:\n "
190
+ "pip install --pre -U openvino openvino-tokenizers"
191
+ "--extra-index-url https://storage.openvinotoolkit.org/simple/wheels/nightly\n "
192
+ "For archive OpenVINO distribution:\n "
193
+ "pip install --no-deps openvino-tokenizers\n "
194
+ "For detailed installation instructions go to "
195
+ "https://github.com/openvinotoolkit/openvino_tokenizers/tree/master?tab=readme-ov-file#installation"
213
196
)
214
- _update_ovt_command = _create_pip_update_command (
215
- "openvino-tokenizers" , _compatible_ovt_version , is_dev_version = _is_ov_dev_version
197
+ return False
198
+
199
+ try :
200
+ openvino_tokenizers ._get_factory ()
201
+ except RuntimeError as e :
202
+ tokenizers_version = openvino_tokenizers .__version__
203
+ if tokenizers_version == "0.0.0.0" :
204
+ tokenizers_version = importlib_metadata .version ("openvino_tokenizers" ) or tokenizers_version
205
+ logger .warning (
206
+ "OpenVINO and OpenVINO Tokenizers versions are not binary compatible.\n "
207
+ f"OpenVINO version: { _openvino_version } \n "
208
+ f"OpenVINO Tokenizers version: { tokenizers_version } \n "
209
+ "First 3 numbers should be the same. Update OpenVINO Tokenizers to compatible version. "
210
+ "It is recommended to use the same day builds for pre-release version.\n "
211
+ "For archive installation of OpenVINO try to build OpenVINO Tokenizers from source: "
212
+ "https://github.com/openvinotoolkit/openvino_tokenizers/tree/master?tab=readme-ov-file"
213
+ "#build-and-install-from-source\n "
214
+ f"Error: { e } \n "
215
+ "Tokenizer won't be converted."
216
216
)
217
+ return False
217
218
218
- _openvino_tokenizers_available = _ov_version .startswith (_compatible_openvino_major_version )
219
-
220
- if not _openvino_tokenizers_available :
221
- logger .warning (
222
- "OpenVINO Tokenizers version is not compatible with OpenVINO version. "
223
- f"Installed OpenVINO version: { _ov_version } , "
224
- f"OpenVINO Tokenizers requires { _compatible_ov_version } . "
225
- "OpenVINO Tokenizers models will not be added during export. "
226
- f"Update OpenVINO with \n { _update_ov_command } \n "
227
- f"Or update OpenVINO Tokenizers with \n { _update_ovt_command } "
228
- )
229
- elif _ov_version != _compatible_ov_version :
230
- logger .info (
231
- "OpenVINO Tokenizers version is not aligned with OpenVINO version. "
232
- f"Installed OpenVINO version: { _ov_version } , "
233
- f"OpenVINO Tokenizers version: { _compatible_ov_version } . "
234
- "If you didn't get OpenVINO Tokenizer after model conversion "
235
- f"try to align libraries versions with one of two commands:\n { _update_ov_command } \n "
236
- f"Or\n { _update_ovt_command } "
237
- )
238
- return _openvino_tokenizers_available
219
+ return True
239
220
240
221
241
222
def is_nncf_available ():
0 commit comments