You need help choosing between Semantic Kernel and LangChain and this post is going to introduce you to both technologies, however, please go through the recommended readings throughout the post for more details and code samples.
Introduction to LangChain
Harrison Chase released LangChain in October 2022 to simplify the development of language model applications. It has since become one of the most popular Python and TypeScript tools used to build RAG apps.
LangChain focuses on creating connected chains to complete a given task and comes with a bunch of tools and plugins to make this process easy.
LangChain Pros and Cons
The framework is praised by some, while others hate it. Here are some of the most important LangChain pros and cons:
- Easy learning curve
- Feature-packed with many out-of-the-box plugins
- Great for prototyping
- Frequently updated
- Inconsistent and (sometimes) outdated documentation
- Challenging to customize and difficult to debug
- Criticized for complicating simple tasks
- Negative sentiment regarding usage in production
Introduction to Semantic Kernel (aka SK)
Semantic Kernel is an open-source SDK from Microsoft that makes it easy to build AI agents that can interact with a wide range of LLMs as well as call existing application functions. It is available in Python, C#, and Java.
Semantic Kernel revolves around a Kernel that handles events using plugins and functions to complete a task. It also includes a Planner that can automatically decide which plugins and functions to use given a prompt.
Semantic Kernel Pros and Cons
SK is elegant but is not adopted by as many developers as LangChain. Here are some of the most important Semantic Kernel pros and cons:
Semantic Kernel Pros
- .NET support and backed by Microsoft
- Clean prompt implementation
- Ideal for experimentation and production
- SK Plugins are easily transformable into OpenAI plugins
Semantic Kernel Cons
- Requires frequent adaptation in an evolving space
- Limited resources and documentation
- Learning curve due to integration differences from typical frameworks
- Limited availability of plugins and extensions
LangChain vs Semantic Kernel
Semantic Kernel and LangChain both enable the integration of natural language processing easily, however, they do it differently. On the one hand, if you're looking for a lot of prebuilt tools, great community support, many plugins, a high level of abstraction, and lots of tutorials online you may want to consider LangChain.
On the other hand, an obvious use case for Semantic Kernel is if you're using the .NET Framework. SK comes with Python, Java, and C# support which integrates beautifully with your existing .NET codebase. It also looks cleaner and more organized than LangChain.
Before you make a final decision, it's essential you implement simple apps using both frameworks. To do this, you can follow my LangChain articles and tutorials and also my complete Semantic Kernel sample application.
This will also help you assess the code structure and your level of comfort in writing for both frameworks.
Further readings and resources
More from Getting Started with AI
- All my LangChain posts
- Just getting started with LangChain? Here's everything you need to know
- Add AI capabilities to your C# application using Semantic Kernel from Microsoft (Part 1)
- Add AI capabilities to your C# application using Semantic Kernel from Microsoft (Part 2)