mirror of
https://github.com/RYDE-WORK/lnp_ml.git
synced 2026-07-21 21:22:05 +08:00
35 lines
1.4 KiB
Python
35 lines
1.4 KiB
Python
from lnp_ml.modeling.encoders.rdkit_encoder import CachedRDKitEncoder
|
||
from lnp_ml.modeling.encoders.mpnn_encoder import CachedMPNNEncoder
|
||
|
||
# ============ LLM / 分子编码器(可选) ============
|
||
# 这些 encoder 在使用 use_llm=True 时才会被实例化。
|
||
# 为避免在未安装对应依赖(如 torch_geometric、selfies)时导入即报错,
|
||
# 采用惰性导入:实际类在 build_llm_encoder() 内按需 import。
|
||
|
||
__all__ = [
|
||
"CachedRDKitEncoder",
|
||
"CachedMPNNEncoder",
|
||
# LLM encoders(按需惰性导入,见 models.build_llm_encoder)
|
||
"LLMEncoder",
|
||
"MolT5Encoder",
|
||
"MoleculeSTMEncoder",
|
||
"SELFIESTEDEncoder",
|
||
]
|
||
|
||
|
||
def __getattr__(name):
|
||
"""惰性导入 LLM encoder 类,避免未装可选依赖时 import 失败。"""
|
||
if name == "LLMEncoder":
|
||
from lnp_ml.modeling.encoders.llm_encoder import LLMEncoder
|
||
return LLMEncoder
|
||
if name == "MolT5Encoder":
|
||
from lnp_ml.modeling.encoders.molt5_encoder import MolT5Encoder
|
||
return MolT5Encoder
|
||
if name == "MoleculeSTMEncoder":
|
||
from lnp_ml.modeling.encoders.moleculestm_encoder import MoleculeSTMEncoder
|
||
return MoleculeSTMEncoder
|
||
if name == "SELFIESTEDEncoder":
|
||
from lnp_ml.modeling.encoders.selfiested_encoder import SELFIESTEDEncoder
|
||
return SELFIESTEDEncoder
|
||
raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
|