Components
LangChain provides standard, extendable interfaces and external integrations for the following main components:
Model I/O
Formatting and managing language model input and output
Prompts
Formatting for LLM inputs that guide generation
Chat models
Interfaces for language models that use chat messages as inputs and returns chat messages as outputs (as opposed to using plain text).
LLMs
Interfaces for language models that use plain text as input and output
Retrieval
Interface with application-specific data for e.g. RAG
Document loaders
Load data from a source as Documents
for later processing
Text splitters
Transform source documents to better suit your application
Embedding models
Create vector representations of a piece of text, allowing for natural language search
Vectorstores
Interfaces for specialized databases that can search over unstructured data with natural language
Retrievers
More generic interfaces that return documents given an unstructured query
Composition
Higher-level components that combine other arbitrary systems and/or or LangChain primitives together
Tools
Interfaces that allow an LLM to interact with external systems
Agents
Constructs that choose which tools to use given high-level directives
Chains
Building block-style compositions of other runnables
Additional
Memory
Persist application state between runs of a chain
Callbacks
Log and stream intermediate steps of any chain