Skip to content

Using Resembla via gRPC

tuem edited this page Jul 31, 2017 · 5 revisions

Overview

  • gRPC server and client sample program
  • request
    • query: string
  • response:
    • sorted list of {text, similarity}

Sample code

  • https://github.com/tuem/resembla/tree/master/misc/grpc
    • server program: src/resembla_server.cpp
    • client program: python/resembla_client.py
    • gRPC service definitions: protos/resembla.proto
    • generation script: generate_grpc_templates.sh
    • generated files: include/, src/grpc/, python/resembla_pb2*

Preparation

git clone -b v1.2.5 https://github.com/grpc/grpc
cd grpc
git submodule update --init
make
sudo make install
cd third_party/protobuf/
sudo make install

Build

# build libresembla
cd src
make
sudo make install
# build resembla_index
cd executable
make
sudo make install
cd ../../
# build gRPC server sample
cd misc/grpc/src
make

Run server

resembla_index -c ../conf/resembla_server.json.sample
./resembla_server -c ../conf/resembla_server.json.sample

Run client

# launch another shell
# move to project root
./misc/grpc/python/resembla_client.py [queries]
# if the server works, you will receive following responses
query=りんごはおいしいよね
  response.text=りんごおいしいねえ
  response.score=0.7703891396522522
  response.text=りんごおいしい
  response.score=0.7535887360572815
  response.text=りんごおいしいな
  response.score=0.7119530439376831
  response.text=りんごおいしくない
  response.score=0.5353646278381348
query=りんごおいしくねえ
  response.text=りんごおいしくない
  response.score=0.7983288764953613
  response.text=りんごおいしいねえ
  response.score=0.6532353758811951
  response.text=りんごおいしい
  response.score=0.5456634163856506
  response.text=りんごおいしいな
  response.score=0.5110778212547302
query=りんごまずいから好きじゃない
  response.text=りんご好きじゃない
  response.score=0.8026831746101379
  response.text=りんごおいしくない
  response.score=0.5628917217254639

Clone this wiki locally