什么是LangChain
LangChain是一个强大的框架,旨在帮助开发人员使用语言模型构建端到端的应用程序。它提供了一套工具、组件和接口,可简化创建由大型语言模型 (LLM) 和聊天模型提供支持的应用程序的过程。LangChain 可以轻松管理与语言模型的交互,将多个组件链接在一起,并集成额外的资源,例如 API 和数据库。
官方文档:https://python.langchain.com/en/latest/
中文文档:https://www.langchain.com.cn/
从上图可以看到,LangChain 目前有四层框架:
最下层深色部分:LangChain的Python和JavaScript库。包含无数组件的接口和集成,以及将这些组件组合到一起的链(chain)和代理(agent)封装,还有链和代理的具体实现。
Templates:一组易于部署的参考体系结构,用于各种各样的任务。
LangServe:用于将LangChain链部署为REST API的库。
LangSmith:一个开发人员平台,允许您调试、测试、评估和监控基于任何LLM框架构建的链,并与LangChain无缝集成。
在最下层深色部分- LangChain的Python和JavaScript库中,可以看到它封装了一系列模块。
模型 I/O 封装,包括:
LLMs:大语言模型
ChatModels:一般基于 LLMs,但按对话结构重新封装
Prompt:提示词模板
OutputParser:解析输出
Retrieval 数据连接与向量检索封装,包括:
Retriever: 向量的检索
Document Loader:各种格式文件的加载器
Embedding Model:文本向量化表示,用于检索等操作
Verctor Store: 向量的存储
Text Splitting:对文档的常用操作
Agents 根据用户输入,自动规划执行步骤,自动选择每步需要的工具,最终完成用户指定的功能,包括:
Tools:调用外部功能的函数,例如:调 google 搜索、文件 I/O、Linux Shell 等等
Toolkits:操作某软件的一组工具集,例如:操作 DB、操作 Gmail 等等
Chain 实现一个功能或者一系列顺序功能组合
Memory 记忆封装,也就是上下文的管理能力封装
Callbacks 一些过程回调函数
LangChain的入门代码
LangChain内置了很多的api,首先我将学习他的一个入门接口:通过LangChain的接口来调用OpenAI对话
1.安装依赖
- pip 安装
python
复制代码
pip install langchain
- conda 安装
python
复制代码
conda install langchain -c conda-forge
python
复制代码
pip install -U langchain-openai
你的.env文件
OPENAI_API_KEY="sk-111223" # <-------- 你的原生 OpenAI API Key
import os
# 加载 .env 到环境变量
from dotenv import load_dotenv, find_dotenv
_ = load_dotenv(find_dotenv())
from langchain_openai import ChatOpenAI ## langchain封装的openai对话接口
llm = ChatOpenAI() # 默认是gpt-3.5-turbo
response = llm.invoke("你是谁") ## 通过 invoke 传入对话
print(response.content)
## 运行结果输出:我是一个AI助手,没有具体的身份。我是由OpenAI开发的,可以帮助回答问题和提供信息。