LangChain is a framework for developing applications powered by language models.
1. 介绍
1.1 模块
-
Models: Supported model types and integrations.
-
Prompts: Prompt management, optimization, and serialization.
-
Memory: Memory refers to state that is persisted between calls of a chain/agent.
-
Indexes: Language models become much more powerful when combined with application-specific data - this module contains interfaces and integrations for loading, querying and updating external data.
-
Chains: Chains are structured sequences of calls (to an LLM or to a different utility).
-
Agents: An agent is a Chain in which an LLM, given a high-level directive and a set of tools, repeatedly decides an action, executes the action and observes the outcome until the high-level directive is complete.
-
Callbacks: Callbacks let you log and stream the intermediate steps of any chain, making it easy to observe, debug, and evaluate the internals of an application.
1.2 用例
Best practices and built-in implementations for common LangChain use cases:
-
Autonomous Agents: Autonomous agents are long-running agents that take many steps in an attempt to accomplish an objective. Examples include AutoGPT and BabyAGI.
-
Agent Simulations: Putting agents in a sandbox and observing how they interact with each other and react to events can be an effective way to evaluate their long-range reasoning and planning abilities.
-
Personal Assistants: One of the primary LangChain use cases. Personal assistants need to take actions, remember interactions, and have knowledge about your data.
-
Question Answering: Another common LangChain use case. Answering questions over specific documents, only utilizing the information in those documents to construct an answer.
-
Chatbots: Language models love to chat, making this a very natural use of them.
-
Querying Tabular Data: Recommended reading if you want to use language models to query structured data (CSVs, SQL, dataframes, etc).
-
Code Understanding: Recommended reading if you want to use language models to analyze code.
-
Interacting with APIs: Enabling language models to interact with APIs is extremely powerful. It gives them access to up-to-date information and allows them to take actions.
-
Extraction: Extract structured information from text.
-
Summarization: Compressing longer documents. A type of Data-Augmented Generation.
-
Evaluation: Generative models are hard to evaluate with traditional metrics. One promising approach is to use language models themselves to do the evaluation.
简单小实验
https://github.com/daveebbelaar/langchain-experiments
LangChain Tutorial in Python - Crash Course - Python Engineer