Article
The LangChain series, three years on
In 2023 I wrote a nine-part series on building with LangChain, from environment setup to chatting with your own data. What it covered, what has changed, and where to read it.
Between June and August 2023 I published a nine-part series on building LLM apps with LangChain, ending in a working “chat with your data” pipeline. It was written while the framework was moving fast, and three years later the imports have moved even faster. Rather than migrate nine posts that pin old APIs, this page keeps the map and the honest context.
What the series covered
The through-line was one pipeline: load documents, split them, embed the chunks, store the vectors, and retrieve them into a conversation.
- Environment setup
- Project structure
- Data loaders
- Text splitters
- Embeddings and vector stores
- Pinecone vector database
- Chat with your data
- Enable streaming
- Practical project: a CLI chatbot
The companion project from the same period, chat with any GitHub repo, applies the full pattern to a real codebase.
What has changed since 2023
- LangChain split into
langchain-core,langchain-community, and per-provider packages; most 2023 import paths no longer resolve. - Chains gave way to LCEL and then to LangGraph for anything stateful.
- The retrieval pattern itself (load, split, embed, store, retrieve) is unchanged. That part of the series still teaches the right mental model.
If you’re learning the concepts, the series holds up. If you’re copy-pasting code, expect to translate the imports to current packages.