"""Stable typed scheduling behind SystemOne; preserve request and answer order.""" from dataclasses import replace def predict_grouped_1k(native,records,*,batch_size=8): from decision_inference._request import request_collator from decision_runtime import predict if type(batch_size) is not int or batch_size!=8:raise ValueError('SystemOne typed scheduling uses physical batch size 8') records=list(records);guard=request_collator(native.collator,records) # Admit every original row before scheduling or any forward. order=sorted(range(len(records)),key=lambda i:records[i]['question']['type']) sorted_rows=[records[i]for i in order] guard._records=tuple(sorted_rows);guard._encoded=[guard._encoded[i]for i in order] predictions=predict(replace(native,collator=guard),sorted_rows,batch_size=8);guard.finish();restored=[None]*len(records) for i,result in zip(order,predictions):restored[i]=result if any(x is None for x in restored):raise RuntimeError('Incomplete scheduled predictions') return restored