File size: 2,247 Bytes
0690c04
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
"""Offline artifact-only validation: no source model weights are loaded."""
import asyncio,json,time,resource
from pathlib import Path
import numpy as np
import psutil
from coreai.runtime import NDArray
from coreai_d3 import D3CoreAI,pack

async def main():
 start=time.perf_counter();engine=await D3CoreAI.load(Path(__file__).parent);load_seconds=time.perf_counter()-start
 q=dict(type='choice',instructions='Which action best describes the user request?',criteria={'interrupt':'Stop the assistant speaking now','discard':'Ignore background noise','enqueue':'Handle a new question later'})
 state='The assistant is speaking. The user says: Stop talking now.'
 result=await engine.system_one(state=state,questions={'action':q});assert result['answers']['action']['choice']=='interrupt'
 # Exercise a complete capacity prompt and prove overflow is rejected before native inference.
 encoded=engine.tokenizer(['Hello '*600],add_special_tokens=False,return_tensors='np')
 limit=engine.manifest['sequence_length'];ids=encoded['input_ids'][:,:limit]
 arrays=pack({'input_ids':ids},engine.manifest)
 output=await engine.fn({k:NDArray(v) for k,v in arrays.items()})
 assert np.isfinite(output[engine.manifest['output']].numpy()).all()
 try:pack({'input_ids':np.pad(ids,((0,0),(0,1)))},engine.manifest)
 except ValueError:pass
 else:raise AssertionError('Capacity+1 must reject')
 # Busy behavior has zero waiting capacity and rejects a second admission.
 engine._busy=True
 try:
  try:await engine.logits(state,q)
  except RuntimeError:pass
  else:raise AssertionError('Busy must reject')
 finally:engine._busy=False
 times=[]
 for _ in range(20):
  t=time.perf_counter();await engine.system_one(state=state,questions={'action':q});times.append(time.perf_counter()-t)
 report=dict(offline=True,source_weights_loaded=False,result=result,warm_load_seconds=load_seconds,exact_capacity_finite=True,over_capacity_rejected=True,busy_rejected=True,warm_samples=times,median_seconds=float(np.median(times)),p95_seconds=float(np.percentile(times,95)),resident_rss_bytes=psutil.Process().memory_info().rss,peak_rss_bytes=resource.getrusage(resource.RUSAGE_SELF).ru_maxrss)
 print(json.dumps(report,indent=2),flush=True)
if __name__=='__main__':asyncio.run(main())