Creating a Wikipedia bot in Api.Ai using Wikipedia API and integrate it in Telegram

This post briefly explains how to use Wikipedia’s Open Search API to search Wikipedia and return the result to our api.ai Bot.

Wikipedia API

Example Call:

https://en.wikipedia.org/w/api.php?format=json&action=opensearch&search=global%20warming&limit=2&profile=fuzzy

Parameters:

Format – any of json,jsonfm,xml,xmlfm  More in the Docs

action –  opensearch

search – our term to search for, here it’s “Global Warming”

limit – Max number of results to return, we set it to 2. To make the call faster as it would return fewer data.

profile – more in the Docs

 

Example Result:

[
   "global warming",
   [
      "Global warming",
      "Global warming controversy"
   ],
   [
      "Global warming, also referred to as climate change, is the observed century-scale rise in the average temperature of the Earth's climate system and its related effects.",
      "The global warming controversy concerns the public debate over whether global warming is occurring, how much has occurred in modern times, what has caused it, what its effects will be, whether any action should be taken to curb it, and if so what that action should be."
   ],
   [
      "https://en.wikipedia.org/wiki/Global_warming",
      "https://en.wikipedia.org/wiki/Global_warming_controversy"
   
]

 

Api.ai Intent

Create a new Intent for our agent. In what user says section add few sentences like below screenshot. When you enter these sentence api.ai might pre-select few words as system entities. You would want to remove any preselection and select the term to search of in all the sentences and define it as @sys.any

In the action, you will find the parameter, name it “wikisearchterm”. You can name it anything but our woobhook is made to recognize this parameter. Also, make it Required and define prompts.

 

And Check “Use Webhook” under fulfillment. We will be using the same URL as in the last tutorials.

Url is: https://apiapiwebhooksamples.herokuapp.com/webhook

 

WebHook

You can check the complete code for the webhook at my GitHub. It just a simple GET request to Wikipedia. And returns text for api.ai and telegram integration. I am putting all the webhook so far in one file. So you will see other webhook there as well.

 

Bot In Action

Telegram bot: @iameurekabot

 

Api.ai Web integrated Bot:

 
%d bloggers like this: