Gaurav Mantri's Personal Blog.

Azure Sidekick – An AI Assistant to Answer Questions About Your Azure Resources (Introduction)

I am pleased to present to you Azure Sidekick, an AI assistant that can answer questions about the resources running in your Azure Subscriptions.

Unlike my other posts which are quite code heavy, in these series of posts about this tool, I will take you through the journey I undertook while building this. I will talk about my motivations behind building this and some things I learned along the way.

In this post, I will talk about what this AI assistant is and what can it do today. I will talk about why I built it and then the tools and technology used to build this.

So, let’s begin.

What is Azure Sidekick?

As mentioned above, Azure Sidekick is an AI assistant that can (eventually) answer questions about the resources running in your Azure Subscriptions using natural language.

Currently following scenarios are supported:

  • General Azure Questions: It can answer your general Azure questions. For example, you can ask it to explain Azure Lighthouse to you or you can ask it to compare different messaging services available in Azure. For this, it relies on the knowledge of the LLM (so the information may be outdated). In future, I might integrate Bing search so that most current information is available when answering general Azure questions.
  • Questions about Storage Accounts: It can answer questions about storage accounts in an Azure Subscription. For example, you ask it to find storage accounts that are tagged/not-tagged/tagged with specific name/value pairs, or find storage accounts of certain kind etc. Basically, you can ask questions about storage accounts in your Azure Subscription based on its properties.
  • Questions about a specific Storage Account: It can answer questions about a specific storage account in an Azure Subscription. For example, you can ask it to find if a specific storage account can host static website, or find its location etc. Basically, you can ask questions about a specific storage account in your Azure Subscription based on its properties.
  • General Azure Storage Questions: Lastly, you can use it to get answers to general questions related to Azure Storage. For example, you can ask it to provide naming rules for a storage account, or limitations on the number of blob containers you can create etc.

Currently, the scope of this assistant is very limited but one thing to understand is that Azure is very vast with over 200+ services and support for more services will come in due course of time.

I prepared a small video (nothing fancy by any means) about it, that you can watch.

Why did I build it?

Simple answer, to scratch the itch to build an AI assistant from start to end :). I have been reading a lot about Generative AI and wanted to go through the “pain” of building an AI assistant to apply my learnings and to learn new things.

Before building this tool, I had some beliefs (like, what’s the big deal with prompts) and I was happy to see that some of them were a lot misplaced :). I also got an opportunity to test some of my hypothesis.

Building this tool taught me a lot and those were reflected in some of my recent posts and I will share those in my future posts as well.

Tools & Technologies

In its current form, Azure Sidekick is a console application written using .Net 8. For Generative AI, it makes use of Azure OpenAI (I used a GPT-4 model) and makes use of Microsoft Semantic Kernel for AI orchestration.

Sometime back I wrote an introductory post about Microsoft Semantic Kernel and at that time I thought what is the need for it when you have more robust and feature rich orchestration engines like LangChain available (one of my beliefs that got shattered :)).

After using it for some time now, I am pleasantly surprised with the progress it has made and how robust it is. If you are building a Gen AI application using .Net, please give it a serious try. I think you will not be disappointed.

Source Code

I am very happy to say that the tool is open source and is available on GitHub:

https://github.com/gmantri/azure-sidekick

My humble request is to try it out and let me know the feedback. It would be even more awesome, if we can collaborate on this.

Conclusion

That’s it for this post. I sincerely hope that you will use this. In the next post, I will talk about some things I learned while building this, so stay tuned for that.

So long!


[This is the latest product I'm working on]