Jason Haley

Ramblings from an Independent Consultant

Demo Review: Simple RAG using SQL Server, OpenAI and Function Calling

Demo Review: Simple RAG using Blazor, SQL Server, Azure OpenAI and Function Calling

If you are like me, a full stack C# developer who is attempting to get up to speed on how GenAI technologies are going to show up in our business applictions - then after you get the first demo up and running, this demo (also by Michael Washington) is a great next step.

RAG (Retrieval Augmented Generation) applications typically have the following steps:


Demo Review: Simple RAG using SQL Server and OpenAI

Demo Review: Simple RAG using Blazor, SQL Server and Azure OpenAI

Are you a full stack C# developer attempting to get up to speed on all this GenAI stuff? Are you typically a relational database developer (ie. SQL Server) wondering what all the hoopla is around vector databases and more importantly how all this stuff relates to some type of functionaly that you have a chance at really using in your day-to-day work? Oh and you probably have not had time to dig into this pattern named Retrieval Augmented Generation (RAG) due to being too busy implementing web application or service code.


RAG Demo Chronicles

Introducing: The RAG Demo Chronicles (Blog Series)

In my last blog entry I mentioned how I’ve been spending a lot of time learning AI related topics lately. Recently the newest research topic is RAG (Retrieval Augmented Generation). The more I learn about RAG, the more I am convinced it is how my clients will be able to take advantage of GenAI in the short term.

For those of you who are not familiar with the topic, you may have heard a presentation or blog focusing on “How to Chat with Your Documents” or something along those lines - these are usually about RAG. The idea is an application that is like ChatGPT but only looks at your data and documents.


(Personal Update) Learning AI

This is the first of many blog posts I plan to make this year, stay tuned (please subscribe) for more soon.

Learning AI

Currently I am working my way through the four stages of competence with the topic of AI. This quarter (Q1 of 2024), I’m currently working on moving from stage 2 to stage 3 in the four stages of competence. For reference, those stages are:

  1. Unconscious incompetence
  2. Conscious incompetence
  3. Conscious competence
  4. Unconscious competence

Last year I moved from stage 1 to stage 2:

In the beginning of last year (2023) I had my head buried in the sand while all the other leaders in my industry were actively learning how to use the latest and greatest AI tool (ChatGPT). Around the middle of the year when Microsoft started making their Github Copilot more available and more useful, I finally started to pay attention and use the new Generative AI tools - specifically in helping my day-to-day activities of coding. I’ve also started to realize that it is nicer to “chat” with a tool in normal language to search instead of trying to find the right mix and order of keywords to do a search (ie. Bing Chat and OpenAI ChatGPT)


Azure VPN Client Using Point-to-Site to Connect to Azure SQL Database

Connect to Azure using Point-to-Site VPN to Connect to Azure SQL Database

This past week a client of mine gave me a challenge:

Configure an environment that meets the following criteria

  1. Remove the need to manage IP addresses for SQL Azure
  2. Use a hub and spoke VNET configuration
  3. Connect to Azure using a VPN - using Azure Active Directory (AAD) authentication would be a bonus
  4. Connect to SQL Azure using AAD authentication

Originally, I thought this would be quick and simple … turns out it isn’t. After doing some searching online, I found many people trying to solve similiar challenges. Here are some recent posts I found in Microsoft Learn:


Quickstart: Deploy an existing container image to Container Apps using Bicep

Like my last post (Quickstart: Container Apps using Bicep), this post is a supplement to the existing Azure Container Apps docs and provides a Bicep walkthrough to getting started.

Quickstart: Deploy an existing container image to Container Apps using Bicep

Azure Container Apps is a serverless platform to run and orchestrate your container applications.

In this quickstart, you’ll use Bicep to create a Container Apps environment with an existing container image stored in an Azure Container Registry. If you have not used Bicep yet or want to learn more about what it can do, I recommend going through the Fundamentals of Bicep learning path to get you started.


Quickstart: Container Apps using Bicep

This quickstart is a supplement to the existing Azure Container Apps docs and provides a Bicep walkthrough to getting started.

Quickstart: Deploy you first container app using Bicep

Azure Container Apps is a serverless platform to run and orchestrate your container applications.

In this quickstart, you’ll use Bicep to create a Container Apps environment with the helloworld sample container image. If you have not used Bicep yet or want to learn more about what it can do, I recommend going through the Fundamentals of Bicep learning path to get you started.


How to set environment variables in a Container App using the Azure CLI

Last month when I presented on Azure Container Apps, I was asked “How would you set an environment variable?”. Since it isn’t currently surfaced in the Azure Portal, I wasn’t sure.

Container Apps is still in preview and right now the best way to access the largest amount of features is by using ARM or Bicep … but since it is new a lot of people start with the Portal or the Azure CLI to explore.


How to rollback a Container App revision using the Azure CLI

Earlier this month I posted How to rollback a Container App revision which focused on using the Azure Portal UI. In this entry I want to go over the same demo scenario using the Azure CLI.

Prerequisites for this walkthrough are to follow the steps in the Quickstart first: Deploy your first container app (Azure CLI), and insert the following steps before the last Clean up resources step.

Rollback a container app revision using the Azure CLI

At this point you’ve created the Container App and verified the deployment in the browser, now let’s look at the list of revisions using the containerapp revision list command.


How to rollback a Container App revision

Last week I presented “A look at Azure Container Apps” to our local Azure user group. I was my first time presenting the topic and I’ll just say it wasn’t my best presentation (believe me - I’ve watched the whole recording). But anyway … during one of the demos a question came up about if it was easy to rollback a revision. I attempted to do perform a demo of how to do it, but the demo gods were not helping me last Thursday night.