Files

17 lines
968 B
Python

"""JSONL worker host. Factory is deployment code, never read from model output."""
import argparse,importlib,json,sys,contextlib
def main():
p=argparse.ArgumentParser();p.add_argument('--factory',required=True);p.add_argument('--config',required=True);a=p.parse_args()
module,name=a.factory.split(':',1)
with open(a.config) as f:config=json.load(f)
wire=sys.stdout
with contextlib.redirect_stdout(sys.stderr):engine=getattr(importlib.import_module(module),name)(config)
for line in sys.stdin:
if len(line)>262144:raise ValueError('input too large')
request=json.loads(line)
with contextlib.redirect_stdout(sys.stderr):raw={'ready':True} if request.get('capability')=='__health__' else engine(request)
if not isinstance(raw,str):raw=json.dumps(raw,ensure_ascii=False,allow_nan=False)
wire.write(json.dumps({'raw':raw},ensure_ascii=False,allow_nan=False)+'\n');wire.flush()
if __name__=='__main__':main()