from appPublic.log import info, debug, warning, error, exception, critical from ahserver.serverenv import ServerEnv from aiohttp.web import StreamResponse async def generate(request, **kw): model = kw.get('model', 'whisper') engine = None g = ServerEnv() if model=='whisper': engine = g.whisper_engine await resp.prepare(request) line = await request.content.readline() content = '' while line: info(f'read from request stream {line=}') txt = await engine.stt(line) content += txt d = json.dumps({'content':content}) btxt = d.encode('utf8') await resp.write(btxt) await resp.drain() line = await request.content.readline() info('response finish') return resp rf = RegisterFunction() rf.register('generate', generate)