nas / PFMBench /src /data /esm /sdk /__init__.py
yuccaaa's picture
Add files using upload-large-folder tool
9627ce0 verified
import os
from src.data.esm.sdk.forge import ESM3ForgeInferenceClient
from src.data.esm.utils.forge_context_manager import ForgeBatchExecutor
# Note: please do not import ESM3SageMakerClient here since that requires AWS SDK.
def client(
model="esm3-sm-open-v1",
url="https://forge.evolutionaryscale.ai",
token=os.environ.get("ESM_API_KEY", ""),
request_timeout=None,
):
"""
Args:
model: Name of the model to use.
url: URL of a forge server.
token: User's API token.
request_timeout: Amount of time to wait for a request to finish.
Default is wait indefinitely.
"""
return ESM3ForgeInferenceClient(model, url, token, request_timeout)
def batch_executor(max_attempts: int = 10):
"""
Args:
max_attempts: Maximum number of attempts to make before giving up.
Usage:
with batch_executor() as executor:
executor.execute_batch(fn, **kwargs)
"""
return ForgeBatchExecutor(max_attempts)