mirror of
https://github.com/hwchase17/langchain.git
synced 2026-04-02 10:25:07 +00:00
45 lines
1.7 KiB
Plaintext
45 lines
1.7 KiB
Plaintext
# LangChain Over Time
|
|
|
|
Due to the rapidly evolving field, LangChain has also evolved rapidly.
|
|
This document serves to outline at a high level what has changed and why.
|
|
|
|
## 0.2
|
|
|
|
|
|
## 0.1
|
|
|
|
The 0.1 release marked a few key changes for LangChain.
|
|
By this point, the LangChain ecosystem had become large both in the breadth of what it enabled as well as the community behind it.
|
|
|
|
|
|
**Split of packages**
|
|
|
|
LangChain was split up into several packages to increase modularity and decrease bloat.
|
|
First, `langchain-core` is created as a lightweight core library containing the base abstractions,
|
|
some core implementations of those abstractions, and the generic runtime for creating chains.
|
|
Next, all third party integrations are split into `langchain-community` or their own individual partner packages.
|
|
Higher level chains and agents remain in `langchain`.
|
|
|
|
**`Runnables`**
|
|
|
|
Having a specific class for each chain was proving not very scalable or flexible.
|
|
Although these classes were left alone (without deprecation warnings) for this release,
|
|
in the documentation much more space was given to generic runnables.
|
|
|
|
## < 0.1
|
|
|
|
There are several key characteristics of LangChain pre-0.1.
|
|
|
|
**Singular Package**
|
|
|
|
LangChain was largely a singular package.
|
|
The only exception was was `langchain-experimental`, which largely held more experimental code.
|
|
This meant that ALL integrations lived inside `langchain`.
|
|
|
|
|
|
**Chains as classes**
|
|
|
|
Most high level chains were largely their own classes.
|
|
There was a base `Chain` class from which all chains inherited.
|
|
This meant that in order to chain the logic inside a chain you basically had to modify the source code.
|
|
There were a few chains that were meant to be more generic (`SequentialChain`, `RouterChain`) |