@Override public AgentResponse process(AgentRequest request) { logger.debug("Handling the request: " + request.getText()); String requestText = request.getText(); String entityText = extractEntity(requestText); String data = requestData(entityText); return createResponse(data); }
/** * Create a duckduckgo agent * * @param client http client */ public DuckDuckGoAgent(HttpClient client) { this.client = client; this.setDescription(new Description("general answers", SUMMARY, EXAMPLE)); }
/** * Iterate over the words until we think we get to the name of the entity */ protected String extractEntity(String sentence) { Tokenizer tokenizer = new RuleBasedTokenizer(true); String[] words = tokenizer.tokenize(sentence); int index = 0; for (index = 0; index < words.length; index++) { if (!dictionary.contains(words[index].toLowerCase())) { break; } } return joinStrings(Arrays.copyOfRange(words, index, words.length), " "); }
protected String requestData(String entity) { HttpResponse response = client.execute(HttpRequest.get(createUrl(entity))); if (response == null || response.isError()) { return null; } return response.asString(); }