def test_pymode(self): args = set_frontend_parser().parse_args([ '--socket_in', str(SocketType.PULL_BIND), '--socket_out', str(SocketType.PUSH_BIND), ]) p_args = set_preprocessor_parser().parse_args([ '--port_in', str(args.port_out), '--port_out', str(args.port_in), '--socket_in', str(SocketType.PULL_CONNECT), '--socket_out', str(SocketType.PUSH_CONNECT), '--yaml_path', 'pipline.yml', '--py_path', 'mypreprocessor1.py', 'mypreprocessor2.py' ]) with ServiceManager(PreprocessorService, p_args), \ FrontendService(args), \ grpc.insecure_channel('%s:%s' % (args.grpc_host, args.grpc_port), options=[('grpc.max_send_message_length', 70 * 1024 * 1024), ('grpc.max_receive_message_length', 70 * 1024 * 1024)]) as channel: stub = gnes_pb2_grpc.GnesRPCStub(channel) resp = stub.Call( list(RequestGenerator.index([b'doc1:', b'doc2:'], 1))[0]) self.assertEqual(resp.request_id, '0')
def test_pymode(self): args = set_frontend_parser().parse_args([]) p_args = set_preprocessor_parser().parse_args([ '--port_in', str(args.port_out), '--port_out', '5531', '--socket_in', str(SocketType.PULL_CONNECT), '--socket_out', str(SocketType.PUSH_BIND), '--yaml_path', '!UnaryPreprocessor {parameters: {doc_type: 1}}' ]) e_args = set_encoder_parser().parse_args([ '--port_in', str(p_args.port_out), '--port_out', str(args.port_in), '--socket_in', str(SocketType.PULL_CONNECT), '--socket_out', str(SocketType.PUSH_CONNECT), '--yaml_path', 'flair.yml', ]) with ServiceManager(EncoderService, e_args), \ ServiceManager(PreprocessorService, p_args), \ FrontendService(args), \ grpc.insecure_channel('%s:%s' % (args.grpc_host, args.grpc_port), options=[('grpc.max_send_message_length', 70 * 1024 * 1024), ('grpc.max_receive_message_length', 70 * 1024 * 1024)]) as channel: stub = gnes_pb2_grpc.GnesRPCStub(channel) resp = stub.Call(list(RequestGenerator.index([b'hello world', b'goodbye!'], 1))[0]) self.assertEqual(resp.request_id, '0')
def _test_grpc_multiple_pub(self, backend='thread', num_parallel=5): args = set_frontend_parser().parse_args([ '--grpc_host', '127.0.0.1', ]) p_args = set_router_parser().parse_args([ '--port_in', str(args.port_out), '--port_out', str(args.port_in), '--socket_in', str(SocketType.PULL_CONNECT), '--socket_out', str(SocketType.PUSH_CONNECT), '--yaml_path', 'BaseRouter', '--num_parallel', str(num_parallel), '--parallel_backend', backend, '--parallel_type', str(ParallelType.PUB_BLOCK) ]) with ServiceManager( RouterService, p_args), FrontendService(args), grpc.insecure_channel( '%s:%d' % (args.grpc_host, args.grpc_port), options=[ ('grpc.max_send_message_length', 70 * 1024 * 1024), ('grpc.max_receive_message_length', 70 * 1024 * 1024) ]) as channel: stub = gnes_pb2_grpc.GnesRPCStub(channel) resp = stub.Call(list(RequestGenerator.query(b'abc', 1))[0]) self.assertEqual(resp.request_id, 0)
def test_grpc_frontend(self): args = set_frontend_parser().parse_args([ '--grpc_host', '127.0.0.1', ]) p_args = set_router_service_parser().parse_args([ '--port_in', str(args.port_out), '--port_out', str(args.port_in), '--socket_in', str(SocketType.PULL_CONNECT), '--socket_out', str(SocketType.PUSH_CONNECT), '--yaml_path', 'BaseRouter' ]) with RouterService(p_args), FrontendService( args), grpc.insecure_channel( '%s:%s' % (args.grpc_host, args.grpc_port), options=[ ('grpc.max_send_message_length', 70 * 1024 * 1024), ('grpc.max_receive_message_length', 70 * 1024 * 1024) ]) as channel: stub = gnes_pb2_grpc.GnesRPCStub(channel) with TimeContext('sync call'): # about 5s resp = list( stub.StreamCall(RequestGenerator.train(self.all_bytes, 1)))[-1] self.assertEqual(resp.request_id, str(len( self.all_bytes))) # idx start with 0, but +1 for final FLUSH
def test_pymode(self): args = set_frontend_parser().parse_args([]) p_args = set_preprocessor_parser().parse_args([ '--port_in', str(args.port_out), '--port_out', '5531', '--socket_in', str(SocketType.PULL_CONNECT), '--socket_out', str(SocketType.PUSH_BIND), '--yaml_path', 'SentSplitPreprocessor' ]) e_args = set_encoder_parser().parse_args([ '--port_in', str(p_args.port_out), '--port_out', str(args.port_in), '--socket_in', str(SocketType.PULL_CONNECT), '--socket_out', str(SocketType.PUSH_CONNECT), '--yaml_path', 'transformer.yml', '--py_path', 'distilbert.py' ]) with ServiceManager(EncoderService, e_args), \ ServiceManager(PreprocessorService, p_args), \ FrontendService(args), \ grpc.insecure_channel('%s:%s' % (args.grpc_host, args.grpc_port), options=[('grpc.max_send_message_length', 70 * 1024 * 1024), ('grpc.max_receive_message_length', 70 * 1024 * 1024)]) as channel: stub = gnes_pb2_grpc.GnesRPCStub(channel) resp = stub.Call( list( RequestGenerator.index([ b'hello world, good to see you.', b'goodbye! wish to see you again!' ], 1))[0]) self.assertEqual(resp.request_id, 0)
def test_frontend_alone(self): args = set_frontend_parser().parse_args([ '--grpc_host', '127.0.0.1', ]) with FrontendService(args): pass with ServiceManager(FrontendService, args): pass
def test_grpc_real_service(self): # to fix with DummyServer('%s:%d' % (self.s_args.grpc_host, self.s_args.grpc_port)), GRPCService( self.s_args), FrontendService(self.args), grpc.insecure_channel( '%s:%s' % (self.args.grpc_host, self.args.grpc_port), options=[('grpc.max_send_message_length', 70 * 1024 * 1024), ('grpc.max_receive_message_length', 70 * 1024 * 1024)]) as channel: stub = gnes_pb2_grpc.GnesRPCStub(channel) resp = stub.Call(list(RequestGenerator.query(b'abc', 1))[0]) self.assertEqual(resp.request_id, 0) # idx start with 0, but +1 for final FLUSH
def test_cli(self): args = set_frontend_parser().parse_args([]) p_args = set_router_parser().parse_args([ '--port_in', str(args.port_out), '--port_out', str(args.port_in), '--socket_in', str(SocketType.PULL_CONNECT), '--socket_out', str(SocketType.PUSH_CONNECT), '--yaml_path', 'BaseRouter' ]) with RouterService(p_args), FrontendService(args): CLIClient(self.train_args) CLIClient(self.index_args) CLIClient(self.query_args)
def test_pymode(self): os.unsetenv('http_proxy') os.unsetenv('https_proxy') args = set_frontend_parser().parse_args([]) p_args = set_preprocessor_parser().parse_args([ '--port_in', str(args.port_out), '--port_out', '5531', '--socket_in', str(SocketType.PULL_CONNECT), '--socket_out', str(SocketType.PUSH_BIND), '--yaml_path', 'SentSplitPreprocessor' ]) e_args = set_indexer_parser().parse_args([ '--port_in', str(p_args.port_out), '--port_out', str(args.port_in), '--socket_in', str(SocketType.PULL_CONNECT), '--socket_out', str(SocketType.PUSH_CONNECT), '--yaml_path', '!DictIndexer {gnes_config: {name: dummy_dict_indexer}}', ]) with ServiceManager(IndexerService, e_args), \ ServiceManager(PreprocessorService, p_args), \ FrontendService(args), \ grpc.insecure_channel('%s:%s' % (args.grpc_host, args.grpc_port), options=[('grpc.max_send_message_length', 70 * 1024 * 1024), ('grpc.max_receive_message_length', 70 * 1024 * 1024)]) as channel: stub = gnes_pb2_grpc.GnesRPCStub(channel) all_bytes = [] with open(os.path.join(self.dirname, '26-doc-chinese.txt'), 'r', encoding='utf8') as fp: for v in fp: if v.strip(): all_bytes.append(v.encode()) for r in stub.StreamCall(RequestGenerator.index(all_bytes)): print(r) bi = BaseIndexer.load('dummy_dict_indexer.bin') self.assertEqual(bi.size, 26) print(bi.query([0]))
def test_bm_frontend(self): args = set_frontend_parser().parse_args([ '--grpc_host', '127.0.0.1', ]) p_args = set_router_service_parser().parse_args([ '--port_in', str(args.port_out), '--port_out', str(args.port_in), '--socket_in', str(SocketType.PULL_CONNECT), '--socket_out', str(SocketType.PUSH_CONNECT), '--yaml_path', 'BaseRouter' ]) b_args = set_benchmark_client_parser().parse_args( ['--num_requests', '10', '--request_length', '65536']) with RouterService(p_args), FrontendService(args): BenchmarkClient(b_args)
def test_async_block(self): args = set_frontend_parser().parse_args([ '--grpc_host', '127.0.0.1', ]) p1_args = set_router_service_parser().parse_args([ '--port_in', str(args.port_out), '--port_out', '8899', '--socket_in', str(SocketType.PULL_CONNECT), '--socket_out', str(SocketType.PUSH_CONNECT), '--yaml_path', 'BaseRouter' ]) p2_args = set_router_service_parser().parse_args([ '--port_in', str(p1_args.port_out), '--port_out', str(args.port_in), '--socket_in', str(SocketType.PULL_BIND), '--socket_out', str(SocketType.PUSH_CONNECT), '--yaml_path', 'BaseRouter' ]) with FrontendService(args), Router1(p1_args), Router2( p2_args), grpc.insecure_channel( '%s:%s' % (args.grpc_host, args.grpc_port), options=[ ('grpc.max_send_message_length', 70 * 1024 * 1024), ('grpc.max_receive_message_length', 70 * 1024 * 1024) ]) as channel: stub = gnes_pb2_grpc.GnesRPCStub(channel) id = 0 with TimeContext('non-blocking call' ): # about 26s = 32s (total) - 3*2s (overlap) resp = stub.StreamCall( RequestGenerator.train(self.all_bytes2, 1)) for r in resp: self.assertEqual(r.request_id, str(id)) id += 1 id = 0 with TimeContext('blocking call'): # should be 32 s for r in RequestGenerator.train(self.all_bytes2, 1): resp = stub.Call(r) self.assertEqual(resp.request_id, str(id)) id += 1
def test_cli(self): cli_args = set_client_cli_parser().parse_args([ '--mode', 'train', '--grpc_host', '127.0.0.1', '--txt_file', os.path.join(self.dirname, 'sonnets.txt') ]) args = set_frontend_parser().parse_args([]) p_args = set_router_parser().parse_args([ '--port_in', str(args.port_out), '--port_out', str(args.port_in), '--socket_in', str(SocketType.PULL_CONNECT), '--socket_out', str(SocketType.PUSH_CONNECT), '--host_in', '127.0.0.1', '--host_out', '127.0.0.1', '--yaml_path', 'BaseRouter' ]) with RouterService(p_args), FrontendService(args) as s: CLIClient(cli_args)
def frontend(args): from gnes.service.frontend import FrontendService import threading with FrontendService(args): forever = threading.Event() forever.wait()