<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Azure on Jason Haley</title>
    <link>https://jasonhaley.com/tags/azure/</link>
    <description>Recent content in Azure on Jason Haley</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <managingEditor>info@jasonhaley.com (Jason Haley)</managingEditor>
    <webMaster>info@jasonhaley.com (Jason Haley)</webMaster>
    <lastBuildDate>Sun, 19 Oct 2025 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://jasonhaley.com/tags/azure/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Agentic RAG Chronicles</title>
      <link>https://jasonhaley.com/2025/10/19/introducing-agentic-rag-chronicles-series/</link>
      <pubDate>Sun, 19 Oct 2025 00:00:00 +0000</pubDate>
      <author>info@jasonhaley.com (Jason Haley)</author>
      <dc:creator>Jason Haley</dc:creator>
      <guid>https://jasonhaley.com/2025/10/19/introducing-agentic-rag-chronicles-series/</guid>
      <description>&lt;h1 id=&#34;introducing-the-agentic-rag-chronicles-blog-series&#34;&gt;Introducing: The Agentic RAG Chronicles (Blog Series)&lt;/h1&gt;&#xA;&lt;p&gt;Last year I &lt;a href=&#34;https://jasonhaley.com/2024/02/04/introducing-rag-demo-chronicles-series/&#34;&gt;chronicled several RAG Demos &lt;/a&gt; with the idea I would have a documented place to return to when I was looking for specify RAG features. Having those demos documented and all the reference links in one location really was useful for me - so I am going to do the same thing this year, but with Agentic RAG components.&lt;/p&gt;&#xA;&lt;h2 id=&#34;agentic-rag&#34;&gt;Agentic RAG&lt;/h2&gt;&#xA;&lt;p&gt;Last year when I was learning RAG, that technique became known as Standard RAG or Semantic RAG. At its core, it&amp;rsquo;s a system that uses semantic search—understanding meaning rather than just matching keywords—to find relevant information, then feeds that information to an LLM to answer a user&amp;rsquo;s question. When you first build one of these systems, the results feel almost magical. But it doesn&amp;rsquo;t take long before you encounter questions the system can&amp;rsquo;t answer using semantic search alone.&lt;/p&gt;</description>
      <category>Agentic RAG Series</category><category>Agents</category><category>AI</category><category>Azure</category><category>Learning</category><category>RAG</category>
    </item>
    <item>
      <title>Virtual Boston Azure AI - Microsoft Build Recap</title>
      <link>https://jasonhaley.com/2025/05/29/virtual-boston-azure-ai-msbuild-recap/</link>
      <pubDate>Thu, 29 May 2025 00:00:00 +0000</pubDate>
      <author>info@jasonhaley.com (Jason Haley)</author>
      <dc:creator>Jason Haley</dc:creator>
      <guid>https://jasonhaley.com/2025/05/29/virtual-boston-azure-ai-msbuild-recap/</guid>
      <description>&lt;p&gt;Last night Bill, Udai, Veronika and I gave our top picks from Microsoft Build at the &lt;a href=&#34;https://www.meetup.com/bostonazureai/events/307065236/&#34;&gt;Virtual Boston Azure AI meetup&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;In order to not overlap topics, we each picked areas to cover - mine was Copilot and Copilot Studio.&lt;/p&gt;&#xA;&lt;h2 id=&#34;my-picks&#34;&gt;My picks:&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.microsoft.com/en-us/microsoft-365/blog/2025/04/23/microsoft-365-copilot-built-for-the-era-of-human-agent-collaboration/&#34;&gt;&lt;strong&gt;Copilot Wave 2 Spring release features&lt;/strong&gt;&lt;/a&gt; – this was announced in April but still hasn’t landed for us. You’ll know when this lands due to the look of Copilot changing. The navigation will be on the left side of the screen with the new release (instead of the right where it is now).&lt;/p&gt;</description>
      <category>AI</category><category>Azure</category><category>Copilot</category><category>Copilot Studio</category><category>Learning</category><category>Presentation</category>
    </item>
    <item>
      <title>eShopSupport Series: EvaluationTests Project</title>
      <link>https://jasonhaley.com/2024/12/11/eshopsupport-evaluation-tests/</link>
      <pubDate>Wed, 11 Dec 2024 00:00:00 +0000</pubDate>
      <author>info@jasonhaley.com (Jason Haley)</author>
      <dc:creator>Jason Haley</dc:creator>
      <guid>https://jasonhaley.com/2024/12/11/eshopsupport-evaluation-tests/</guid>
      <description>&lt;p&gt;This is the seventh part of the &lt;a href=&#34;https://jasonhaley.com/2024/08/23/introducing-eshopsupport-series/&#34;&gt;eShopSupport Series&lt;/a&gt; which covers the details of the &lt;a href=&#34;https://github.com/dotnet/eshopsupport&#34;&gt;eShopSupport&lt;/a&gt; GitHub repository.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;NOTE: This entry will make the most sense to you if you&amp;rsquo;ve first read &lt;a href=&#34;https://jasonhaley.com/2024/09/20/eshopsupport-evaluator/&#34;&gt;eShopSupport: Evaluator Project&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;h1 id=&#34;evaluationtests-project&#34;&gt;EvaluationTests Project&lt;/h1&gt;&#xA;&lt;p&gt;The &lt;a href=&#34;https://github.com/dotnet/eShopSupport/tree/main/test/EvaluationTests&#34;&gt;EvaluationTests&lt;/a&gt; project is a recently added xUnit Test Project that uses the new &lt;code&gt;Microsoft.Extensions.AI.Evaluation&lt;/code&gt; packages highlighted in this blog: &lt;a href=&#34;https://devblogs.microsoft.com/dotnet/evaluate-the-quality-of-your-ai-applications-with-ease/&#34;&gt;Evaluate the quality of your AI applications with ease&lt;/a&gt;. I think the idea is to replace the &lt;a href=&#34;https://github.com/dotnet/eShopSupport/tree/main/src/Evaluator&#34;&gt;Evaluator&lt;/a&gt; project but, as is, it doesn&amp;rsquo;t run all 500 evaluation questions in the dev folder (which is good since it would not be cheap to do unless you are running locally).&lt;/p&gt;</description>
      <category>AI</category><category>Azure</category><category>eShopSupport Series</category><category>Evaluations</category><category>Learning</category>
    </item>
    <item>
      <title>Virtual Boston Azure Lunchtime November 2024</title>
      <link>https://jasonhaley.com/2024/11/15/november-2024-virtual-boston-azure-lunchtime-meetup/</link>
      <pubDate>Fri, 15 Nov 2024 00:00:00 +0000</pubDate>
      <author>info@jasonhaley.com (Jason Haley)</author>
      <dc:creator>Jason Haley</dc:creator>
      <guid>https://jasonhaley.com/2024/11/15/november-2024-virtual-boston-azure-lunchtime-meetup/</guid>
      <description>&lt;p&gt;Today at lunchtime &lt;a href=&#34;https://blog.codingoutloud.com/&#34;&gt;Bill Wilder&lt;/a&gt; and I spoke at the &lt;a href=&#34;https://www.meetup.com/bostonazure/events/304405840/&#34;&gt;Virtual Boston Azure meetup&lt;/a&gt;. Our talks were based on the same material we presented on &lt;a href=&#34;https://jasonhaley.com/2024/11/12/november-2024-virtual-boston-azure-meetup/&#34;&gt;Tuesday night&lt;/a&gt;, however I introduced &lt;a href=&#34;https://github.com/dotnet/eShopSupport&#34;&gt;eShopSupport&lt;/a&gt; as well today.&lt;/p&gt;&#xA;&lt;p&gt;The recording of the session can be found on the &lt;a href=&#34;https://youtu.be/FYWJU7LBi8k&#34;&gt;(Lunchtime editions) Boston Azure YouTube channel&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h1 id=&#34;talk-add-gen-ai-to-your-existing-net-apps-with-semantic-kernel--azure-sql&#34;&gt;Talk: Add Gen AI to your existing .NET apps with Semantic Kernel &amp;amp; Azure SQL&lt;/h1&gt;&#xA;&lt;p&gt;&#xD;&#xA;  &lt;img src=&#34;https://jasonhaley.com/img/2024-11-15-img1.jpg&#34; alt=&#34;Slide 1&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;My part of the presentation PDF can be downloaded &lt;a href=&#34;https://jhaleysftp.blob.core.windows.net/files/AddingGenAIWithSemanticKernel(friday-edition).pdf&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;</description>
      <category>Azure</category><category>Azure SQL</category><category>Entity Framework Core</category><category>Learning</category><category>Presentation</category><category>Semantic Kernel</category>
    </item>
    <item>
      <title>Virtual Boston Azure November 2024</title>
      <link>https://jasonhaley.com/2024/11/12/november-2024-virtual-boston-azure-meetup/</link>
      <pubDate>Tue, 12 Nov 2024 00:00:00 +0000</pubDate>
      <author>info@jasonhaley.com (Jason Haley)</author>
      <dc:creator>Jason Haley</dc:creator>
      <guid>https://jasonhaley.com/2024/11/12/november-2024-virtual-boston-azure-meetup/</guid>
      <description>&lt;p&gt;Last night &lt;a href=&#34;https://blog.codingoutloud.com/&#34;&gt;Bill Wilder&lt;/a&gt; and I spoke at the &lt;a href=&#34;https://www.meetup.com/bostonazure/events/304405840/&#34;&gt;Virtual Boston Azure meetup&lt;/a&gt;. Our talks were about adding GenAI to .NET applications. My portion was mostly demos that focused on Azure SQL&amp;rsquo;s new native VECTOR support, Entity Framework Core and Semantic Kernel.&lt;/p&gt;&#xA;&lt;p&gt;The recording of the session can be found on the &lt;a href=&#34;https://www.youtube.com/watch?v=qiBtBEGnnBc&#34;&gt;Boston Azure YouTube channel&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h1 id=&#34;talk-add-gen-ai-to-your-existing-net-apps-with-semantic-kernel--azure-sql&#34;&gt;Talk: Add Gen AI to your existing .NET apps with Semantic Kernel &amp;amp; Azure SQL&lt;/h1&gt;&#xA;&lt;p&gt;&#xD;&#xA;  &lt;img src=&#34;https://jasonhaley.com/img/2024-11-12_img1.jpg&#34; alt=&#34;Slide 1&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;The presentation pdf can be downloaded &lt;a href=&#34;https://jhaleysftp.blob.core.windows.net/files/AddingGenAIWithSemanticKernel.pdf&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;</description>
      <category>Azure</category><category>Azure SQL</category><category>Entity Framework Core</category><category>Learning</category><category>Presentation</category><category>Semantic Kernel</category>
    </item>
    <item>
      <title>eShopSupport Series: Customer Web UI Project</title>
      <link>https://jasonhaley.com/2024/10/19/eshopsupport-customerwebui/</link>
      <pubDate>Sat, 19 Oct 2024 00:00:00 +0000</pubDate>
      <author>info@jasonhaley.com (Jason Haley)</author>
      <dc:creator>Jason Haley</dc:creator>
      <guid>https://jasonhaley.com/2024/10/19/eshopsupport-customerwebui/</guid>
      <description>&lt;p&gt;This is the sixth part of the &lt;a href=&#34;https://jasonhaley.com/2024/08/23/introducing-eshopsupport-series/&#34;&gt;eShopSupport Series&lt;/a&gt; which covers the details of the &lt;a href=&#34;https://github.com/dotnet/eshopsupport&#34;&gt;eShopSupport&lt;/a&gt; GitHub repository.&lt;/p&gt;&#xA;&lt;h1 id=&#34;customerwebui-project&#34;&gt;CustomerWebUI Project&lt;/h1&gt;&#xA;&lt;p&gt;The &lt;a href=&#34;https://github.com/dotnet/eShopSupport/tree/main/src/CustomerWebUI&#34;&gt;CustomerWebUI&lt;/a&gt; project is a Blazor application used to capture support ticket information from customers. It is one of the two user interface projects in the solution that highlight how to adding some AI functionality into business applications can be  useful. The project is located under the src folder:&lt;/p&gt;&#xA;&lt;p&gt;&#xD;&#xA;  &lt;img src=&#34;https://jasonhaley.com/img/2024-10-19_img1.jpg&#34; alt=&#34;Project Folder&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;In this entry I&amp;rsquo;ll cover the functionality the web application provides, a few things I found interesting and some thoughts on improvements.&lt;/p&gt;</description>
      <category>AI</category><category>Azure</category><category>eShopSupport Series</category><category>Learning</category>
    </item>
    <item>
      <title>eShopSupport Series: Python Inference Project</title>
      <link>https://jasonhaley.com/2024/10/12/eshopsupport-pythoninference/</link>
      <pubDate>Sat, 12 Oct 2024 00:00:00 +0000</pubDate>
      <author>info@jasonhaley.com (Jason Haley)</author>
      <dc:creator>Jason Haley</dc:creator>
      <guid>https://jasonhaley.com/2024/10/12/eshopsupport-pythoninference/</guid>
      <description>&lt;p&gt;This is the fifth part of the &lt;a href=&#34;https://jasonhaley.com/2024/08/23/introducing-eshopsupport-series/&#34;&gt;eShopSupport Series&lt;/a&gt; which covers the details of the &lt;a href=&#34;https://github.com/dotnet/eshopsupport&#34;&gt;eShopSupport&lt;/a&gt; GitHub repository.&lt;/p&gt;&#xA;&lt;h1 id=&#34;pythoninference-project&#34;&gt;PythonInference Project&lt;/h1&gt;&#xA;&lt;p&gt;The &lt;a href=&#34;https://github.com/dotnet/eShopSupport/tree/main/src/PythonInference&#34;&gt;PythonInference&lt;/a&gt; Project is a python project that provides a web API to classify the case type when a new customer support ticket is entered in the system. It does this by passing the user&amp;rsquo;s comment to the API, which uses a local model from Hugging Face (&lt;a href=&#34;https://huggingface.co/cross-encoder/nli-MiniLM2-L6-H768&#34;&gt;cross-encoder/nli-MiniLM2-L6-H768&lt;/a&gt;) to classify the text.&lt;/p&gt;&#xA;&lt;p&gt;&#xD;&#xA;  &lt;img src=&#34;https://jasonhaley.com/img/2024-10-12_img1.jpg&#34; alt=&#34;Case Type Dropdown&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/p&gt;</description>
      <category>AI</category><category>Azure</category><category>eShopSupport Series</category><category>Learning</category><category>Python</category>
    </item>
    <item>
      <title>eShopSupport Series: Aspire Projects (AppHost and ServiceDefaults)</title>
      <link>https://jasonhaley.com/2024/10/04/eshopsupport-aspire-projects/</link>
      <pubDate>Fri, 04 Oct 2024 00:00:00 +0000</pubDate>
      <author>info@jasonhaley.com (Jason Haley)</author>
      <dc:creator>Jason Haley</dc:creator>
      <guid>https://jasonhaley.com/2024/10/04/eshopsupport-aspire-projects/</guid>
      <description>&lt;p&gt;This is the fourth part of the &lt;a href=&#34;https://jasonhaley.com/2024/08/23/introducing-eshopsupport-series/&#34;&gt;eShopSupport Series&lt;/a&gt; which covers the details of the &lt;a href=&#34;https://github.com/dotnet/eshopsupport&#34;&gt;eShopSupport&lt;/a&gt; GitHub repository.&lt;/p&gt;&#xA;&lt;h1 id=&#34;the-aspire-projects-apphost-and-servicedefaults&#34;&gt;The Aspire Projects (AppHost and ServiceDefaults)&lt;/h1&gt;&#xA;&lt;p&gt;Unlike the other blog entries in this &lt;a href=&#34;https://jasonhaley.com/2024/08/23/introducing-eshopsupport-series/&#34;&gt;eShopSupport Series&lt;/a&gt;, this one is going to cover two projects in the solution: &lt;a href=&#34;https://github.com/dotnet/eShopSupport/tree/main/src/AppHost&#34;&gt;AppHost&lt;/a&gt; and &lt;a href=&#34;https://github.com/dotnet/eShopSupport/tree/main/src/ServiceDefaults&#34;&gt;ServiceDefaults&lt;/a&gt; - both are important for the &lt;a href=&#34;https://learn.microsoft.com/en-us/dotnet/aspire/get-started/aspire-overview&#34;&gt;Aspire&lt;/a&gt; local development experience. These projects are located under the src folder:&lt;/p&gt;&#xA;&lt;p&gt;&#xD;&#xA;  &lt;img src=&#34;https://jasonhaley.com/img/2024-10-04_img1.jpg&#34; alt=&#34;Project Folders&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;In this entry I&amp;rsquo;ll cover the details of how the AppHost and ServiceDefaults projects are used in the local development environment, a few things I found interesting and some thoughts on improvements.&lt;/p&gt;</description>
      <category>AI</category><category>Azure</category><category>eShopSupport Series</category><category>Learning</category>
    </item>
    <item>
      <title>Techbash 2024</title>
      <link>https://jasonhaley.com/2024/09/27/techbash-2024/</link>
      <pubDate>Fri, 27 Sep 2024 00:00:00 +0000</pubDate>
      <author>info@jasonhaley.com (Jason Haley)</author>
      <dc:creator>Jason Haley</dc:creator>
      <guid>https://jasonhaley.com/2024/09/27/techbash-2024/</guid>
      <description>&lt;p&gt;This week I presented at the &lt;a href=&#34;https://techbash.com/&#34;&gt;TechBash conference&lt;/a&gt; in Pocono Manor, PA. All the resources for the conference are available on the &lt;a href=&#34;https://github.com/TechBash/techbash2024&#34;&gt;TechBash GitHub repo&lt;/a&gt;. Below are links to my presentations specifically.&lt;/p&gt;&#xA;&lt;p&gt;It was great to see companies sending their employees to conferences again. This was my first time at TechBash, and I finally got to meet Alvin Ashcraft in person (the &lt;a href=&#34;https://www.alvinashcraft.com/&#34;&gt;Morning Dew&lt;/a&gt;). I also met a bunch of people from the Philly area and around Pennsylvania, but there were attendees from all over-even a couple of guys from Panama!&lt;/p&gt;</description>
      <category>AZD</category><category>Azure</category><category>Learning</category><category>OpenAI</category><category>Presentation</category><category>RAG</category>
    </item>
    <item>
      <title>eShopSupport Series: Evaluator Project</title>
      <link>https://jasonhaley.com/2024/09/20/eshopsupport-evaluator/</link>
      <pubDate>Fri, 20 Sep 2024 00:00:00 +0000</pubDate>
      <author>info@jasonhaley.com (Jason Haley)</author>
      <dc:creator>Jason Haley</dc:creator>
      <guid>https://jasonhaley.com/2024/09/20/eshopsupport-evaluator/</guid>
      <description>&lt;p&gt;This is the third part of the &lt;a href=&#34;https://jasonhaley.com/2024/08/23/introducing-eshopsupport-series/&#34;&gt;eShopSupport Series&lt;/a&gt; which covers the details of the &lt;a href=&#34;https://github.com/dotnet/eshopsupport&#34;&gt;eShopSupport&lt;/a&gt; GitHub repository.&lt;/p&gt;&#xA;&lt;h1 id=&#34;evaluator-project&#34;&gt;Evaluator Project&lt;/h1&gt;&#xA;&lt;p&gt;The &lt;a href=&#34;https://github.com/dotnet/eShopSupport/tree/main/src/Evaluator&#34;&gt;Evaluator&lt;/a&gt; project is a console application used to evaluate the chat portion of the application provided by the &lt;a href=&#34;https://github.com/dotnet/eShopSupport/blob/main/src/Backend/Api/AssistantApi.cs&#34;&gt;AssistantApi&lt;/a&gt; in the &lt;a href=&#34;https://github.com/dotnet/eShopSupport/tree/main/src/Backend&#34;&gt;Backend project&lt;/a&gt;. The Evaluator application uses the questions in the &lt;a href=&#34;https://github.com/dotnet/eShopSupport/blob/main/seeddata/dev/evalquestions.json&#34;&gt;evalquestions.json&lt;/a&gt; file to test the assistant API and scores the results it returns against the answers in that JSON file. &lt;strong&gt;This gives you the ability to measure the quality of the chat functionality&lt;/strong&gt; - which is an important thing to do when you are building application functionality that depends on an LLM.&lt;/p&gt;</description>
      <category>AI</category><category>Azure</category><category>eShopSupport Series</category><category>Learning</category>
    </item>
    <item>
      <title>eShopSupport Series: DataIngestor Project</title>
      <link>https://jasonhaley.com/2024/09/05/eshopsupport-dataingestor/</link>
      <pubDate>Thu, 05 Sep 2024 00:00:00 +0000</pubDate>
      <author>info@jasonhaley.com (Jason Haley)</author>
      <dc:creator>Jason Haley</dc:creator>
      <guid>https://jasonhaley.com/2024/09/05/eshopsupport-dataingestor/</guid>
      <description>&lt;p&gt;This is the second part of the &lt;a href=&#34;https://jasonhaley.com/2024/08/23/introducing-eshopsupport-series/&#34;&gt;eShopSupport Series&lt;/a&gt; which covers the details of the &lt;a href=&#34;https://github.com/dotnet/eshopsupport&#34;&gt;eShopSupport&lt;/a&gt; GitHub repository.&lt;/p&gt;&#xA;&lt;h1 id=&#34;dataingestor-project&#34;&gt;DataIngestor Project&lt;/h1&gt;&#xA;&lt;p&gt;The &lt;a href=&#34;https://github.com/dotnet/eShopSupport/tree/main/src/DataIngestor&#34;&gt;DataIngestor&lt;/a&gt; is a console application that will process the data files created by the &lt;a href=&#34;https://github.com/dotnet/eShopSupport/tree/main/seeddata/DataGenerator&#34;&gt;DataGenerator&lt;/a&gt; - it does not ingest the data into any of the databases. I mentioned in the &lt;a href=&#34;http://localhost:1313/2024/09/02/eshopsupport-datagenerator/&#34;&gt;last entry about the DataGenerator&lt;/a&gt; that you didn&amp;rsquo;t need to use the DataGenerator because there are two sets of generated files provided in the github repo: &lt;a href=&#34;https://github.com/dotnet/eShopSupport/tree/main/seeddata/dev&#34;&gt;dev&lt;/a&gt; and &lt;a href=&#34;https://github.com/dotnet/eShopSupport/tree/main/seeddata/test&#34;&gt;test&lt;/a&gt;. What I failed to mention is those files are result of &lt;em&gt;&lt;strong&gt;both&lt;/strong&gt;&lt;/em&gt; the DataGenerator and the DataIngestor being run. So you also &lt;strong&gt;don&amp;rsquo;t have to use the DataIngestor&lt;/strong&gt;.&lt;/p&gt;</description>
      <category>AI</category><category>Azure</category><category>eShopSupport Series</category><category>Learning</category>
    </item>
    <item>
      <title>eShopSupport Series: DataGenerator Project</title>
      <link>https://jasonhaley.com/2024/09/02/eshopsupport-datagenerator/</link>
      <pubDate>Mon, 02 Sep 2024 00:00:00 +0000</pubDate>
      <author>info@jasonhaley.com (Jason Haley)</author>
      <dc:creator>Jason Haley</dc:creator>
      <guid>https://jasonhaley.com/2024/09/02/eshopsupport-datagenerator/</guid>
      <description>&lt;p&gt;This is the first part of my &lt;a href=&#34;https://jasonhaley.com/2024/08/23/introducing-eshopsupport-series/&#34;&gt;eShopSupport Series&lt;/a&gt; which looks into the details of the &lt;a href=&#34;https://github.com/dotnet/eshopsupport&#34;&gt;eShopSupport&lt;/a&gt; GitHub repository.&lt;/p&gt;&#xA;&lt;h1 id=&#34;datagenerator-project&#34;&gt;DataGenerator Project&lt;/h1&gt;&#xA;&lt;p&gt;The &lt;a href=&#34;https://github.com/dotnet/eShopSupport/tree/main/seeddata/DataGenerator&#34;&gt;DataGenerator&lt;/a&gt; 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, &lt;strong&gt;you don&amp;rsquo;t have to use the DataGenerator&lt;/strong&gt; - there are two sets of generated files provided in the github repo: &lt;a href=&#34;https://github.com/dotnet/eShopSupport/tree/main/seeddata/dev&#34;&gt;dev&lt;/a&gt; and &lt;a href=&#34;https://github.com/dotnet/eShopSupport/tree/main/seeddata/test&#34;&gt;test&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&#xD;&#xA;  &lt;img src=&#34;https://jasonhaley.com/img/2024-09-02_img1.jpg&#34; alt=&#34;Files&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;In this entry I will provide some detail of what the DataGenerator application does, some interesting things about it and a few things I&amp;rsquo;d like to change.&lt;/p&gt;</description>
      <category>AI</category><category>Azure</category><category>eShopSupport Series</category><category>Learning</category>
    </item>
    <item>
      <title>Virtual Boston Azure August 2024</title>
      <link>https://jasonhaley.com/2024/08/26/august-2024-virtual-boston-azure-meetup/</link>
      <pubDate>Mon, 26 Aug 2024 00:00:00 +0000</pubDate>
      <author>info@jasonhaley.com (Jason Haley)</author>
      <dc:creator>Jason Haley</dc:creator>
      <guid>https://jasonhaley.com/2024/08/26/august-2024-virtual-boston-azure-meetup/</guid>
      <description>&lt;p&gt;Last night I spoke at the &lt;a href=&#34;https://www.meetup.com/bostonazure/events/302852509/&#34;&gt;Virtual Boston Azure meetup&lt;/a&gt;. The talk was about the &lt;a href=&#34;https://learn.microsoft.com/en-us/azure/developer/azure-developer-cli/overview&#34;&gt;Azure Developer CLI&lt;/a&gt; and geared towards developers.&lt;/p&gt;&#xA;&lt;p&gt;The recording of the session can be found on the &lt;a href=&#34;https://www.youtube.com/watch?v=s-ovdG3J2Tc&#34;&gt;Boston Azure YouTube channel&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h1 id=&#34;talk-what-is-the-azure-dev-cli-azd-and-how-can-you-use-it&#34;&gt;Talk: What is the Azure Dev CLI (AZD) and How Can You Use It?&lt;/h1&gt;&#xA;&lt;p&gt;&#xD;&#xA;  &lt;img src=&#34;https://jasonhaley.com/img/2024-08-26_img1.jpg&#34; alt=&#34;Slide 1&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;The presentation pdf can be downloaded &lt;a href=&#34;https://jhaleysftp.blob.core.windows.net/files/VirtualBostonAzure_What-is-the-Azure-Dev-CLI.pdf&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;The resource slides:&#xA;&#xD;&#xA;  &lt;img src=&#34;https://jasonhaley.com/img/2024-08-26_img2.jpg&#34; alt=&#34;Resource Slide 1&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;I added this slide after the presentation with links I mentioned after the recording was stopped:&lt;/p&gt;</description>
      <category>AZD</category><category>Azure</category><category>Learning</category><category>Presentation</category>
    </item>
    <item>
      <title>eShopSupport Series</title>
      <link>https://jasonhaley.com/2024/08/23/introducing-eshopsupport-series/</link>
      <pubDate>Fri, 23 Aug 2024 00:00:00 +0000</pubDate>
      <author>info@jasonhaley.com (Jason Haley)</author>
      <dc:creator>Jason Haley</dc:creator>
      <guid>https://jasonhaley.com/2024/08/23/introducing-eshopsupport-series/</guid>
      <description>&lt;h1 id=&#34;announcing-the-eshopsupport-series&#34;&gt;Announcing: The eShopSupport Series&lt;/h1&gt;&#xA;&lt;p&gt;In case you missed this week&amp;rsquo;s &lt;a href=&#34;https://focus.dotnetconf.net/&#34;&gt;.NET Conf Focus on AI&lt;/a&gt; you can find all the videos on the &lt;a href=&#34;https://www.youtube.com/@dotnet&#34;&gt;dotnet YouTube channel&lt;/a&gt;. The one I want to point out here is: &lt;a href=&#34;https://www.youtube.com/watch?v=pM9bTeaaAlQ&#34;&gt;Better Together: .NET Aspire and Semantic Kernel&lt;/a&gt; with Steve Sanderson and Matthew Bolanos.&lt;/p&gt;&#xA;&lt;p&gt;Steve&amp;rsquo;s portion of the talk is a distilled version of his NDC talk earlier this year: &lt;a href=&#34;https://www.youtube.com/watch?v=TSNAvFJoP4M&#34;&gt;How to add genuinely useful AI to your webapp (not just chatbots)&lt;/a&gt; where he introduced the &lt;a href=&#34;https://github.com/dotnet/eShopSupport&#34;&gt;eShopSupport&lt;/a&gt; project. &lt;em&gt;&lt;strong&gt;If you are a .NET developer looking for ways to use AI in real world applications - you should absolutely watch that video.&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;</description>
      <category>AI</category><category>Azure</category><category>eShopSupport Series</category><category>Learning</category>
    </item>
    <item>
      <title>Wisconsin .NET User Group</title>
      <link>https://jasonhaley.com/2024/08/13/wisconsin-dotnet-meetup/</link>
      <pubDate>Tue, 13 Aug 2024 00:00:00 +0000</pubDate>
      <author>info@jasonhaley.com (Jason Haley)</author>
      <dc:creator>Jason Haley</dc:creator>
      <guid>https://jasonhaley.com/2024/08/13/wisconsin-dotnet-meetup/</guid>
      <description>&lt;p&gt;Last Thursday night I spoke at the &lt;a href=&#34;https://www.meetup.com/wisconsin-net-users-group/events/301852505/&#34;&gt;Wisconsin .NET User Group&lt;/a&gt; near Milwaukee, WI. I was nice to meet so many .NET developers interested in RAG and AI.&lt;/p&gt;&#xA;&lt;p&gt;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.&lt;/p&gt;&#xA;&lt;h1 id=&#34;talk-getting-started-with-retrieval-augmented-generation-rag&#34;&gt;Talk: Getting Started with Retrieval Augmented Generation (RAG)&lt;/h1&gt;&#xA;&lt;p&gt;&#xD;&#xA;  &lt;img src=&#34;https://jasonhaley.com/img/2024-08-13_img1.jpg&#34; alt=&#34;RAG Slide 1&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;The presentation pdf can be downloaded &lt;a href=&#34;https://bit.ly/3SGlEue&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&#xD;&#xA;  &lt;img src=&#34;https://jasonhaley.com/img/2024-08-13_img2.jpg&#34; alt=&#34;RAG Last Slide&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;One of my demos failed to deploy before the talk, but I don&amp;rsquo;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!&lt;/p&gt;</description>
      <category>AI</category><category>Azure</category><category>Learning</category><category>OpenAI</category><category>Presentation</category><category>RAG</category>
    </item>
    <item>
      <title>Boston Azure June 2024</title>
      <link>https://jasonhaley.com/2024/06/25/boston-azure-june-2024/</link>
      <pubDate>Tue, 25 Jun 2024 00:00:00 +0000</pubDate>
      <author>info@jasonhaley.com (Jason Haley)</author>
      <dc:creator>Jason Haley</dc:creator>
      <guid>https://jasonhaley.com/2024/06/25/boston-azure-june-2024/</guid>
      <description>&lt;p&gt;Last night was the &lt;a href=&#34;https://www.meetup.com/bostonazure/events/301201162/&#34;&gt;Season of AI&lt;/a&gt; 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.&lt;/p&gt;&#xA;&lt;p&gt;It was nice to see a lot of regular faces and meet several new people.&lt;/p&gt;&#xA;&lt;h1 id=&#34;demo-code&#34;&gt;Demo Code&lt;/h1&gt;&#xA;&lt;p&gt;The demo code is on my GitHub repo &lt;a href=&#34;https://github.com/JasonHaley/semantic-kernel-getting-started/tree/main/samples/demos/BostonAzure-June2024&#34;&gt;BostonAzure-June2024&lt;/a&gt; under a subdirectory.&lt;/p&gt;</description>
      <category>AI</category><category>Azure</category><category>Learning</category><category>OpenAI</category><category>Presentation</category><category>RAG</category><category>Semantic Kernel</category>
    </item>
    <item>
      <title>Demo Review: Chat Copilot</title>
      <link>https://jasonhaley.com/2024/06/18/chat-copilot/</link>
      <pubDate>Tue, 18 Jun 2024 00:00:00 +0000</pubDate>
      <author>info@jasonhaley.com (Jason Haley)</author>
      <dc:creator>Jason Haley</dc:creator>
      <guid>https://jasonhaley.com/2024/06/18/chat-copilot/</guid>
      <description>&lt;h1 id=&#34;demo-review-chat-copilot&#34;&gt;Demo Review: Chat Copilot&lt;/h1&gt;&#xA;&lt;p&gt;This is the fifth C# demo in &lt;a href=&#34;https://jasonhaley.com/2024/02/04/introducing-rag-demo-chronicles-series/&#34;&gt;The RAG Demo Chronicles (Blog Series)&lt;/a&gt; and has the most extensive use of &lt;a href=&#34;https://github.com/microsoft/semantic-kernel&#34;&gt;Semantic Kernel&lt;/a&gt; out of all the demos I&amp;rsquo;ve reviewed.&lt;/p&gt;&#xA;&lt;p&gt;The use of Retrieval Augmented Generation (RAG) is different with this project than the other demos I&amp;rsquo;ve reviewed - mainly because RAG is just one of its features.&lt;/p&gt;&#xA;&lt;p&gt;With this demo, I also took the time to configure the optional authentication so I could play with the MS Graph plugin &amp;hellip; 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.&lt;/p&gt;</description>
      <category>AI</category><category>Azure</category><category>Learning</category><category>OpenAI</category><category>RAG</category><category>RAG Demo Series</category><category>Semantic Kernel</category>
    </item>
    <item>
      <title>Semantic Kernel Hello World WebSearchEnginePlugin</title>
      <link>https://jasonhaley.com/2024/06/10/semantic-kernel-hello-world-websearchengineplugin/</link>
      <pubDate>Mon, 10 Jun 2024 00:00:00 +0000</pubDate>
      <author>info@jasonhaley.com (Jason Haley)</author>
      <dc:creator>Jason Haley</dc:creator>
      <guid>https://jasonhaley.com/2024/06/10/semantic-kernel-hello-world-websearchengineplugin/</guid>
      <description>&lt;h1 id=&#34;update-the-bing-search-apis-are-being-deprecated-see-the-announcement-for-more-details-bing-search-apis-retiring-onaugust-11-2025-i-have-updated-the-post-and-corresponding-github-code-to-use-the-brave-connector-instead&#34;&gt;UPDATE: The Bing Search APIS are being deprecated. See the announcement for more details: &lt;a href=&#34;https://learn.microsoft.com/en-us/lifecycle/announcements/bing-search-api-retirement&#34;&gt;Bing Search APIs retiring on August 11, 2025&lt;/a&gt;. I have updated the post and corresponding Github code to use the Brave connector instead.&lt;/h1&gt;&#xA;&lt;p&gt;A couple of weeks ago I thought I&amp;rsquo;d written my last of these blogs, mainly due to me getting more in depth with Semantic Kernel. However, after I watched Will Velida&amp;rsquo;s video &lt;a href=&#34;https://www.youtube.com/watch?v=eOpDSz1ZB0M&#34;&gt;Using Bing Search API in the Semantic Kernel SDK&lt;/a&gt; &amp;hellip; I couldn&amp;rsquo;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&amp;rsquo;t get into that part of it - I want to focus on the usefulness and API calls made by the plugin.&lt;/p&gt;</description>
      <category>AI</category><category>Azure</category><category>Learning</category><category>OpenAI</category><category>Semantic Kernel</category><category>Semantic Kernel Hello World Series</category>
    </item>
    <item>
      <title>Semantic Kernel Hello World Planners Part 2 - (Deprecated)</title>
      <link>https://jasonhaley.com/2024/05/27/semantic-kernel-hello-world-planners-part2/</link>
      <pubDate>Mon, 27 May 2024 00:00:00 +0000</pubDate>
      <author>info@jasonhaley.com (Jason Haley)</author>
      <dc:creator>Jason Haley</dc:creator>
      <guid>https://jasonhaley.com/2024/05/27/semantic-kernel-hello-world-planners-part2/</guid>
      <description>&lt;h1 id=&#34;update-planners-have-been-deprecated-see-this-semantic-kernel-blog-for-more-detail-semantic-kernel-package-previews-graduations--deprecations&#34;&gt;UPDATE: Planners have been deprecated. See this Semantic Kernel blog for more detail: &lt;a href=&#34;https://devblogs.microsoft.com/semantic-kernel/semantic-kernel-package-previews-graduations-deprecations/&#34;&gt;Semantic Kernel: Package previews, Graduations &amp;amp; Deprecations&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;p&gt;Last week in the &lt;a href=&#34;https://jasonhaley.com/2024/05/19/semantic-kernel-hello-world-planners-part1/&#34;&gt;Semantic Kernel Hello World Planners Part 1&lt;/a&gt; entry, I used the &lt;a href=&#34;https://github.com/microsoft/semantic-kernel/tree/main/dotnet/src/Planners/Planners.Handlebars&#34;&gt;Handlebars planner&lt;/a&gt; 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 &lt;a href=&#34;https://github.com/microsoft/semantic-kernel/tree/main/dotnet/src/Planners/Planners.OpenAI&#34;&gt;Function Calling Stepwise Planner&lt;/a&gt; to create the sample Hello World functionality and compare it to the implementation in the &lt;a href=&#34;https://jasonhaley.com/2024/04/30/semantic-kernel-hello-world-plugin-part3/&#34;&gt;Semantic Kernel Hello World Plugins Part 3&lt;/a&gt; entry.&lt;/p&gt;</description>
      <category>AI</category><category>Azure</category><category>Learning</category><category>OpenAI</category><category>Semantic Kernel</category><category>Semantic Kernel Hello World Series</category>
    </item>
    <item>
      <title>Semantic Kernel Hello World Planners Part 1 - (Deprecated)</title>
      <link>https://jasonhaley.com/2024/05/19/semantic-kernel-hello-world-planners-part1/</link>
      <pubDate>Sun, 19 May 2024 00:00:00 +0000</pubDate>
      <author>info@jasonhaley.com (Jason Haley)</author>
      <dc:creator>Jason Haley</dc:creator>
      <guid>https://jasonhaley.com/2024/05/19/semantic-kernel-hello-world-planners-part1/</guid>
      <description>&lt;h1 id=&#34;update-planners-have-been-deprecated-see-this-semantic-kernel-blog-for-more-detail-semantic-kernel-package-previews-graduations--deprecations&#34;&gt;UPDATE: Planners have been deprecated. See this Semantic Kernel blog for more detail: &lt;a href=&#34;https://devblogs.microsoft.com/semantic-kernel/semantic-kernel-package-previews-graduations-deprecations/&#34;&gt;Semantic Kernel: Package previews, Graduations &amp;amp; Deprecations&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;p&gt;A few weeks ago in the &lt;a href=&#34;https://jasonhaley.com/2024/04/30/semantic-kernel-hello-world-plugin-part3/&#34;&gt;Semantic Kernel Hello World Plugins Part 3&lt;/a&gt; blog entry, I showed how to use &lt;a href=&#34;https://platform.openai.com/docs/guides/function-calling&#34;&gt;OpenAI Function Calling&lt;/a&gt;. The last half of that entry was all about &lt;a href=&#34;https://jasonhaley.com/2024/04/30/semantic-kernel-hello-world-plugin-part3/#requestandresponselogginghttpclienthandler-and-requestlogginghttpclienthandler&#34;&gt;how to view the response and request JSON&lt;/a&gt; going back and forth to OpenAI, which detailed four API calls. In this entry I look at using the &lt;a href=&#34;https://github.com/microsoft/semantic-kernel/tree/main/dotnet/src/Planners/Planners.Handlebars&#34;&gt;Handlebars Planner&lt;/a&gt; to accomplish the same functionality. Then I&amp;rsquo;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.&lt;/p&gt;</description>
      <category>AI</category><category>Azure</category><category>Learning</category><category>OpenAI</category><category>Semantic Kernel</category><category>Semantic Kernel Hello World Series</category>
    </item>
    <item>
      <title>Memphis Azure User Group</title>
      <link>https://jasonhaley.com/2024/05/07/memphis-azure-meetup/</link>
      <pubDate>Tue, 07 May 2024 00:00:00 +0000</pubDate>
      <author>info@jasonhaley.com (Jason Haley)</author>
      <dc:creator>Jason Haley</dc:creator>
      <guid>https://jasonhaley.com/2024/05/07/memphis-azure-meetup/</guid>
      <description>&lt;p&gt;Last Thursday night I spoke at the &lt;a href=&#34;https://www.meetup.com/memphis-technology-user-groups/events/300585623/&#34;&gt;Memphis Azure User Group&lt;/a&gt;, 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.&lt;/p&gt;&#xA;&lt;p&gt;I also gave my slide deck a completely new look (Memphis themed via Bing/create):&lt;/p&gt;&#xA;&lt;h1 id=&#34;talk-getting-started-with-retrieval-augmented-generation-rag&#34;&gt;Talk: Getting Started with Retrieval Augmented Generation (RAG)&lt;/h1&gt;&#xA;&lt;p&gt;&#xD;&#xA;  &lt;img src=&#34;https://jasonhaley.com/img/2024-05-07-img1.jpg&#34; alt=&#34;RAG Slide 1&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;The presentation pdf can be downloaded &lt;a href=&#34;https://bit.ly/4a5hUZf&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&#xD;&#xA;  &lt;img src=&#34;https://jasonhaley.com/img/2024-05-07-img2.jpg&#34; alt=&#34;RAG Last Slide&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;Since the presentation was hybrid, there were not as many questions as the other two times I&amp;rsquo;ve given the talk &amp;hellip; 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&amp;amp;A). Next time I&amp;rsquo;ll have it ready to use in case I need it.&lt;/p&gt;</description>
      <category>AI</category><category>Azure</category><category>Learning</category><category>OpenAI</category><category>Presentation</category><category>RAG</category>
    </item>
    <item>
      <title>Semantic Kernel Hello World Plugins Part 3</title>
      <link>https://jasonhaley.com/2024/04/30/semantic-kernel-hello-world-plugin-part3/</link>
      <pubDate>Tue, 30 Apr 2024 00:00:00 +0000</pubDate>
      <author>info@jasonhaley.com (Jason Haley)</author>
      <dc:creator>Jason Haley</dc:creator>
      <guid>https://jasonhaley.com/2024/04/30/semantic-kernel-hello-world-plugin-part3/</guid>
      <description>&lt;p&gt;Last week I blogged &lt;a href=&#34;https://jasonhaley.com/2024/04/26/semantic-kernel-hello-world-plugin-part2/&#34;&gt;Part 2&lt;/a&gt; showing the creation of a native function plugin, in this post I want to take that native function a step further and use the &lt;a href=&#34;https://platform.openai.com/docs/guides/function-calling&#34;&gt;OpenAI Function calling&lt;/a&gt;. This will allow us to not provide the current date when making the call to get a historic daily fact and have OpenAI call a function to get the current date.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve added the &lt;a href=&#34;https://github.com/JasonHaley/semantic-kernel-getting-started/tree/main/src/HelloWorld.Plugin3.Console&#34;&gt;HelloWorld.Plugin3.Console&lt;/a&gt; project to the GitHub repo for the code in this blog entry.&lt;/p&gt;</description>
      <category>AI</category><category>Azure</category><category>Learning</category><category>OpenAI</category><category>Semantic Kernel</category><category>Semantic Kernel Hello World Series</category>
    </item>
    <item>
      <title>Semantic Kernel Hello World Plugins Part 2</title>
      <link>https://jasonhaley.com/2024/04/26/semantic-kernel-hello-world-plugin-part2/</link>
      <pubDate>Fri, 26 Apr 2024 00:00:00 +0000</pubDate>
      <author>info@jasonhaley.com (Jason Haley)</author>
      <dc:creator>Jason Haley</dc:creator>
      <guid>https://jasonhaley.com/2024/04/26/semantic-kernel-hello-world-plugin-part2/</guid>
      <description>&lt;p&gt;Two weeks ago I blogged &lt;a href=&#34;https://jasonhaley.com/2024/04/11/semantic-kernel-hello-world-plugin-part1/&#34;&gt;Part 1&lt;/a&gt;, in which I moved the prompt to a prompt template. In this part, I implement a &lt;a href=&#34;https://learn.microsoft.com/en-us/semantic-kernel/agents/plugins/using-the-kernelfunction-decorator?tabs=Csharp&#34;&gt;native function&lt;/a&gt; that will take in the current date and make the call to the LLM.&lt;/p&gt;&#xA;&lt;p&gt;I’ve put the code for this blog in the &lt;a href=&#34;https://github.com/JasonHaley/semantic-kernel-getting-started/tree/main/src/HelloWorld.Plugin2.Console&#34;&gt;HelloWorld.Plugin2.Console project&lt;/a&gt; in the same repo as the other SK entries: &lt;a href=&#34;https://github.com/JasonHaley/semantic-kernel-getting-started&#34;&gt;semantic-kernel-getting-started&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h1 id=&#34;semantic-kernel-plugin-native-function&#34;&gt;Semantic Kernel Plugin: Native Function&lt;/h1&gt;&#xA;&lt;p&gt;There is a good Microsoft Learn module: &lt;a href=&#34;https://learn.microsoft.com/en-us/training/modules/give-your-ai-agent-skills/&#34;&gt;Give your AI agent skills&lt;/a&gt; that walks you through the details of what a native function is and how to implement them.&lt;/p&gt;</description>
      <category>AI</category><category>Azure</category><category>Learning</category><category>OpenAI</category><category>Semantic Kernel</category><category>Semantic Kernel Hello World Series</category>
    </item>
    <item>
      <title>My Session at Boston Global Azure Bootcamp</title>
      <link>https://jasonhaley.com/2024/04/23/boston-global-azure-bootcamp/</link>
      <pubDate>Tue, 23 Apr 2024 00:00:00 +0000</pubDate>
      <author>info@jasonhaley.com (Jason Haley)</author>
      <dc:creator>Jason Haley</dc:creator>
      <guid>https://jasonhaley.com/2024/04/23/boston-global-azure-bootcamp/</guid>
      <description>&lt;p&gt;This past weekend was &lt;a href=&#34;https://www.meetup.com/bostonazure/events/300138716/&#34;&gt;Boston Azure&amp;rsquo;s Edition of the annual Global Azure Bootcamp&lt;/a&gt;. This year we focused on AI and hands-on-labs.&lt;/p&gt;&#xA;&lt;p&gt;The odd thing about when we scheduled the meetup was we had a lot of people sign up for the group just to rsvp - before most of the existing members had gotten around to rsvp&amp;rsquo;ing. We did not expect that. It is a mystery as how they heard about the event so quick. We only had one room reserved, so there really was a hard cap on how many people we could let in.&lt;/p&gt;</description>
      <category>AI</category><category>Azure</category><category>Learning</category><category>OpenAI</category><category>Presentation</category><category>RAG</category>
    </item>
    <item>
      <title>Semantic Kernel Hello World Plugins Part 1</title>
      <link>https://jasonhaley.com/2024/04/11/semantic-kernel-hello-world-plugin-part1/</link>
      <pubDate>Thu, 11 Apr 2024 00:00:00 +0000</pubDate>
      <author>info@jasonhaley.com (Jason Haley)</author>
      <dc:creator>Jason Haley</dc:creator>
      <guid>https://jasonhaley.com/2024/04/11/semantic-kernel-hello-world-plugin-part1/</guid>
      <description>&lt;p&gt;A couple of weeks ago, in my &lt;a href=&#34;https://jasonhaley.com/2024/03/30/semantic-kernel-hello-world/&#34;&gt;last entry&lt;/a&gt; I created a simple Hello World application with Semantic Kernel. Since then, I&amp;rsquo;ve worked my way through the MS Learning path: &lt;a href=&#34;https://learn.microsoft.com/en-us/training/paths/develop-ai-agents-azure-open-ai-semantic-kernel-sdk/&#34;&gt;APL-2005 Develop AI agents using Azure OpenAI and the Semantic Kernel SDK&lt;/a&gt; - which I highly recommend if you are also learning SK.&lt;/p&gt;&#xA;&lt;p&gt;In this entry I&amp;rsquo;m going to start with the code from the last entry and extract the prompt to a plugin. I&amp;rsquo;ve put the code for this blog in the same repo as the last entry: &lt;a href=&#34;https://github.com/JasonHaley/semantic-kernel-getting-started&#34;&gt;semantic-kernel-getting-started&lt;/a&gt;&lt;/p&gt;</description>
      <category>AI</category><category>Azure</category><category>Learning</category><category>OpenAI</category><category>Semantic Kernel</category><category>Semantic Kernel Hello World Series</category>
    </item>
    <item>
      <title>Semantic Kernel Hello World</title>
      <link>https://jasonhaley.com/2024/03/30/semantic-kernel-hello-world/</link>
      <pubDate>Sat, 30 Mar 2024 00:00:00 +0000</pubDate>
      <author>info@jasonhaley.com (Jason Haley)</author>
      <dc:creator>Jason Haley</dc:creator>
      <guid>https://jasonhaley.com/2024/03/30/semantic-kernel-hello-world/</guid>
      <description>&lt;p&gt;This past Thursday night after the Virtual Boston Azure meetup, Bill Wilder (&lt;a href=&#34;https://twitter.com/codingoutloud&#34;&gt;@codingoutloud&lt;/a&gt;) created an&#xA;&lt;a href=&#34;https://www.meetup.com/bostonazure/events/299729681/&#34;&gt;AI mini-workshop (hands on)&lt;/a&gt; for the attendees that were interested in getting hands on with code using the Azure OpenAI API.&lt;/p&gt;&#xA;&lt;p&gt;This post is me using the same idea but with Semantic Kernel.&lt;/p&gt;&#xA;&lt;h1 id=&#34;openai-chat-hello-world-c&#34;&gt;OpenAI Chat Hello World C#&lt;/h1&gt;&#xA;&lt;p&gt;Bill provided the following code for us to get a simple OpenAI chat working:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-C#&#34; data-lang=&#34;C#&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;using&lt;/span&gt; Azure;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;using&lt;/span&gt; Azure.AI.OpenAI;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;string?&lt;/span&gt; key = &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;...&amp;#34;&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;string?&lt;/span&gt; endpoint = &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;...&amp;#34;&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;string?&lt;/span&gt; deployment = &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;...&amp;#34;&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;// output today&amp;#39;s date just for fun&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Console.WriteLine(&lt;span style=&#34;color:#e6db74&#34;&gt;$&amp;#34;\n----------------- DEBUG INFO -----------------&amp;#34;&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;var&lt;/span&gt; today = DateTime.Now.ToString(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;MMMM dd&amp;#34;&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Console.WriteLine(&lt;span style=&#34;color:#e6db74&#34;&gt;$&amp;#34;Today is {today}&amp;#34;&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Console.WriteLine(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;----------------------------------------------&amp;#34;&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;var&lt;/span&gt; client = &lt;span style=&#34;color:#66d9ef&#34;&gt;new&lt;/span&gt; OpenAIClient(&lt;span style=&#34;color:#66d9ef&#34;&gt;new&lt;/span&gt; Uri(endpoint), &lt;span style=&#34;color:#66d9ef&#34;&gt;new&lt;/span&gt; AzureKeyCredential(key));&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;// TODO: CHALLENGE 1: does the AI respond accurately to this prompt? How to fix?&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;var&lt;/span&gt; prompt = &lt;span style=&#34;color:#e6db74&#34;&gt;$&amp;#34;Tell me an interesting fact from world about an event &amp;#34;&lt;/span&gt; +&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#e6db74&#34;&gt;$&amp;#34;that took place on {today}. &amp;#34;&lt;/span&gt; +&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#e6db74&#34;&gt;$&amp;#34;Be sure to mention the date in history for context.&amp;#34;&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;CompletionsOptions completionsOptions = &lt;span style=&#34;color:#66d9ef&#34;&gt;new&lt;/span&gt;()&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    Temperature = &lt;span style=&#34;color:#ae81ff&#34;&gt;0.7f&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    DeploymentName = deployment,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    Prompts = { prompt },&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    MaxTokens = &lt;span style=&#34;color:#ae81ff&#34;&gt;250&lt;/span&gt;,  &lt;span style=&#34;color:#75715e&#34;&gt;// PLEASE DON&amp;#39;T MAKE LARGER THAN 250 (but see what happens at 25)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;};&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Response&amp;lt;Completions&amp;gt; completionsResponse = client.GetCompletions(completionsOptions);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Console.WriteLine(&lt;span style=&#34;color:#e6db74&#34;&gt;$&amp;#34;\nPROMPT: \n\n{prompt}&amp;#34;&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;int&lt;/span&gt; i = &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;foreach&lt;/span&gt; (&lt;span style=&#34;color:#66d9ef&#34;&gt;var&lt;/span&gt; choice &lt;span style=&#34;color:#66d9ef&#34;&gt;in&lt;/span&gt; completionsResponse.Value.Choices)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{    &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    Console.WriteLine(&lt;span style=&#34;color:#e6db74&#34;&gt;$&amp;#34;\nRESPONSE {++i}/{completionsResponse.Value.Choices.Count}:&amp;#34;&lt;/span&gt; +&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#e6db74&#34;&gt;$&amp;#34;{choice.Text}&amp;#34;&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Console.WriteLine(&lt;span style=&#34;color:#e6db74&#34;&gt;$&amp;#34;\n----------------- DEBUG INFO -----------------&amp;#34;&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Console.WriteLine(&lt;span style=&#34;color:#e6db74&#34;&gt;$&amp;#34;Tokens used: {completionsResponse.Value.Usage.CompletionTokens}/{completionsOptions.MaxTokens}&amp;#34;&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Console.WriteLine(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;----------------------------------------------&amp;#34;&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;When you run this code (you&amp;rsquo;ll of course need to add in you own values for the &lt;code&gt;key&lt;/code&gt;, &lt;code&gt;endpoint&lt;/code&gt; and &lt;code&gt;deployment&lt;/code&gt;), you will get a response like this:&lt;/p&gt;</description>
      <category>AI</category><category>Azure</category><category>Learning</category><category>OpenAI</category><category>Semantic Kernel</category><category>Semantic Kernel Hello World Series</category>
    </item>
    <item>
      <title>Boston Code Camp 36 Sessions</title>
      <link>https://jasonhaley.com/2024/03/24/boston-code-camp-36/</link>
      <pubDate>Sun, 24 Mar 2024 00:00:00 +0000</pubDate>
      <author>info@jasonhaley.com (Jason Haley)</author>
      <dc:creator>Jason Haley</dc:creator>
      <guid>https://jasonhaley.com/2024/03/24/boston-code-camp-36/</guid>
      <description>&lt;p&gt;Yesterday was &lt;a href=&#34;https://www.bostoncodecamp.com/CC36/info&#34;&gt;Boston Code Camp 36&lt;/a&gt; hard to believe it has been going on for 20+ years now. For me it is one of those regular events for the Boston tech community that is well worth spending a Saturday attending.&lt;/p&gt;&#xA;&lt;p&gt;It was nice to see a lot of regular faces and meet some new people.&lt;/p&gt;&#xA;&lt;h1 id=&#34;talk-getting-started-with-retrieval-augmented-generation-rag&#34;&gt;Talk: Getting Started with Retrieval Augmented Generation (RAG)&lt;/h1&gt;&#xA;&lt;p&gt;&#xD;&#xA;  &lt;img src=&#34;https://jasonhaley.com/img/2024-03-24img1.jpg&#34; alt=&#34;RAG Slide 1&#34;&gt;&#xD;&#xA;&#xD;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;I was surprise the room was full, it was good to see so many developers, students and architects - mostly with .NET backgrounds looking to get started with RAG applications.&lt;/p&gt;</description>
      <category>AI</category><category>Azure</category><category>Learning</category><category>OpenAI</category><category>Presentation</category><category>RAG</category>
    </item>
    <item>
      <title>Demo Review: Azure Vector Search AI Assistant</title>
      <link>https://jasonhaley.com/2024/02/27/azure-vector-search-ai-assistant/</link>
      <pubDate>Mon, 26 Feb 2024 00:00:00 +0000</pubDate>
      <author>info@jasonhaley.com (Jason Haley)</author>
      <dc:creator>Jason Haley</dc:creator>
      <guid>https://jasonhaley.com/2024/02/27/azure-vector-search-ai-assistant/</guid>
      <description>&lt;h1 id=&#34;demo-review-azure-vector-search-ai-assistant&#34;&gt;Demo Review: Azure Vector Search AI Assistant&lt;/h1&gt;&#xA;&lt;p&gt;This is the fourth C# demo in &lt;a href=&#34;https://jasonhaley.com/2024/02/04/introducing-rag-demo-chronicles-series/&#34;&gt;The RAG Demo Chronicles (Blog Series)&lt;/a&gt; and is the first demo so far that saves its history to a database.&lt;/p&gt;&#xA;&lt;p&gt;This Retrieval Augmented Generation (RAG) demo is a little different than the last three because it primarily uses data from a database as the content to search instead of documents. It also uses Semantic Kernel more than other demos have, which is neat to see too.&lt;/p&gt;</description>
      <category>AI</category><category>Azure</category><category>Learning</category><category>OpenAI</category><category>RAG</category><category>RAG Demo Series</category><category>Semantic Kernel</category>
    </item>
    <item>
      <title>Demo Review: Azure Search OpenAI Demo (Python)</title>
      <link>https://jasonhaley.com/2024/02/23/azure-search-openai-demo/</link>
      <pubDate>Fri, 23 Feb 2024 00:00:00 +0000</pubDate>
      <author>info@jasonhaley.com (Jason Haley)</author>
      <dc:creator>Jason Haley</dc:creator>
      <guid>https://jasonhaley.com/2024/02/23/azure-search-openai-demo/</guid>
      <description>&lt;h1 id=&#34;demo-review-azure-search-openai-demo-python&#34;&gt;Demo Review: Azure Search OpenAI Demo (Python)&lt;/h1&gt;&#xA;&lt;p&gt;This is the last in the &lt;a href=&#34;https://github.com/Azure-Samples/azure-search-openai-demo?tab=readme-ov-file#announcing-javascript-net-and-java-samples-based-on-this-one-in-python-learn-more-at--httpsakamsazai&#34;&gt;family of Azure Search OpenAI&lt;/a&gt; demos that I&amp;rsquo;m covering (I&amp;rsquo;m not looking at the Java version). I reviewed the &lt;a href=&#34;https://jasonhaley.com/2024/02/14/azure-search-openai-demo-csharp/&#34;&gt;C# version&lt;/a&gt; and the &lt;a href=&#34;https://jasonhaley.com/2024/02/19/azure-search-openai-javascript/&#34;&gt;Javascript/Typescript version&lt;/a&gt; earlier this month. Of the three I&amp;rsquo;m covering, this one seems to be the most active, popular and have the most documentation.&lt;/p&gt;&#xA;&lt;p&gt;At the beginning of this month, the &lt;a href=&#34;https://github.com/microsoft/AI-Chat-App-Hack&#34;&gt;Hack Together: The AI Chat App Hack&lt;/a&gt; used this demo at the sample repository, marking it as a solid reference implementation for RAG.&lt;/p&gt;</description>
      <category>AI</category><category>Azure</category><category>Learning</category><category>OpenAI</category><category>RAG</category><category>RAG Demo Series</category>
    </item>
    <item>
      <title>Demo Review: Azure Search OpenAI Javascript/Typescript</title>
      <link>https://jasonhaley.com/2024/02/19/azure-search-openai-javascript/</link>
      <pubDate>Mon, 19 Feb 2024 00:00:00 +0000</pubDate>
      <author>info@jasonhaley.com (Jason Haley)</author>
      <dc:creator>Jason Haley</dc:creator>
      <guid>https://jasonhaley.com/2024/02/19/azure-search-openai-javascript/</guid>
      <description>&lt;h1 id=&#34;demo-review-azure-search-openai-javascripttypescript&#34;&gt;Demo Review: Azure Search OpenAI Javascript/Typescript&lt;/h1&gt;&#xA;&lt;p&gt;This is the second in the &lt;a href=&#34;https://github.com/Azure-Samples/azure-search-openai-demo&#34;&gt;family of Azure Search OpenAI&lt;/a&gt; demos that I&amp;rsquo;m reviewing. Last week I reviewed the &lt;a href=&#34;https://jasonhaley.com/2024/02/14/azure-search-openai-demo-csharp/&#34;&gt;C# version&lt;/a&gt;. As you&amp;rsquo;ll see below, the Javascript version is a bit different.&lt;/p&gt;&#xA;&lt;p&gt;The user interface (UI) functionality is provided by a set of web components that you can add to about any web application (ie. React, Angular, Vue, etc.) - in fact the web application in the demo is written in React. Also the chat communication is written to match the &lt;a href=&#34;https://github.com/Azure-Samples/ai-chat-app-protocol&#34;&gt;HTTP protocol for AI chat app&lt;/a&gt; which means the frontend can communicate with any backend that matches that protocol.&lt;/p&gt;</description>
      <category>AI</category><category>Azure</category><category>LangChain</category><category>Learning</category><category>OpenAI</category><category>RAG</category><category>RAG Demo Series</category>
    </item>
    <item>
      <title>Demo Review: Azure Search OpenAI Demo C#</title>
      <link>https://jasonhaley.com/2024/02/14/azure-search-openai-demo-csharp/</link>
      <pubDate>Wed, 14 Feb 2024 00:00:00 +0000</pubDate>
      <author>info@jasonhaley.com (Jason Haley)</author>
      <dc:creator>Jason Haley</dc:creator>
      <guid>https://jasonhaley.com/2024/02/14/azure-search-openai-demo-csharp/</guid>
      <description>&lt;h1 id=&#34;demo-review-azure-search-openai-demo-c&#34;&gt;Demo Review: Azure Search OpenAI Demo C#&lt;/h1&gt;&#xA;&lt;p&gt;If you are looking for Retrieval Augmented Generation (RAG) demos that utilize Azure Search and Azure OpenAI (along with several other supporting Azure services), then there is a set of related demos that do just that in GitHub.&lt;/p&gt;&#xA;&lt;p&gt;This family of RAG demos consists of:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/Azure-Samples/azure-search-openai-demo-csharp&#34;&gt;azure-search-openai-demo-csharp&lt;/a&gt; - written in C#.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/Azure-Samples/azure-search-openai-demo&#34;&gt;azure-search-openai-demo&lt;/a&gt; - written in python.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/Azure-Samples/azure-search-openai-javascript&#34;&gt;azure-search-openai-javascript&lt;/a&gt; - written in javascript/typescript.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/Azure-Samples/azure-search-openai-demo-java&#34;&gt;azure-search-openai-demo-java&lt;/a&gt; - written in java.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;&lt;strong&gt;This post is about #1 above&lt;/strong&gt;, I will cover #2 and #3 in later posts, but I will leave the Java version to someone else to review.&lt;/p&gt;</description>
      <category>AI</category><category>Azure</category><category>Learning</category><category>OpenAI</category><category>RAG</category><category>RAG Demo Series</category><category>Semantic Kernel</category>
    </item>
    <item>
      <title>Demo Review: Simple RAG using SQL Server, OpenAI and Function Calling</title>
      <link>https://jasonhaley.com/2024/02/11/simple-rag-sql-openai-functioncall/</link>
      <pubDate>Sun, 11 Feb 2024 00:00:00 +0000</pubDate>
      <author>info@jasonhaley.com (Jason Haley)</author>
      <dc:creator>Jason Haley</dc:creator>
      <guid>https://jasonhaley.com/2024/02/11/simple-rag-sql-openai-functioncall/</guid>
      <description>&lt;h1 id=&#34;demo-review-simple-rag-using-blazor-sql-server-azure-openai-and-function-calling&#34;&gt;Demo Review: Simple RAG using Blazor, SQL Server, Azure OpenAI and Function Calling&lt;/h1&gt;&#xA;&lt;p&gt;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 &lt;a href=&#34;https://jasonhaley.com/2024/02/07/simple-rag-sql-openai/&#34;&gt;first demo&lt;/a&gt; up and running, this demo (also by Michael Washington) is a great next step.&lt;/p&gt;&#xA;&lt;p&gt;RAG (Retrieval Augmented Generation) applications typically have the following steps:&lt;/p&gt;</description>
      <category>AI</category><category>Azure</category><category>Function Calling</category><category>Learning</category><category>OpenAI</category><category>RAG</category><category>RAG Demo Series</category><category>SQL Server</category>
    </item>
    <item>
      <title>Demo Review: Simple RAG using SQL Server and OpenAI</title>
      <link>https://jasonhaley.com/2024/02/07/simple-rag-sql-openai/</link>
      <pubDate>Wed, 07 Feb 2024 00:00:00 +0000</pubDate>
      <author>info@jasonhaley.com (Jason Haley)</author>
      <dc:creator>Jason Haley</dc:creator>
      <guid>https://jasonhaley.com/2024/02/07/simple-rag-sql-openai/</guid>
      <description>&lt;h1 id=&#34;demo-review-simple-rag-using-blazor-sql-server-and-azure-openai&#34;&gt;Demo Review: Simple RAG using Blazor, SQL Server and Azure OpenAI&lt;/h1&gt;&#xA;&lt;p&gt;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.&lt;/p&gt;</description>
      <category>AI</category><category>Azure</category><category>Learning</category><category>OpenAI</category><category>RAG</category><category>RAG Demo Series</category><category>SQL Server</category>
    </item>
    <item>
      <title>RAG Demo Chronicles</title>
      <link>https://jasonhaley.com/2024/02/04/introducing-rag-demo-chronicles-series/</link>
      <pubDate>Sun, 04 Feb 2024 00:00:00 +0000</pubDate>
      <author>info@jasonhaley.com (Jason Haley)</author>
      <dc:creator>Jason Haley</dc:creator>
      <guid>https://jasonhaley.com/2024/02/04/introducing-rag-demo-chronicles-series/</guid>
      <description>&lt;h1 id=&#34;introducing-the-rag-demo-chronicles-blog-series&#34;&gt;Introducing: The RAG Demo Chronicles (Blog Series)&lt;/h1&gt;&#xA;&lt;p&gt;In my &lt;a href=&#34;https://jasonhaley.com/2024/01/18/personal-update-learning-ai/&#34;&gt;last blog entry&lt;/a&gt; I mentioned how I&amp;rsquo;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.&lt;/p&gt;&#xA;&lt;p&gt;For those of you who are not familiar with the topic, you may have heard a presentation or blog focusing on &amp;ldquo;How to Chat with Your Documents&amp;rdquo; 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.&lt;/p&gt;</description>
      <category>AI</category><category>Azure</category><category>Learning</category><category>RAG</category><category>RAG Demo Series</category>
    </item>
    <item>
      <title>(Personal Update) Learning AI</title>
      <link>https://jasonhaley.com/2024/01/18/personal-update-learning-ai/</link>
      <pubDate>Thu, 18 Jan 2024 00:00:00 +0000</pubDate>
      <author>info@jasonhaley.com (Jason Haley)</author>
      <dc:creator>Jason Haley</dc:creator>
      <guid>https://jasonhaley.com/2024/01/18/personal-update-learning-ai/</guid>
      <description>&lt;p&gt;This is the first of many blog posts I plan to make this year, stay tuned (please subscribe) for more soon.&lt;/p&gt;&#xA;&lt;h1 id=&#34;learning-ai&#34;&gt;Learning AI&lt;/h1&gt;&#xA;&lt;p&gt;Currently I am working my way through the &lt;a href=&#34;https://en.wikipedia.org/wiki/Four_stages_of_competence&#34;&gt;four stages of competence&lt;/a&gt; with the topic of AI. This quarter (Q1 of 2024), I&amp;rsquo;m currently working on moving from stage 2 to stage 3 in the four stages of competence. For reference, those stages are:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Unconscious incompetence&lt;/li&gt;&#xA;&lt;li&gt;Conscious incompetence&lt;/li&gt;&#xA;&lt;li&gt;Conscious competence&lt;/li&gt;&#xA;&lt;li&gt;Unconscious competence&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h2 id=&#34;last-year-i-moved-from-stage-1-to-stage-2&#34;&gt;Last year I moved from stage 1 to stage 2:&lt;/h2&gt;&#xA;&lt;p&gt;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&amp;rsquo;ve also started to realize that it is nicer to &amp;ldquo;chat&amp;rdquo; 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)&lt;/p&gt;</description>
      <category>AI</category><category>Azure</category><category>Learning</category><category>Personal Update</category>
    </item>
    <item>
      <title>Azure VPN Client Using Point-to-Site to Connect to Azure SQL Database</title>
      <link>https://jasonhaley.com/2023/03/18/connect-aure-vpn-p2s-sql-azure/</link>
      <pubDate>Sat, 18 Mar 2023 00:00:00 +0000</pubDate>
      <author>info@jasonhaley.com (Jason Haley)</author>
      <dc:creator>Jason Haley</dc:creator>
      <guid>https://jasonhaley.com/2023/03/18/connect-aure-vpn-p2s-sql-azure/</guid>
      <description>&lt;h1 id=&#34;connect-to-azure-using-point-to-site-vpn-to-connect-to-azure-sql-database&#34;&gt;Connect to Azure using Point-to-Site VPN to Connect to Azure SQL Database&lt;/h1&gt;&#xA;&lt;p&gt;This past week a client of mine gave me a challenge:&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Configure an environment that meets the following criteria&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Remove the need to manage IP addresses for SQL Azure&lt;/li&gt;&#xA;&lt;li&gt;Use a hub and spoke VNET configuration&lt;/li&gt;&#xA;&lt;li&gt;Connect to Azure using a VPN - using Azure Active Directory (AAD) authentication would be a bonus&lt;/li&gt;&#xA;&lt;li&gt;Connect to SQL Azure using AAD authentication&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;Originally, I thought this would be quick and simple &amp;hellip; turns out it isn&amp;rsquo;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:&lt;/p&gt;</description>
      <category>Azure</category><category>SQL</category><category>VPN</category>
    </item>
    <item>
      <title>Quickstart: Deploy an existing container image to Container Apps using Bicep</title>
      <link>https://jasonhaley.com/2022/04/07/container-app-quickstart-bicep-existing-container-image/</link>
      <pubDate>Thu, 07 Apr 2022 00:00:00 +0000</pubDate>
      <author>info@jasonhaley.com (Jason Haley)</author>
      <dc:creator>Jason Haley</dc:creator>
      <guid>https://jasonhaley.com/2022/04/07/container-app-quickstart-bicep-existing-container-image/</guid>
      <description>&lt;p&gt;Like my last post (&lt;a href=&#34;https://jasonhaley.com/2022/04/06/container-app-quickstart-bicep/&#34;&gt;Quickstart: Container Apps using Bicep&lt;/a&gt;), this post is a supplement to the &lt;a href=&#34;https://docs.microsoft.com/en-us/azure/container-apps/get-started-existing-container-image?tabs=bash&amp;amp;pivots=container-apps-private-registry&#34;&gt;existing Azure Container Apps docs&lt;/a&gt; and provides a Bicep walkthrough to getting started.&lt;/p&gt;&#xA;&lt;h1 id=&#34;quickstart-deploy-an-existing-container-image-to-container-apps-using-bicep&#34;&gt;Quickstart: Deploy an existing container image to Container Apps using Bicep&lt;/h1&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://docs.microsoft.com/en-us/azure/container-apps/overview&#34;&gt;Azure Container Apps&lt;/a&gt; is a serverless platform to run and orchestrate your container applications.&lt;/p&gt;&#xA;&lt;p&gt;In this quickstart, you&amp;rsquo;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 &lt;a href=&#34;https://docs.microsoft.com/en-us/learn/paths/fundamentals-bicep/&#34;&gt;Fundamentals of Bicep learning path&lt;/a&gt; to get you started.&lt;/p&gt;</description>
      <category>Azure</category><category>Container Apps</category>
    </item>
    <item>
      <title>Quickstart: Container Apps using Bicep</title>
      <link>https://jasonhaley.com/2022/04/06/container-app-quickstart-bicep/</link>
      <pubDate>Wed, 06 Apr 2022 00:00:00 +0000</pubDate>
      <author>info@jasonhaley.com (Jason Haley)</author>
      <dc:creator>Jason Haley</dc:creator>
      <guid>https://jasonhaley.com/2022/04/06/container-app-quickstart-bicep/</guid>
      <description>&lt;p&gt;This quickstart is a supplement to the &lt;a href=&#34;https://docs.microsoft.com/en-us/azure/container-apps/get-started?tabs=bash&#34;&gt;existing Azure Container Apps docs&lt;/a&gt; and provides a Bicep walkthrough to getting started.&lt;/p&gt;&#xA;&lt;h1 id=&#34;quickstart-deploy-you-first-container-app-using-bicep&#34;&gt;Quickstart: Deploy you first container app using Bicep&lt;/h1&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://docs.microsoft.com/en-us/azure/container-apps/overview&#34;&gt;Azure Container Apps&lt;/a&gt; is a serverless platform to run and orchestrate your container applications.&lt;/p&gt;&#xA;&lt;p&gt;In this quickstart, you&amp;rsquo;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&#xA;more about what it can do, I recommend going through the &lt;a href=&#34;https://docs.microsoft.com/en-us/learn/paths/fundamentals-bicep/&#34;&gt;Fundamentals of Bicep learning path&lt;/a&gt; to get you started.&lt;/p&gt;</description>
      <category>Azure</category><category>Container Apps</category>
    </item>
    <item>
      <title>How to set environment variables in a Container App using the Azure CLI</title>
      <link>https://jasonhaley.com/2022/03/20/env-var-cli/</link>
      <pubDate>Sun, 20 Mar 2022 00:00:00 +0000</pubDate>
      <author>info@jasonhaley.com (Jason Haley)</author>
      <dc:creator>Jason Haley</dc:creator>
      <guid>https://jasonhaley.com/2022/03/20/env-var-cli/</guid>
      <description>&lt;p&gt;Last month when I presented on Azure Container Apps, I was asked &amp;ldquo;How would you set an environment variable?&amp;rdquo;. Since it isn&amp;rsquo;t currently surfaced in the Azure Portal, I wasn&amp;rsquo;t sure.&lt;/p&gt;&#xA;&lt;p&gt;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 &amp;hellip; but since it is new a lot of people start with the Portal or the Azure CLI to explore.&lt;/p&gt;</description>
      <category>Azure</category><category>Container Apps</category>
    </item>
    <item>
      <title>How to rollback a Container App revision using the Azure CLI</title>
      <link>https://jasonhaley.com/2022/03/13/rollback-demo-cli/</link>
      <pubDate>Sun, 13 Mar 2022 00:00:00 +0000</pubDate>
      <author>info@jasonhaley.com (Jason Haley)</author>
      <dc:creator>Jason Haley</dc:creator>
      <guid>https://jasonhaley.com/2022/03/13/rollback-demo-cli/</guid>
      <description>&lt;p&gt;Earlier this month I posted &lt;a href=&#34;https://jasonhaley.com/2022/03/03/rollback-demo/&#34;&gt;How to rollback a Container App revision&lt;/a&gt; which focused on using the Azure Portal UI. In this&#xA;entry I want to go over the same demo scenario using the Azure CLI.&lt;/p&gt;&#xA;&lt;p&gt;Prerequisites for this walkthrough are to follow the steps in the Quickstart first: &lt;a href=&#34;https://docs.microsoft.com/en-us/azure/container-apps/get-started?tabs=bash&#34;&gt;Deploy your first container app (Azure CLI)&lt;/a&gt;, and insert the following steps before the last &lt;strong&gt;Clean up resources&lt;/strong&gt; step.&lt;/p&gt;&#xA;&lt;h1 id=&#34;rollback-a-container-app-revision-using-the-azure-cli&#34;&gt;Rollback a container app revision using the Azure CLI&lt;/h1&gt;&#xA;&lt;p&gt;At this point you&amp;rsquo;ve created the Container App and verified the deployment in the browser, now let&amp;rsquo;s look at the list of revisions using the &lt;code&gt;containerapp revision list&lt;/code&gt; command.&lt;/p&gt;</description>
      <category>Azure</category><category>Container Apps</category>
    </item>
    <item>
      <title>How to rollback a Container App revision</title>
      <link>https://jasonhaley.com/2022/03/03/rollback-demo/</link>
      <pubDate>Thu, 03 Mar 2022 00:00:00 +0000</pubDate>
      <author>info@jasonhaley.com (Jason Haley)</author>
      <dc:creator>Jason Haley</dc:creator>
      <guid>https://jasonhaley.com/2022/03/03/rollback-demo/</guid>
      <description>&lt;p&gt;Last week I presented &amp;ldquo;A look at Azure Container Apps&amp;rdquo; to our local Azure user group. I was my first time presenting the topic and I&amp;rsquo;ll just&#xA;say it wasn&amp;rsquo;t my best presentation (believe me - I&amp;rsquo;ve watched the whole recording). But anyway &amp;hellip; during one of the demos a question came up about&#xA;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.&lt;/p&gt;</description>
      <category>Azure</category><category>Container Apps</category>
    </item>
    <item>
      <title>What I&#39;m using to stay up to date on Azure news</title>
      <link>https://jasonhaley.com/2022/01/28/azure-news/</link>
      <pubDate>Fri, 28 Jan 2022 00:00:00 +0000</pubDate>
      <author>info@jasonhaley.com (Jason Haley)</author>
      <dc:creator>Jason Haley</dc:creator>
      <guid>https://jasonhaley.com/2022/01/28/azure-news/</guid>
      <description>&lt;p&gt;Happy New Year!&lt;/p&gt;&#xA;&lt;p&gt;Yeah, yeah I know - January is almost over already. You aren&amp;rsquo;t tired and letting up on your resolutions yet are you? I know sometimes when I start a new year with a plan to make lots of changes and to be focused on a new year full of goals that really interest me … I start to run out of gas around the end of week 3.&lt;/p&gt;</description>
      <category>Azure</category><category>Career</category>
    </item>
  </channel>
</rss>