def GetSdsServer(self, model): model_list = [model] sds_channel = grpc.insecure_channel('0.0.0.0:9860') resolver_stub = resolver_pb2_grpc.SdsServiceResolverStub(sds_channel) # Model Group MG = resolver_pb2.ModelGroup() MG.name = model MG.lang = 0 MG.is_external = True #resolver_stub.CreateModelGroup(MG) try: resolver_stub.CreateModelGroup(MG) except Exception as e: pass # print(e) # traceback.print_exc(limit=None) Model = resolver_pb2.Model() Model.lang = MG.lang Model.is_external = MG.is_external MP = resolver_pb2.ModelParam() MP.lang = MG.lang MP.is_external = MG.is_external MP.group_name = MG.name ML = resolver_pb2.ModelList() for mn in model_list: Model.name = mn MP.model_name = mn Model = ML.models.add() resolver_stub.LinkModel(MP) server_status = resolver_stub.Find(MG) print "<Find result>" # 서버가 시동중일 때 sleep 필요 if server_status.state is resolver_pb2.SERVER_STATE_STARTING: print "SERVER STARTING" time.sleep(0.5) self.sds_stub = sds_pb2_grpc.SpokenDialogServiceStub( grpc.insecure_channel(server_status.server_address)) # self.sds_stub = sds_pb2_grpc.SpokenDialogServiceInternalStub(grpc.insecure_channel(server_status.server_address)) self.sds_server_addr = server_status.server_address
def serve(): sds_channel = grpc.insecure_channel('0.0.0.0:9860') resolver_stub = resolver_pb2.SdsServiceResolverStub(sds_channel) #print sds_channel print 'resolver_stub', resolver_stub MG = resolver_pb2.ModelGroup() MG.name = 'test_kor' MG.lang = 0 MG.is_external = True print MG resolver_stub.CreateModelGroup(MG) M = resolver_pb2.Model() M.lang = 0 M.is_external = True MP = resolver_pb2.ModelParam() MP.lang = 0 MP.group_name = 'test_kor' MP.is_external = True print MP ML = resolver_pb2.ModelList() model_name_list = ['base', 'AI_Agent'] for mn in model_name_list: M.name = mn MP.model_name = mn M = ML.models.add() resolver_stub.LinkModel(MP) ss = resolver_stub.Find(MG) print ss sds_stub = sds_pb2.SpokenDialogServiceStub( grpc.insecure_channel(ss.server_address)) print sds_stub time.sleep(20) empty = empty_pb2.Empty() time.sleep(20) cML = sds_stub.GetCurrentModels(empty) print 'cML' print cML aML = sds_stub.GetAvailableModels(empty) print 'aML' print aML pong = sds_stub.Ping(MG) print pong dp = sds_pb2.DialogueParam() dp.model = 'AI_Agent' dp.session_key = 0 dp.user_initiative = False OpenResult = sds_stub.Open(dp) print OpenResult sq = sds_pb2.SdsQuery() sq.model = dp.model sq.session_key = dp.session_key sq.apply_indri_score = 0 sq.utter = '안녕' Intent = sds_stub.Understand(sq) print Intent Entity = sds_pb2.Entities() Entity.session_key = dp.session_key Entity.model = dp.model sds_utter = sds_stub.GenerateEntities(Entity) print sds_utter print sds_utter.response '''
def serve(): parser = argparse.ArgumentParser(description='dialInternalDB Test') parser.add_argument('-e', '--endpoint', nargs='?', dest='endpoint', required=True, type=str, help='server to access SDS') args = parser.parse_args() sds_stub = sds_pb2.SpokenDialogServiceInternalStub( grpc.insecure_channel(args.endpoint)) empty = empty_pb2.Empty() print "<Model List>" modelList = sds_stub.GetCurrentModels(empty) for ml in modelList.models: print str(ml) session_id = 1 name = raw_input("Choose a domain: ") # Create DialogSessionKey & set session_key dp = sds_pb2.DialogueParam() dp.session_key = session_id dp.model = name # Dialog Open OpenResult = sds_stub.Open(dp) model = resolver_pb2.Model() model.name = name model.lang = 1 model.is_external = False print(OpenResult.system_dialog) sdsUser = sds_pb2.SdsQuery() sdsUser.session_key = 1 sdsUser.model = name user_utter = raw_input("[User] ") sdsUser.utter = user_utter Dialog = sds_stub.Dialog(sdsUser) while (Dialog.status == "no end"): print Dialog print Dialog.response user_utter = raw_input("[User] ") + "\n" sdsUser.utter = user_utter Dialog = sds_stub.Dialog(sdsUser) print "You have successfully finished unit " + name + "!\n" dsk = sds_pb2.DialogueParam() dsk.session_key = 1 dsk.model = name print dsk sds_stub.Close(dsk) print("SDS is now closed")