Skip to main content

Posts

Semantic Kernel - 404 error when using the v1.20.0 version

While preparing a demo for my team, I encountered the following error after upgrading to Semantic Kernel 1.20.0(alpha). Microsoft.SemanticKernel.HttpOperationException: Service request failed. Status: 404 (Not Found) ---> System.ClientModel.ClientResultException: Service request failed. Status: 404 When I took a look at the request URI, I noticed that the following URI was used:   I switched back to the original version I was using (v1.17.2) and now I could see that a different URI was used:   Do you notice the difference? Somehow the 'v1' part in the URI disappeared... A look at the Semantic Kernel Github repo brought me to the following issue: .Net: Bug: HTTP 404 - POST /chat/completions · Issue #8525 · microsoft/semantic-kernel (github.com) It seems that it is related to the OpenAI version in use. A fix is to stay a little bit longer on the v1.17.2 version until a new release with the following fix is available: .Net: OpenAI + AzureOpenAI Connector SDK u
Recent posts

Running a fully local AI Code Assistant with Continue–Part 1–Introduction

When I‘m coding, I'm assisted today by Github Copilot. And although Github does a lot of effort to keep your data private, not every organisation allows to use it. If you are working for such an organisation, does this mean that you cannot use an AI code assistant? Luckily, the answer is no. In this post I’ll show you how to combine Continue , an open-source AI code assistent with Ollama to run a fully local Code Assistant. Keep reading… What is Continue? Continue is an open-source AI code assistant that can be easily integrated in popular IDEs like like VS Code and JetBrains , providing custom autocomplete and chat experiences. It offers features you expect from most code assistants like autocomplete, code explanation, chat, refactoring, ask questions about your code base and more and all of this based the AI model of your choice. Installing and configuring Continue in VSCode As mentioned in the intro you can integrate in both VS Code and JetBrains IDEs like Rider or

ADFS–Export and import Relying Party data

At one of my clients we have multiple ADFS instances, one for testing purposes and one for production usage. The information on both servers is almost the same, only the endpoints for each relying party are different. Before we typically copied information from one server to another manually, typing over all the information. Of course this is a a cumbersome and error-prone process. I decided to simplify and automate this process with the help of some Powershell. The good news was that the hard work was already done for me, as Brad Held already created a script for exactly that purpose: PowerShell Gallery | Copy-RelyingPartyTrust 1.1 Here is how to use this script: Copy-RelyingPartyTrust.ps1 -sourceRPID testing:saml:com -path C:\Folder -filename SamlTest.json -import false As I found the script a little bit confusing I took the freedom to adapt the code and split it out in 2 separate scripts. Here is the export script: You can use this script like this: export.ps1 -rp

Becoming a professional software developer: Identity over skills

In my experience as a software architect working with developers, I’ve seen a common struggle: the inability to consistently apply good practices, like unit testing, refactoring, or writing clean code, especially when deadlines loom. At the start of a project, everyone’s committed to following best practices—writing tests, maintaining code quality, and ensuring scalability. But as the pressure of deadlines kicks in, those good intentions often get thrown overboard in favor of quick fixes and shortcuts. What I’ve realized is that the real issue isn’t a lack of skill or knowledge; it’s a mindset problem. Developers may know what the best practices are, but they don’t always see themselves as the type of developer who religiously follows them, no matter the circumstances. This ties into an insight I gained from reading Atomic Habits by James Clear: True change happens not when we aim to achieve specific goals, but when we shift our identity. For developers, this means moving

Github Actions–Deprecation warnings

Today I had to tweak some older Github Action workflows. When I took a look at the workflow output I noticed the following warnings: Here is a simplified version of the workflow I was using: The fix was easy, I had to update the action steps to use the latest versions(v4):

Semantic Kernel - Multi agent systems

Yesterday I talked about the new agent abstraction in Semantic Kernel and how it can simplify the steps required to build your own AI agent.  But what could be better than having one agent? Multiple agents of course! And that is exactly what was recently introduced as a preview in Semantic Kernel. As explained in this blog post , there are multiple ways that multiple agents can work together. The simplest way is as a group chat where multiple agents can talk back-and-forth with each other. To avoid that these agents get stuck in a loop this is combined with a custom termination strategy that specifies when the conversation is over. Here is a small example. I start with the default Semantic Kernel configuration to create a kernel instance: Now I define the instructions for the different agents and create them: Remark: Notice that I can use different kernels with different models if I want to. To make sure that the conversation is ended I need to specify a TerminationStr

Semantic Kernel–Agent Framework

In this post I show you the recently introduced Semantic Kernel agents feature and how it simplifies building your own AI agents. But maybe I should start with a short recap about Semantic Kernel. On the documentation pages , Semantic Kernel is described like this: Semantic Kernel is a lightweight, open-source development kit that lets you easily build AI agents and integrate the latest AI models into your C#, Python, or Java codebase. It serves as an efficient middleware that enables rapid delivery of enterprise-grade solutions. It gives you all the building blocks required to build your own agent; a chat completion model, a plugin system, a planner and more. However until recently you had to bring all this building blocks together yourself. Here is a small code snippet I copied from an existing project: There are a lot of things going on in the code above and if you have hard time to understand all of this I have some good news for you. Starting with the Python (1.6.0) and