{"id":42148898,"url":"https://github.com/wmeints/effective-llm-applications","last_synced_at":"2026-01-26T18:11:01.630Z","repository":{"id":270322433,"uuid":"909951752","full_name":"wmeints/effective-llm-applications","owner":"wmeints","description":"Learn how to build effective LLM-based applications with Semantic Kernel in C#","archived":false,"fork":false,"pushed_at":"2025-10-15T07:00:24.000Z","size":8460,"stargazers_count":15,"open_issues_count":3,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-12-06T20:59:03.454Z","etag":null,"topics":["ai","book","csharp","llm","rag","semantic-kernel","structured-output","testing","tool-calling"],"latest_commit_sha":null,"homepage":"https://leanpub.com/effective-llm-applications-with-semantic-kernel/","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wmeints.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["wmeints"],"ko_fi":"willemmeints"}},"created_at":"2024-12-30T06:17:03.000Z","updated_at":"2025-10-15T07:00:07.000Z","dependencies_parsed_at":null,"dependency_job_id":"45278405-cb58-4fb4-958d-4e041b008af7","html_url":"https://github.com/wmeints/effective-llm-applications","commit_stats":null,"previous_names":["wmeints/effective-llm-applications"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/wmeints/effective-llm-applications","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wmeints%2Feffective-llm-applications","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wmeints%2Feffective-llm-applications/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wmeints%2Feffective-llm-applications/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wmeints%2Feffective-llm-applications/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wmeints","download_url":"https://codeload.github.com/wmeints/effective-llm-applications/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wmeints%2Feffective-llm-applications/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28784093,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-26T13:55:28.044Z","status":"ssl_error","status_checked_at":"2026-01-26T13:55:26.068Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","book","csharp","llm","rag","semantic-kernel","structured-output","testing","tool-calling"],"created_at":"2026-01-26T18:11:01.136Z","updated_at":"2026-01-26T18:11:01.622Z","avatar_url":"https://github.com/wmeints.png","language":"Jupyter Notebook","readme":"# Building effective LLM-based applications with Semantic Kernel\n\n![Cover Art](./cover/cover-art.png)\n\nWelcome to my new book about building effective LLM-based applications with Semantic\nKernel. This book is available on Leanpub! This repository is where I build the book.\n\n## Reading the book\n\nGet a copy now and start reading! Read it on\nLeanpub: [Building effective LLM-based applications with Semantic\nKernel](https://leanpub.com/effective-llm-applications-with-semantic-kernel)\n\n## Progress\n\nI'm writing this book as you read this, and I'm at **100% completion**.\n\n| Chapter                                       | Status      | Samples                                                                    |\n| --------------------------------------------- | ----------- | -------------------------------------------------------------------------- |\n| 1. Understanding Large Language Models        | Complete    | N.A.                                                                       |\n| 2. Essential LLMOps knowledge                 | Complete    | N.A.                                                                       |\n| 3. Getting started with Semantic Kernel       | Complete    | [C#](./samples/chapter-03/csharp/), [Python](./samples/chapter-03/python/) |\n| 4. The art and nonsense of prompt engineering | Complete    | [C#](./samples/chapter-04/csharp/), [Python](./samples/chapter-04/python/) |\n| 5. Testing and monitoring prompts             | Complete    | [C#](./samples/chapter-05/csharp/)                                         |\n| 6. Enhancing LLMs with functions              | Complete    | [C#](./samples/chapter-06/csharp/)                                         |\n| 7. Retrieval Augmented Generation (RAG)       | Complete    | [C#](./samples/chapter-07/csharp/)                                         |\n| 8. Working with structured output             | Complete    | [C#](./samples/chapter-08/csharp/)                                         |\n| 9. Prompt chaining workflows                  | Complete    | [C#](./samples/chapter-09/csharp/)                                         |\n| 10. Intelligent request routing workflows     | Complete    | [C#](./samples/chapter-10/csharp/)                                         |\n| 11. Using Agents and Multi-agent systems      | Complete    | [C#](./samples/chapter-11/csharp/)                                         |\n\n## Working with the examples\n\nThis book features examples in Python and C# to demonstrate how to implement various patterns\nwith Semantic Kernel.\n\nYou can open the solutions in the `samples` directory to browse them.\nFollow the instructions provided with each example to run the example.\n\n### Requirements for the C# samples\n\n- [.NET 9](https://dot.net/)\n- [Visual Studio Code](https://code.visualstudio.com)\n- Access to the OpenAI API or Azure OpenAI\n- [Docker Desktop](https://www.docker.com/products/docker-desktop/)\n- [Azure CLI](https://docs.microsoft.com/en-us/cli/azure/install-azure-cli)\n\n### Requirements for the Python samples\n\n- [Python 3.12](https://www.python.org/downloads/)\n- [Visual Studio Code](https://code.visualstudio.com)\n- Access to the OpenAI API or Azure OpenAI\n- [Docker Desktop](https://www.docker.com/products/docker-desktop/)\n- [Azure CLI](https://docs.microsoft.com/en-us/cli/azure/install-azure-cli)\n\n## Sponsor me\n\nI am writing this in my spare time to help people gain practical knowledge about\nworking with large language models. The book is free, but I take donations as a token\nof gratitude.\n\nYou can donate by purchasing the book online through Leanpub. You can also sponsor me\nthrough the sponsorship button on this repository.\n\n## My workflow\n\nSince you're here anyway, let me share my workflow for this book so you'll get to know\na little more about how I work and what you can expect from me.\n\nMy workflow has the following phases:\n\n- Research\n- Writing\n- Review and initial editing\n- Formatting and layout\n- Publishing\n\nI publish after each chapter is complete and has undergone initial editing. This way, you\nget the content as fast as possible. After I've completed the whole book, I'll go through\nthe entire book again to ensure everything is consistent and correct.\n\n\u003e **Hey, didn't you use AI to write your book?**  \n\u003e Yes, I did! I used Claude.ai to help me generate text for the book. But I stopped. I\n\u003e found that it gets in the way of critical thinking and creativity. It also throws so\n\u003e much mediocre content at me, it's hard to manage it. I prefer to write the content\n\u003e myself now that I have the time for it. I love writing, and AI wasn't doing me a favor\n\u003e in that regard.\n\n### Research\n\nThe book contains my experience with building LLM-based applications using Semantic Kernel.\nI pull from experience as much as possible because it gives the best results for me.\n\nHowever, before I write, I research to verify that my ideas will work and\nbuild a sample to demonstrate the principles. Working code is still the best way to\ndemonstrate things. The book is the narrative of the example.\n\n### Writing\n\nI write an initial set of notes in Markdown and a rough outline that I refine.\n\nAfter the initial outline, I'll start by adding detail to each of the sections in the\noutline. I still use a note writing style to make sure that each section makes\nsense to you, as the reader of my work. Often, I need to rework the outline as I write\nthe notes because I find that the initial outline doesn't work out as I thought.\n\nOnce I have the notes for the whole chapter, I'll go back and expand the notes into the\nfull text. At this time, I want to ensure that there are pointers and bridges\nto help you navigate the text. I also want to make sure that the text is engaging and\nthat it's easy to read.\n\n### Review and initial editing\n\nOnce everything is in the chapter, I'll put aside the text for a day and let it rot,\nripen, or marinate if you will. This helps me to get a fresh perspective on the text.\nI'll then go through the text and make sure everything makes sense and still conveys what \nI wanted to tell you.\n\nI perform a final spell check using Grammarly, an online tool that helps me catch mistakes\nin grammar, spelling, and style.\n\n### Formatting and layout\n\nAt this point, I use the Leanpub preview generator to preview the final look of my book.\nI find that I often need to insert additional line breaks and correct figures to make\nsure that everything looks good. I also need to ensure that the code samples' layout isn't broken.\n\n### Publishing\n\nWhen the chapter is ready, I'll publish a new version in Leanpub.\nI'll also update the README.md file to reflect the current state of the book.\n","funding_links":["https://github.com/sponsors/wmeints","https://ko-fi.com/willemmeints"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwmeints%2Feffective-llm-applications","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwmeints%2Feffective-llm-applications","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwmeints%2Feffective-llm-applications/lists"}