package com.acuitra.stages.question;
import java.util.ArrayList;
import java.util.List;
import javax.ws.rs.core.MultivaluedMap;
import com.acuitra.pipeline.Context;
import com.acuitra.pipeline.ContextWithJerseyClient;
import com.acuitra.question.core.Question;
import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.ClientResponse;
import com.sun.jersey.api.client.WebResource;
import com.sun.jersey.core.util.MultivaluedMapImpl;
public class NamedEntityRecognitionStage extends AbstractQuestionStage {
private ContextWithJerseyClient<String, List<String>> context;
private Question question;
private String namedEntityRecognitionURL;
public NamedEntityRecognitionStage(String namedEntityRecognitionURL) {
super();
this.namedEntityRecognitionURL = namedEntityRecognitionURL;
}
@Override
public void loadContext(Context<Question, List<String>> ctx) {
this.question = ctx.getInput();
this.context = (ContextWithJerseyClient) ctx;
}
@Override
public void execute() {
Client jerseyClient = context.getJerseyClient();
WebResource webResource = jerseyClient.resource(namedEntityRecognitionURL);
MultivaluedMap<String, String> params = new MultivaluedMapImpl();
params.add("text", question.getQuestion());
ClientResponse response = webResource.queryParams(params).type("application/x-www-form-urlencoded").get(ClientResponse.class);
String text = response.getEntity(String.class);
System.out.println(text);
List<String> outputs = new ArrayList<>();
outputs.add(text);
this.setOutput(outputs);
}
}