from thrift.protocol import TBinaryProtocol from thrift.server import TServer import cPickle as pkl class ClassifierHandler(object): def __init__(self): self.model = pkl.load(open('svm_model.pkl', 'rb')) print 'loading model...' def predict(self, feature): return self.model.predict(feature)[0] handler = ClassifierHandler() processor = Classifier.Processor(handler) transport = TSocket.TServerSocket(port=9090) tfactory = TTransport.TBufferedTransportFactory() pfactory = TBinaryProtocol.TBinaryProtocolFactory() server = TServer.TSimpleServer(processor, transport, tfactory, pfactory) # You could do one of these for a multithreaded server #server = TServer.TThreadedServer(processor, transport, tfactory, pfactory) #server = TServer.TThreadPoolServer(processor, transport, tfactory, pfactory) print 'Starting the server...' server.serve() print 'done.'