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_uvicorn_available(): return is_package_available("uvicorn")