darabos commited on
Commit
c500d8d
·
1 Parent(s): f1ee227

Optional k8s.needs for Genmol.

Browse files
lynxkite-bio/src/lynxkite_bio/nims.py CHANGED
@@ -6,6 +6,8 @@ import httpx
6
  import pandas as pd
7
  import os
8
 
 
 
9
 
10
  ENV = "LynxKite Graph Analytics"
11
  op = ops.op_registration(ENV)
@@ -131,7 +133,30 @@ def view_molecule(
131
  }
132
 
133
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
134
  @op("Query GenMol", slow=True)
 
135
  async def query_genmol(
136
  bundle: Bundle,
137
  *,
@@ -146,7 +171,7 @@ async def query_genmol(
146
  bundle = bundle.copy()
147
 
148
  response = await query_bionemo_nim(
149
- url="https://health.api.nvidia.com/v1/biology/nvidia/genmol/generate",
150
  payload={
151
  "smiles": bundle.dfs[molecule_table][molecule_column].iloc[0],
152
  "num_molecules": num_molecules,
 
6
  import pandas as pd
7
  import os
8
 
9
+ from . import k8s
10
+
11
 
12
  ENV = "LynxKite Graph Analytics"
13
  op = ops.op_registration(ENV)
 
133
  }
134
 
135
 
136
+ def _needs_bionemo_k8s(**k8s_kwargs):
137
+ if USE_K8S:
138
+ return k8s.needs(**k8s_kwargs)
139
+ else:
140
+ return lambda func: func
141
+
142
+
143
+ def base_url(service):
144
+ if USE_K8S:
145
+ return f"http://{k8s.get_ip(service)}/"
146
+ else:
147
+ return "https://health.api.nvidia.com/"
148
+
149
+
150
+ USE_K8S = False # Not production ready yet.
151
+ needs_genmol_k8s = _needs_bionemo_k8s(
152
+ name="genmol",
153
+ image="nvcr.io/nim/nvidia/genmol:1.0.0",
154
+ port=8000,
155
+ )
156
+
157
+
158
  @op("Query GenMol", slow=True)
159
+ @needs_genmol_k8s
160
  async def query_genmol(
161
  bundle: Bundle,
162
  *,
 
171
  bundle = bundle.copy()
172
 
173
  response = await query_bionemo_nim(
174
+ url=f"{base_url('genmol')}v1/biology/nvidia/genmol/generate",
175
  payload={
176
  "smiles": bundle.dfs[molecule_table][molecule_column].iloc[0],
177
  "num_molecules": num_molecules,