https://github.com/wmeints/effective-llm-applications
Learn how to build effective LLM-based applications with Semantic Kernel in C#
https://github.com/wmeints/effective-llm-applications
ai book csharp llm rag semantic-kernel structured-output testing tool-calling
Last synced: 3 months ago
JSON representation
Learn how to build effective LLM-based applications with Semantic Kernel in C#
- Host: GitHub
- URL: https://github.com/wmeints/effective-llm-applications
- Owner: wmeints
- Created: 2024-12-30T06:17:03.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-10-15T07:00:24.000Z (6 months ago)
- Last Synced: 2025-12-06T20:59:03.454Z (5 months ago)
- Topics: ai, book, csharp, llm, rag, semantic-kernel, structured-output, testing, tool-calling
- Language: Jupyter Notebook
- Homepage: https://leanpub.com/effective-llm-applications-with-semantic-kernel/
- Size: 8.07 MB
- Stars: 15
- Watchers: 2
- Forks: 1
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
Awesome Lists containing this project
README
# Building effective LLM-based applications with Semantic Kernel

Welcome to my new book about building effective LLM-based applications with Semantic
Kernel. This book is available on Leanpub! This repository is where I build the book.
## Reading the book
Get a copy now and start reading! Read it on
Leanpub: [Building effective LLM-based applications with Semantic
Kernel](https://leanpub.com/effective-llm-applications-with-semantic-kernel)
## Progress
I'm writing this book as you read this, and I'm at **100% completion**.
| Chapter | Status | Samples |
| --------------------------------------------- | ----------- | -------------------------------------------------------------------------- |
| 1. Understanding Large Language Models | Complete | N.A. |
| 2. Essential LLMOps knowledge | Complete | N.A. |
| 3. Getting started with Semantic Kernel | Complete | [C#](./samples/chapter-03/csharp/), [Python](./samples/chapter-03/python/) |
| 4. The art and nonsense of prompt engineering | Complete | [C#](./samples/chapter-04/csharp/), [Python](./samples/chapter-04/python/) |
| 5. Testing and monitoring prompts | Complete | [C#](./samples/chapter-05/csharp/) |
| 6. Enhancing LLMs with functions | Complete | [C#](./samples/chapter-06/csharp/) |
| 7. Retrieval Augmented Generation (RAG) | Complete | [C#](./samples/chapter-07/csharp/) |
| 8. Working with structured output | Complete | [C#](./samples/chapter-08/csharp/) |
| 9. Prompt chaining workflows | Complete | [C#](./samples/chapter-09/csharp/) |
| 10. Intelligent request routing workflows | Complete | [C#](./samples/chapter-10/csharp/) |
| 11. Using Agents and Multi-agent systems | Complete | [C#](./samples/chapter-11/csharp/) |
## Working with the examples
This book features examples in Python and C# to demonstrate how to implement various patterns
with Semantic Kernel.
You can open the solutions in the `samples` directory to browse them.
Follow the instructions provided with each example to run the example.
### Requirements for the C# samples
- [.NET 9](https://dot.net/)
- [Visual Studio Code](https://code.visualstudio.com)
- Access to the OpenAI API or Azure OpenAI
- [Docker Desktop](https://www.docker.com/products/docker-desktop/)
- [Azure CLI](https://docs.microsoft.com/en-us/cli/azure/install-azure-cli)
### Requirements for the Python samples
- [Python 3.12](https://www.python.org/downloads/)
- [Visual Studio Code](https://code.visualstudio.com)
- Access to the OpenAI API or Azure OpenAI
- [Docker Desktop](https://www.docker.com/products/docker-desktop/)
- [Azure CLI](https://docs.microsoft.com/en-us/cli/azure/install-azure-cli)
## Sponsor me
I am writing this in my spare time to help people gain practical knowledge about
working with large language models. The book is free, but I take donations as a token
of gratitude.
You can donate by purchasing the book online through Leanpub. You can also sponsor me
through the sponsorship button on this repository.
## My workflow
Since you're here anyway, let me share my workflow for this book so you'll get to know
a little more about how I work and what you can expect from me.
My workflow has the following phases:
- Research
- Writing
- Review and initial editing
- Formatting and layout
- Publishing
I publish after each chapter is complete and has undergone initial editing. This way, you
get the content as fast as possible. After I've completed the whole book, I'll go through
the entire book again to ensure everything is consistent and correct.
> **Hey, didn't you use AI to write your book?**
> Yes, I did! I used Claude.ai to help me generate text for the book. But I stopped. I
> found that it gets in the way of critical thinking and creativity. It also throws so
> much mediocre content at me, it's hard to manage it. I prefer to write the content
> myself now that I have the time for it. I love writing, and AI wasn't doing me a favor
> in that regard.
### Research
The book contains my experience with building LLM-based applications using Semantic Kernel.
I pull from experience as much as possible because it gives the best results for me.
However, before I write, I research to verify that my ideas will work and
build a sample to demonstrate the principles. Working code is still the best way to
demonstrate things. The book is the narrative of the example.
### Writing
I write an initial set of notes in Markdown and a rough outline that I refine.
After the initial outline, I'll start by adding detail to each of the sections in the
outline. I still use a note writing style to make sure that each section makes
sense to you, as the reader of my work. Often, I need to rework the outline as I write
the notes because I find that the initial outline doesn't work out as I thought.
Once I have the notes for the whole chapter, I'll go back and expand the notes into the
full text. At this time, I want to ensure that there are pointers and bridges
to help you navigate the text. I also want to make sure that the text is engaging and
that it's easy to read.
### Review and initial editing
Once everything is in the chapter, I'll put aside the text for a day and let it rot,
ripen, or marinate if you will. This helps me to get a fresh perspective on the text.
I'll then go through the text and make sure everything makes sense and still conveys what
I wanted to tell you.
I perform a final spell check using Grammarly, an online tool that helps me catch mistakes
in grammar, spelling, and style.
### Formatting and layout
At this point, I use the Leanpub preview generator to preview the final look of my book.
I find that I often need to insert additional line breaks and correct figures to make
sure that everything looks good. I also need to ensure that the code samples' layout isn't broken.
### Publishing
When the chapter is ready, I'll publish a new version in Leanpub.
I'll also update the README.md file to reflect the current state of the book.