Example #1
0
    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
Example #2
0
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
    '''
Example #3
0
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")