Skip to main content

Can I make an Alexa Skill That Searches Bing Via My Personal Account?

 

 


 Can I make an Alexa Skill That Searches Bing? 

 I use Bing as my search engine, and would love it if I could ask Alexa and have that trail of searches attached to my account to look back upon.

 Fun fact: When you ask Alexa a question, it's already using Bing. But it's not using my account. So let's see if I can walk through the idea.

 Questions:

 Alexa searches the internet when you ask it a query. What specifically does it search? It's own database of information? Is it like ChatGPT where the system is not directly connected to the internet but has all of the internet up until a certain point in the past?

 Can I make an Alexa Skill that attaches to a dataset of information I host on AWS? The preliminary search reveals Knowledge Skills, which seems to be "give us information and when people ask about it, we can just tell them within the scope of our knowledge."

Would I need AWS to make an Alexa Skill at all?

Most likely;

When you create a custom skill, you create either an AWS Lambda function or a web service that can handle requests from Alexa. The code you write for this service needs to [ have a request and response].

From here

Can I use an AWS Lambda Function to Search Bing?

 Lambdas run a single function. Theoretically it is possible to simply have it run a search query. We need to attach it to a runtime (Programming language).

 How could that single function look like?

if TriggerWord = "Hey Bing"

    run search.Bing([spoken query])

Turns out there's an entire language to coding a skill. This video outlines it well. 

If I wanted to activate a skill, say, "Alexa, ask Bing, for local movie times.", it would be outlined as such;

The wake word is Alexa

The launch word is ask

The Invocation Name is Bing

for has no particular meaning. 

The Utterance is local movie times. And utterances lead to Intents.
(local movie times could also be a slot, as that's the specific thing we're asking for. Slots can go within utterances)


I think the second part of that code would need more information.

Me too. Maybe a lambda isn't the best option.

Could I use a Lambda to log into my Microsoft account and then use more resources to have it search afterward?

Maybe! Let's conceptualize some code!

if TriggerWord = "Hey Bing"

    run login.Bing({email | password})

 Yep, I think we need more code. Possibly something that opens the login URL and logs in for us, unless Bing has an API to do that.

 I asked Copilot to make me some Python code, and I adjusted it a bit. I didn't tell it it was for a mock AWS Skill.

    if user_vocal_input == "hey bing":
        def open_bing_login():
    # URL for Bing login
        bing_login_url = "https://login.live.com/"
        webbrowser.open(bing_login_url) 


How long would that take to run? This is not a header question, but me asking "from Trigger Word, to log in, to the actual process of logging in, to searching and retrieving information, how long would it take?"


Has This Been Done Before?

Yes, but the Skill was removed; It used to bring back the first page of Google search results.

Comments

Popular posts from this blog

Connecting IoT Devices to a Registration Server (Packet Tracer, Cisco)

 If you're seeing this post, I'm helping you, and you probably have LI presence: React and share this post to help me in return.   In Packet Tracer, a demo software made by Cisco Systems. It certainly has changed a lot since 2016. It's almost an Olympic feat to even get started with it now, but it does look snazzy. This is for the new CCNA, that integrates, among other things, IoT and Automation, which I've worked on here before. Instructions here . I don't know if this is an aspect of "Let's make sure people are paying attention and not simply following blindly", or an oversight - The instructions indicate a Meraki Server, when a regular one is the working option here. I have to enable the IoT service on this server. Also, we assign the server an IPv4 address from a DHCP pool instead of giving it a static one. For something that handles our IoT business, perhaps that's safer; Getting a new IPv4 address every week or so is a minimal step against an

Create a Simple Network (Packet Tracer) + A Walkthrough

Again; I've done this, but now there's so many new things, I'm doing it again. The truly new portions were...everything on the right side of this diagram; The cloud needed a coax connector and a copper Ethernet connector. It's all easy to install, turn off the cloud (Weird), install the modules. Getting the Cable section of Connections was an unusual struggle - The other drop down menu had nothing within. It required going into the Ethernet options and setting the Provider Network to 'cable', which is the next step AFTER the drop-downs. The rest was typical DHCP and DNS setups, mainly on the Cisco server down there. The post is rather short - How about adding a video to it? Find out what A Record means - This site says 'Maps a name to an IP address', which is DNS. So it's another name for DNS? You can change them (presumably in a local context) to associate an IP address to another name.

Securing Terraform and You Part 1 -- rego, Tfsec, and Terrascan

9/20: The open source version of Terraform is now  OpenTofu     Sometimes, I write articles even when things don't work. It's about showing a learning process.  Using IaC means consistency, and one thing you don't want to do is have 5 open S3 buckets on AWS that anyone on the internet can reach.  That's where tools such as Terrascan and Tfsec come in, where we can make our own policies and rules to be checked against our code before we init.  As this was contract work, I can't show you the exact code used, but I can tell you that this blog post by Cesar Rodriguez of Cloud Security Musings was quite helpful, as well as this one by Chris Ayers . The issue is using Rego; I found a cool VS Code Extension; Terrascan Rego Editor , as well as several courses on Styra Academy; Policy Authoring and Policy Essentials . The big issue was figuring out how to tell Terrascan to follow a certain policy; I made it, put it in a directory, and ran the program while in that directory