I'm intrigued by Amazon LEX for building a bot but at the same time love the ease of Firebase. Is there a similar product on Google? Maybe accessible via Google Cloud Function?
Google owns api.ai. That seems to provide the closest functionality to Lex. Hopefully that gives you something to look into.
Also, I haven't done this personally, but it seems like an article that might help you:
http://glaforge.appspot.com/article/a-tight-develop-test-loop-for-developing-bots-with-api-ai-the-google-cloud-function-emulator-node-js-and-ngrok
Api.ai supports context based conversations now, which reduces the overhead of handling user context in session parameters. On the other hand in Lex this has to be handled in session. Also, api.ai can be used for both voice and text based conversations (assistant actions can be easily created using api.ai). But Amazon Lex (text) and Alexa (amazon echo) are entirely different. Hopefully in near future both Lex and Alexa will be under one sdk.
Update
Amazon has launched its improved beta Alexa skill builder similar to api.ai
Related
I don't know if my app will work in China and I don't know how to test it. I had read somewhere that there's a firebase Chinese domain .cn in operation. Is there a possibility to transfer the current project to the Chinese domain and make it work, if it doesn't already?
If I create a new project and select the Chinese servers for my firebase services then will it have any other adverse consequences for the rest of the world? This solution would literally force all the developers to have the firebase servers located in China, just so they don't miss out out on their Chinese user base, which I assume could be an issue to some.
I might not have the best ideas but any suggestion and a workaround would be appreciated.
There isn't a simple way to do that. Indeed, trying to set the servers there might a be way, but it's not a guarantee, since China Firewalls are constantly changing. You can try some onlines tools as this one here to verify if your domain is blocked, by adding the URL of your application.
Besides that, the best option is the one clarified in this other post here. You would create an API in Heroku and make the data and calls from Firebase go over this API, so it would make the connection. Another option you may try is using a proxy server - as very well explained in the article Firebase: Accessing Firestore and Firebase through a proxy server - so it gets complied and it's possible to be used in China.
The usage of VPN is not a very good option, as not of them work in China and the ones that work can easily vary, also, this could impact the usability, since it might affect performance and usage for the users there.
To summarize, there isn't a specific and fully correct answer to using Firestore in China, due to the fact that updates and changes on their rules are regular, but these are some alternatives that you can give it a try. It's more about trying the one that would be less damaging for your use case.
Let me know if the information helped you!
Might be helpful for someone...
There is a Firebase alternative for China - Huawei Mobile Services. It contains services like Auth Service, Cloud Functions, Cloud DB, Crash, Push Kit, Ad Kit, and many more...
I have a database of customers details with their phone numbers, I want to develop a skill where my customers can place calls by searching that database.
I referred this link and found that calling skill can be implemented, but as far as I know, there's no documentation available for it, so if anyone could guide me through how calling skill can be implemented that would be helpful.
thanks
finally, Amazon developers have responded, that it is not possible to call anyone through Alexa , we can always use 3rd party APIs though.
I'm building an app which uses user contributed content.
The contribution by each user should be available to all others in real time.
I was looking into firebase Realtime database for this.
However, when a user contributes content, there are quite heavy validations and calculations (read server side) to be done on the data before making it available to others.
Is it possible to have a server side validation in firebase ? Or should I look for alternatives ?
Initially, Firebase did not have a feature to implement server-side processing/calculations. All your processing had to be done on the client side.
Now, they've recently introduced a new feature called Cloud Functions For Firebase. Its a really useful new addition where you can write server-side code without the hassles of managing servers or instances. Read up more about it from the above link.
Also, this Youtube playlist by Jen Person is a great start. And, you can find examples similar to your use case here.
My application let users capture and organize their online learning experiences. For this we ask for users' learning interests during onboarding. Just wanted to check if I can make use of AutoSuggestion API to provide suggestions to users. Here the intention of users is to enter something related to learning interest like JAVA, AWS, Oracle, Geography, digital marketing, SEO etc.
Ex. if user enters "ja", the application should show java, java script. Currently I get the following responses: java, jacobsconnect, jamba juice, jack in the box etc. Am using Test API console for Auto Suggest API. It finally makes this HTTP request
GET https://api.cognitive.microsoft.com/bing/v5.0/suggestions/?q=ja
HTTP/1.1 Host: api.cognitive.microsoft.com Ocp-Apim-Subscription-Key:
••••••••••••••••••••••••••••••••
I can build a curated list of skills and implement auto-fill. But am just curious to know if I can use Auto Suggest API instead. I couldn't find any useful information through their online documents.
I have got the following response from Azure service team and unfortunately the requested feature is not possible with Autosuggest API. Please find their response below:
Hi! We wanted to follow up and let you know that the service team informed us the functionality requested in your SO post is not part of the AutoSuggest API. They have, however, noted your interest in this type of behavior and appreciate the feedback.
I'm using this link https://www.google.com/reader/api/0/stream/contents/feed/FEEDHERE?output=json&n=20
to fetch feeds using Google's algorithm. As you can see I'm not adding any other parameters, just fetching the returned data in JSON format. My app will be heavily used hopefully and if I send a lot of requests to this link, will Google block my access or something?
Is there anything I can include, like userip, url for my app (so if they have problem to just contact me) or something else?
The most basic answer to your question is that Google will change its Terms of Service whenever it likes, and you've got no say in the matter. So if it's allowed today, it might not be allowed tomorrow, at Google's whim.
On this issue, though, you seem fairly safe. From the Terms of Service (these is the general document, since Reader doesn't seem to have a specific one):
Don’t misuse our Services. For example, don’t interfere with our Services or try to access them using a method other than the interface and the instructions that we provide.
Google provides RSS and Atom. They provide these feeds, so I assume they expect that they'll be used. They don't say that it's a misuse to point someone else at those feeds, so it looks OK for now, but they could add such a clause at any time.
All online services are subject to the terms and conditions of the providers of those services. So, as others have said, they may be ok with your use today, but they can change their mind any time down the line. I doubt including a URL or email or contact info will help anything, because when these services change, they don't notify every user of the service, they just announce the change publicly, and usually they give several month's notice in order to give users a chance to adapt their applications, but this is not standardized or enforced so there is no guarantee. One example would be the fairly recent discontinuance of the Google Finance API (for which no replacement has been announced).
The safest approach would be to design your app such that this feature that uses google's functionality is decoupled as much as possible from the rest of your app, so that, when or if the availability of the service changes (ie it's no longer available at all) you can adapt your app to use some other source for the feeds with minimal impact to the rest of the app. Design for change and plan for the worst.