Jason Haley

Ramblings from an Independent Consultant

eShopSupport Series: DataGenerator Project

This is the first part of my eShopSupport Series which looks into the details of the eShopSupport GitHub repository.

DataGenerator Project

The DataGenerator is a console application that will generate multiple types of seed data files for loading into the application or to use when evaluating the question answering functionality. However, you don’t have to use the DataGenerator - there are two sets of generated files provided in the github repo: dev and test.

Files

In this entry I will provide some detail of what the DataGenerator application does, some interesting things about it and a few things I’d like to change.


Virtual Boston Azure August 2024

Last night I spoke at the Virtual Boston Azure meetup. The talk was about the Azure Developer CLI and geared towards developers.

The recording of the session can be found on the Boston Azure YouTube channel.

Talk: What is the Azure Dev CLI (AZD) and How Can You Use It?

Slide 1

The presentation pdf can be downloaded here.

The resource slides: Resource Slide 1

I added this slide after the presentation with links I mentioned after the recording was stopped:


eShopSupport Series

Announcing: The eShopSupport Series

In case you missed this week’s .NET Conf Focus on AI you can find all the videos on the dotnet YouTube channel. The one I want to point out here is: Better Together: .NET Aspire and Semantic Kernel with Steve Sanderson and Matthew Bolanos.

Steve’s portion of the talk is a distilled version of his NDC talk earlier this year: How to add genuinely useful AI to your webapp (not just chatbots) where he introduced the eShopSupport project. If you are a .NET developer looking for ways to use AI in real world applications - you should absolutely watch that video.


Wisconsin .NET User Group

Last Thursday night I spoke at the Wisconsin .NET User Group near Milwaukee, WI. I was nice to meet so many .NET developers interested in RAG and AI.

To carry on the tradition from my Memphis talk, I gave the presentation a local look using images related to Milwaukee generated from Bing/create.

Talk: Getting Started with Retrieval Augmented Generation (RAG)

RAG Slide 1

The presentation pdf can be downloaded here.

RAG Last Slide

One of my demos failed to deploy before the talk, but I don’t think it was missed due to having so many good questions. It was really nice meeting a user group with so many core members. Plus the pizza was really good!


Boston Azure June 2024

Last night was the Season of AI presentation. We started with Bill Wilder presenting the fundamentals of Generative AI and quick introduction to Azure AI Studio, then I finished up with a .NET code walkthrough implement Retrieval Augmented Generation (RAG) using Semantic Kernel.

It was nice to see a lot of regular faces and meet several new people.

Demo Code

The demo code is on my GitHub repo BostonAzure-June2024 under a subdirectory.


Demo Review: Chat Copilot

Demo Review: Chat Copilot

This is the fifth C# demo in The RAG Demo Chronicles (Blog Series) and has the most extensive use of Semantic Kernel out of all the demos I’ve reviewed.

The use of Retrieval Augmented Generation (RAG) is different with this project than the other demos I’ve reviewed - mainly because RAG is just one of its features.

With this demo, I also took the time to configure the optional authentication so I could play with the MS Graph plugin … and WOW! Just adding the web searcher and MS Graph plugin really make this a powerful demo app. It gives me a lot of ideas for my own projects.


Semantic Kernel Hello World WebSearchEnginePlugin

UPDATE: The Bing Search APIS are being deprecated. See the announcement for more details: Bing Search APIs retiring on August 11, 2025. I have updated the post and corresponding Github code to use the Brave connector instead.

A couple of weeks ago I thought I’d written my last of these blogs, mainly due to me getting more in depth with Semantic Kernel. However, after I watched Will Velida’s video Using Bing Search API in the Semantic Kernel SDK … I couldn’t help but wonder what the API calls were behind the scenes. Will does a great job at explaining how to use the plugin and the Bing resource needed to make calls to the search API, so I won’t get into that part of it - I want to focus on the usefulness and API calls made by the plugin.


Semantic Kernel Hello World Planners Part 2 - (Deprecated)

UPDATE: Planners have been deprecated. See this Semantic Kernel blog for more detail: Semantic Kernel: Package previews, Graduations & Deprecations

Last week in the Semantic Kernel Hello World Planners Part 1 entry, I used the Handlebars planner to implement the sample Hello World functionality and then looked at the token difference between using a saved plan vs. generating a plan. In this entry I use the Function Calling Stepwise Planner to create the sample Hello World functionality and compare it to the implementation in the Semantic Kernel Hello World Plugins Part 3 entry.


Semantic Kernel Hello World Planners Part 1 - (Deprecated)

UPDATE: Planners have been deprecated. See this Semantic Kernel blog for more detail: Semantic Kernel: Package previews, Graduations & Deprecations

A few weeks ago in the Semantic Kernel Hello World Plugins Part 3 blog entry, I showed how to use OpenAI Function Calling. The last half of that entry was all about how to view the response and request JSON going back and forth to OpenAI, which detailed four API calls. In this entry I look at using the Handlebars Planner to accomplish the same functionality. Then I’ll show the request and response JSON for both using a saved plan as well as having the LLM create a plan and end with a token usage comparison.


Memphis Azure User Group

Last Thursday night I spoke at the Memphis Azure User Group, it was nice to meet some people in person and see how excited others are about finding valuable ways to work GenAI into their applications.

I also gave my slide deck a completely new look (Memphis themed via Bing/create):

Talk: Getting Started with Retrieval Augmented Generation (RAG)

RAG Slide 1

The presentation pdf can be downloaded here.

RAG Last Slide

Since the presentation was hybrid, there were not as many questions as the other two times I’ve given the talk … or that is my guess at the reason why it was so quiet. That also means I should have put that third demo back in the presentation (I took a demo out after the first version of the talk since there were so many questions and needed to free up time for Q&A). Next time I’ll have it ready to use in case I need it.