def test(host, port, dim): print("host: %s:%d" % (host, port)) channel = grpc.insecure_channel("%s:%d" % (host, port)) stub = pb2_grpc.ServerStub(channel) response = stub.Total(pb2.EmptyRequest()) print("total: %d" % response.count) embedding = list(np.random.random(dim).astype('float32')) print(embedding) id = 1 response = stub.Add(pb2.AddRequest(id=id, embedding=embedding)) print("response: %s" % response.message) embedding = list(np.random.random(dim).astype('float32')) print(embedding) id = 1 response = stub.Add(pb2.AddRequest(id=id, embedding=embedding)) print("response: %s" % response.message) embedding = list(np.random.random(dim).astype('float32')) id = 2 response = stub.Add(pb2.AddRequest(id=id, embedding=embedding)) print("response: %s" % response.message) embedding = list(np.random.random(dim).astype('float32')) id = 3 response = stub.Add(pb2.AddRequest(id=id, embedding=embedding)) print("response: %s" % response.message) response = stub.Total(pb2.EmptyRequest()) print("total: %d" % response.count) id = 2 response = stub.Search(pb2.SearchRequest(id=id, count=5)) print("response: %s, %s" % (response.ids, response.scores)) response = stub.Remove(pb2.IdRequest(id=2)) print("response: %s" % response.message) response = stub.Total(pb2.EmptyRequest()) print("total: %d" % response.count) id = 2 response = stub.Search(pb2.SearchRequest(id=id, count=5)) print("response: %s, %s" % (response.ids, response.scores)) # response = stub.Remove(pb2.IdRequest(id=1)) # response = stub.Remove(pb2.IdRequest(id=3)) response = stub.Total(pb2.EmptyRequest()) print("total: %d" % response.count)
def search(self, query: VectorLike, k: int) -> None: vec = faiss_pb2.Vector(val=query) req = faiss_pb2.SearchRequest(query=vec, k=k) res = self.stub.Search(req) for i, n in enumerate(res.neighbors): print(f'#{i}, id: {n.id}, score: {n.score}')
def test_key(host, port, dim): print("host: %s:%d" % (host, port)) channel = grpc.insecure_channel("%s:%d" % (host, port)) stub = pb2_grpc.ServerStub(channel) response = stub.Total(pb2.EmptyRequest()) print("total: %d" % response.count) embedding = list(np.random.random(dim).astype('float32')) print(embedding) key = "k1" response = stub.Add(pb2.AddRequest(key=key, embedding=embedding)) print("response: %s" % response.message) embedding = list(np.random.random(dim).astype('float32')) key = "k1" response = stub.Add(pb2.AddRequest(key=key, embedding=embedding)) print("response: %s" % response.message) embedding = list(np.random.random(dim).astype('float32')) key = "k2" response = stub.Add(pb2.AddRequest(key=key, embedding=embedding)) print("response: %s" % response.message) embedding = list(np.random.random(dim).astype('float32')) key = "k3" response = stub.Add(pb2.AddRequest(key=key, embedding=embedding)) print("response: %s" % response.message) response = stub.Total(pb2.EmptyRequest()) print("total: %d" % response.count) key = "k1" response = stub.Search(pb2.SearchRequest(key=key, count=5)) print("response: %s, %s" % (response.ids, response.scores)) key = "k2" response = stub.Search(pb2.SearchRequest(key=key, count=5)) print("response: %s, %s" % (response.ids, response.scores)) response = stub.Total(pb2.EmptyRequest()) print("total: %d" % response.count)
def main(args): # create channel and stub address = '{}:{}'.format(args.host, args.port) channel = grpc.insecure_channel(address) stub = faiss_pb2_grpc.FaissServiceStub(channel) request = faiss_pb2.SearchRequest() request.top_k = args.top_k request.vector.float_val.extend(np.random.rand(1, 100)[0]) response = stub.Search.future(request, args.timeout) print(response.result())
def _search_by_key(host, key, count, timeout, channel): stub = pb2_grpc.ServerStub(channel) return stub.Search(pb2.SearchRequest(key=key, count=count))
def search(host, id, count, timeout): with grpc.insecure_channel(host) as channel: stub = pb2_grpc.ServerStub(channel) response = stub.Search(pb2.SearchRequest(id=id, count=count), timeout=timeout) print("response: %s, %s" % (response.ids, response.scores))