Saturday, November 11, 2017

The personal coder
Everybody could do with their own assistant. Speech recognition based software such as Alexa, Siri and Cortana are able to understand simple commands. While they know how to locate an item of interest they can only serve what is readily available either in context of the device or online from the world wide web. Instructions like a one-word genre of music is automatically translated to playing that music from the genre in the collection available to it.
These assistants are being made smarter to understand the relevance of the instruction and to narrow down the execution of the command to improve satisfaction. Some of these techniques have utilized artificial intelligence and the abilities to group, sort, rank, learn with neurons and make recommendations. There is definitely a lot of improvements on the horizon here given that we have just recently started making this territory mainstream.
However, I introduce the notion of a personal automation assistant, when we are not just looking for one item and we have more than one task to sequence, then giving repeated instructions itself becomes a chore. Try saying play violin ten times and you need an integrator along with a command to play it once. Similarly, if you need the result of one task to be taken as the input for the second, then we require a script that knows how to integrate between two actions. Expand the definition of instructions to be able to do assorted tasks such as turn on the toaster or strand music to the bathroom via heterogeneous systems and you need a software solution integrator to write code to make that automation.
Fortunately, nowadays devices and applications can work independently while allowing scriptable programmatic access for remote invocation. Even the language of interaction has become standard and easy to be invoked over what are called REST based APIs. These APIs follow well defined conventions and executing a task merely translates to making one or more API calls in the correct form and order. These APIs can be further explored for their corresponding resource with the help of a technique that makes them readable like a book. Therefore, the availability of standard API and their invocations is straightforward task of mix and match which can be folded into the portfolio of tasks that these assistants perform. Hence the notion of a personal coder.
It may behoove us to note that coding is one of the natural and immensely expansive capability that can be added to the assistant. There are many more roles other than a coder that an be folded into repertoire of tasks that the assistant may assume. Professionals such as accounting, transcribing, remote management are merely describable as automatable tasks and consequently roles for the assistant. Finally, ‘the’ becomes equivalent to an irreplaceable assistant.
The emphasis made here is about making API calls over the HTTP by picking the right API and supplying the right parameters as an example for the coding assistant. Scripts that are as easily written as a single curl command are probably more suited for this kind of assistant. For complex operations, we naturally want manual intervention. Another way to look at improving the assistant's capabilities is to make more data sources available for the already smooth-running operations of the assistant. For example, Google used to ship search appliances that worked on the customer's premise for their proprietary data. We could now use a similar concept for the voice activated assistant.

No comments:

Post a Comment