How to Fix* Sraix for ProgrammAB

At the moment there are a lot of personal assistance functions of ProgrammAB wich does not work anymore. As an example: image searches or weather forecasts. The reason is that the ask.pannous API seems  not to function correctly anmore. Pannous has another API which can be found here in the following link, but it is not free or atleast requires a credit card for a subsription even for the 100/day free requests: https://market.mashape.com/pannous/jeannie

So we should decide how we can get this amazing functions to work again. One way would be to get a key for a similar feature. The other way would be to List all the different things pannous have done for us and replace them with our own services like OpenWeatherMap.

Another point GroG mentioned in the shoutbox was to get API-keys for the community. If we have a plan how to replace the features we can try to contact services to get the API-keys for free as we can promote their services, or atleast get a big reduction.

The best way would be to be completely independend but I dont know if it would be possible. If we have enough luck maybe kwatters will set a new neural network and let it learn from siri, alexa etc.. to to their job? ;)


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
kwatters's picture

sraix and url tag with json objects?

yup. the sraix tag has been only semi-worky for a while.  The beauty is, we can update how it works.  I was just reviewing the code, and it looks like you might be able to pass some additional stuff to ProgramAB in an SRAIX tag.  It seems to be expecting a JSON formatted string with a key of "open" in it... 

I haven't tested it, but something like this:

<oob><url>{"open":"http://localhost..../some/url"}</url></oob>

So, in theory, we should be able to tell the sraix tag to query any url

https://github.com/kwatters/program-ab/blob/master/src/org/alicebot/ab/S...

We can (and probably should) continue to support pandorabots by allowing someone to specify their api key.

Additionally, we should come up with our top 5 list for SRAIX tags to get working again, and focus on those.

OpenWeatherMap we can use for getting the weather, yahoo finance can get some stock quotes, what other stuff do we want it to call out for ?  if it just has no response at all, we could try having it ask the great shoutbox bot in the sky... :)

 

 

Kakadu31's picture

For me this would be my

For me this would be my top5:

Image Search
Weather
Facts (distance to the moon etc)
News
maths

maths could be done by wolfram alpha, weather by openweatermap and facts maybe by wikidatafetcher or wolframalfra  maybe we can even get it to try different ways when the first is not an expected response? and maybe we can even get some deeplearning magic with it? 

AutonomicPerfectionist's picture

Google Assistant

Looking into possible solutions and came back to Google Assistant. Apparently Google just released an update to the SDK that allows text input and output in the GRPC API (implementation in Python and Java available). This would allow ProgramAB chatbots to call out to Assistant for sraix calls, or when the specific sraix call chain fails (such as wiki data fetcher being unable to locate information, the query could be sent to Assistant). The current Assistant service is pretty basic and requires a Linux computer, but since Assistant is cloud based, there are ways to access it from Java, allowing it to be cross platform. The only downsides are that it's cloud based and closed source, and that it requires an API key.
I think Assistant would be best suited as a fall back though, since it is more generic than the other solutions. We could also use it in case the chatbot doesn't have a response. I wouldn't use it instead of ProgramAB though since it's very difficult to integrate new features.

On a final note, perhaps we should add a couple methods to ProgramAB to add sraix handlers and fallback handlers, so users can add their own handlers if they want to.
Excited to see what we can do here!

Kakadu31's picture

I found this as possible

I found this as possible replacement for some of the sraix's:

https://github.com/asciimoo/searx

But I agree it wouldbe nice to have a sort of config file where one could choose between a few options for the commands. So one could decide to buy an API key or use what fits the requirements best.