NIM Endpoints#

Molecular Generation#

Endpoint path: /generate

Input Parameters#

  • smiles (string): Required. SAFE/SMILES text with masks as the molecular template for generation.

  • num_molecules (integer, 1~1000): Optional (default: 30). Number of molecules to be generated.

  • temperature (float, 0.01~10.0): Optional (default: 1.0). Temperature factor to scale the predicted probits before being passed to the SoftMax function.

  • noise (float, 0.0~2.0): Optional (default: 0.0). Scale of randomness added to the probability confidences on all predicted tokens.

  • step_size (integer, 1~10): Optional (default: 1). Number of tokens to be unmasked for each inference step.

  • scoring (enum, QED or LogP): Optional (default QED). Method to be used to score and rank the generated molecules.

  • unique (boolean): Optional (default: false). Only unique molecules will be returned if true is set.

Outputs#

The output of the endpoint is a JSON response with two fields:

  • status: success or failed. If it is success, a field of molecules listing all generated molecules will be returned; otherwise, a field of error will be returned as a text message explaining the reason for the failure.

  • molecules: if the request is successfully processed, this field contains a list of molecules, each of which is a dictionary with fields of smiles and score for each generated molecule, ranked by the chosen scoring method.

Example#

curl --request POST --url "http://127.0.0.1:8000/generate" \
  --header "Content-Type: application/json"\
  --data '{
    "smiles": "[C@H]1O[C@@H](CO)[C@H](O)[C@@H]1O.[*{15-15}]",
    "num_molecules": "5",
    "temperature": "2.0",
    "noise": "1.0",
    "step_size": "1",
    "scoring": "QED"
  }'

Return

{"status":"success","molecules":[{"smiles":"OC[C@@H]1O[CH][C@@H](O)[C@H]1O","score":0.397},{"smiles":"OC[C@@H]1O[CH][C@@H](O)[C@H]1O","score":0.397},{"smiles":"OC[C@@H]1O[CH][C@@H](O)[C@H]1O","score":0.397},{"smiles":"OC[C@@H]1O[CH][C@@H](O)[C@H]1O","score":0.397},{"smiles":"OC[C@@H]1O[CH][C@@H](O)[C@H]1O","score":0.397}]}

Readiness Check#

Endpoint path: /v1/health/ready

Input Parameters#

None

Outputs#

The output of the endpoint is a JSON response containing a value indicating the readiness of the microservice. When the NIM is ready, it returns the response {"status":"ready"}.

Example#

curl http://127.0.0.1:8000/v1/health/ready

Return

true

List Models and Versions#

Endpoint path: /v1/models

Input Parameters#

None

Outputs#

The output of the endpoint is a JSON response containing a list of available models supported by this NIM, for example, {"available_models":["GenMol-1.0.0"]}.

Example#

curl http://127.0.0.1:8000/v1/models

Return

{"available_models":["GenMol-1.0.0"]}

API Reference#

Endpoint path: /docs

Input Parameters#

None

Outputs#

This endpoint provides a detailed OpenAPI schema for this NIM. Open a web browser and direct to the URL http://127.0.0.1:8000/docs to view the page.