| import importlib.metadata |
| import importlib.util |
|
|
|
|
| def _is_package_available(name: str) -> bool: |
| return importlib.util.find_spec(name) is not None |
|
|
|
|
| def _get_package_version(name: str) -> str: |
| try: |
| return importlib.metadata.version(name) |
| except Exception: |
| return "0.0.0" |
|
|
|
|
| def is_fastapi_availble(): |
| return _is_package_available("fastapi") |
|
|
|
|
| def is_flash_attn2_available(): |
| return _is_package_available("flash_attn") and _get_package_version("flash_attn").startswith("2") |
|
|
|
|
| def is_jieba_available(): |
| return _is_package_available("jieba") |
|
|
|
|
| def is_matplotlib_available(): |
| return _is_package_available("matplotlib") |
|
|
|
|
| def is_nltk_available(): |
| return _is_package_available("nltk") |
|
|
|
|
| def is_requests_available(): |
| return _is_package_available("requests") |
|
|
|
|
| def is_rouge_available(): |
| return _is_package_available("rouge_chinese") |
|
|
|
|
| def is_starlette_available(): |
| return _is_package_available("sse_starlette") |
|
|
|
|
| def is_unsloth_available(): |
| return _is_package_available("unsloth") |
|
|
|
|
| def is_uvicorn_available(): |
| return _is_package_available("uvicorn") |
|
|