예제 #1
0
파일: server.py 프로젝트: yorick76ee/NLM
 def NLURecall(self, request, context):
     result = mem(request)
     go = result[0] if result else None
     if isinstance(result, GraphNode):
         dctgn = convert_graphobj_to_dict(result)
         gop = nlm_pb2.GraphNode(**dctgn)
     elif isinstance(go, GraphRelation):
         dctgr = convert_graphobj_to_dict(result)
         gop = nlm_pb2.GraphRelation(**dctgr)
     else:
         gop = nlm_pb2.GraphNode(**{})
     return nlm_pb2.GraphOutput(gn=gop)
예제 #2
0
def test_recall_relation_start_not_exist2(grpc_stub):
    start = nlm_pb2.GraphNode(label="Person",
                              name="AliceThreeNotExist",
                              props=json.dumps({}))
    end = nlm_pb2.GraphNode(label="Person",
                            name="AliceOne",
                            props=json.dumps({}))
    kind = "LIKES"
    props = {}
    request = nlm_pb2.GraphRelation(start=start,
                                    end=end,
                                    kind=kind,
                                    props=json.dumps(props))
    response = grpc_stub.RelationRecall(request)
    assert isinstance(response, nlm_pb2.GraphRelation)
    assert response.start.name == "AliceSeven"
    assert response.end != end
    assert response.kind == kind
    assert isinstance(response.props, str)
    assert json.loads(response.props) != props
예제 #3
0
def test_recall_relation_exist_only_props2(grpc_stub):
    start = nlm_pb2.GraphNode(label="Person",
                              name="AliceThree",
                              props=json.dumps({}))
    end = nlm_pb2.GraphNode(label="Person",
                            name="AliceOne",
                            props=json.dumps({}))
    props = {"from": 2009}
    request = nlm_pb2.GraphRelation(start=start,
                                    end=end,
                                    kind=None,
                                    props=json.dumps(props))
    response = grpc_stub.RelationRecall(request)
    assert isinstance(response, nlm_pb2.GraphRelation)
    assert response.start != start
    assert response.end != end
    assert response.start.name == start.name
    assert response.end.label == end.label
    assert response.kind == "WORK_WITH"
    assert isinstance(response.props, str)
    assert json.loads(response.props) != props
예제 #4
0
def test_recall_relation_exist_fuzzy_kind(grpc_stub):
    start = nlm_pb2.GraphNode(label="Person",
                              name="AliceThree",
                              props=json.dumps({}))
    end = nlm_pb2.GraphNode(label="Person",
                            name="AliceOne",
                            props=json.dumps({}))
    kind = "LOVEING"
    props = {"roles": "husband"}
    request = nlm_pb2.GraphRelation(start=start,
                                    end=end,
                                    kind=kind,
                                    props=json.dumps(props))
    response = grpc_stub.RelationRecall(request)
    assert isinstance(response, nlm_pb2.GraphRelation)
    assert response.start != start
    assert response.end != end
    assert response.start.name == start.name
    assert response.end.label == end.label
    assert response.kind == "LOVES"
    assert isinstance(response.props, str)
    assert json.loads(response.props) != props
예제 #5
0
def test_recall_node_not_exist(grpc_stub):
    label = "Person"
    name = "AliceFive1"
    props = {"age": 24}
    request = nlm_pb2.GraphNode(label=label,
                                name=name,
                                props=json.dumps(props))
    response = grpc_stub.NodeRecall(request)
    assert isinstance(response, nlm_pb2.GraphNode)
    assert response.label == label
    assert response.name == name
    assert isinstance(response.props, str)
    assert json.loads(response.props) == props
예제 #6
0
 def recall_node(self, label: str, name: str, props: dict = {}):
     request = nlm_pb2.GraphNode(
         label=label, name=name, props=json.dumps(props))
     response = self.stub.NodeRecall(request)
     return response
예제 #7
0
        request = nlm_pb2.NLMInput(text=text, intent=intent, entities=entities)
        response = self.stub.NLURecall(request)
        return response


if __name__ == '__main__':
    nlmc = NLMClient(host="localhost", port=8080)

    label = "Person"
    name = "AliceFive"
    props = {"age": 24}
    node = nlmc.recall_node(label, name, props)
    print(node)
    print("="*50)

    start = nlm_pb2.GraphNode(label="Person", name="AliceThreeNotExist", props=json.dumps({}))
    end = nlm_pb2.GraphNode(label="Person", name="AliceOne", props=json.dumps({}))
    kind = "LIKES"
    props = {"roles": "husband"}
    relation = nlmc.recall_relation(start, end, kind, props)
    print(relation)
    print("="*50)

    rawstr = "test, test, test"
    res1 = nlmc.str_recall(rawstr)
    print(res1)
    print("="*50)

    rawstr = "test, test, test"
    entity1 = nlm_pb2.Entity(entity="Person", value="Alice")
    entity2 = nlm_pb2.Entity(entity="Person", value="Bob")
예제 #8
0
파일: server.py 프로젝트: yorick76ee/NLM
 def NodeRecall(self, request, context):
     result = mem(request)
     gn = result[0] if result else request
     dctgn = convert_graphobj_to_dict(gn)
     return nlm_pb2.GraphNode(**dctgn)