
哈佛 Translation Company 推薦:如何选择最佳翻译服务
LangChain是一个基于大语言模型的框架,旨在帮助开发者快速构建语言模型应用。本文将深入探讨LangChain的核心组件和使用方法,并提供实用的代码示例和图片链接。
LangChain是一个强大的框架,专为构建和部署基于大语言模型的应用而设计。它通过提供一系列的工具、套件和接口,简化了从开发到部署的全过程。LangChain的强大之处在于其模块化设计,让开发者可以灵活地组合不同的组件,以实现如文本生成、文档问答以及聊天机器人等复杂任务。
LangChain的生命周期可分为三个阶段:
LangChain的核心由六大组件构成,这些组件相互协作,形成一个灵活而强大的系统:
表格快速预览:
英文 | 中文 | 说明 |
---|---|---|
Models | 模型 | LangChain和大模型的接口 |
Chains | 链 | LangChain对各种组件的封装和调用链条 |
Prompts | 提示 | 输入大模型的提示模板 |
Indexes | 索引 | 非结构化数据的查找和访问 |
Memory | 记忆 | 与大模型聊天过程中记忆信息 |
Agents | 代理 | 自主计划和执行的机制 |
LangChain框架由以下开源库组成:
首先,您需要安装LangChain及其相关组件。以下命令将帮助您安装指定版本的LangChain:
pip install langchain==0.1.7
执行安装命令后,以下组件将被自动安装:
Installing collected packages: langsmith, langchain-core, langchain-text-splitters, langchain-community, langchain
更新LangChain至最新版本:
pip install --upgrade langchain
为了使用OpenAI,您需要安装第三方集成库并设置环境变量:
pip install langchain langchain_openai
设置OpenAI环境变量:
import os
os.environ["OPENAI_BASE_URL"] = "https://xxx.com/v1"
os.environ["OPENAI_API_KEY"] = "sk-your-api-key"
from langchain_openai import ChatOpenAI
llm = ChatOpenAI()
llm.invoke("LangSmith 是什么?")
LangChain允许使用提示模板来优化与语言模型的交互。提示模板将原始用户输入转换为更合适的LLM输入。
from langchain_core.prompts import ChatPromptTemplate
prompt = ChatPromptTemplate.from_messages([
("system", "您是世界级的技术文档编写者。"),
("user", "{input}")
])
chain = prompt | llm
chain.invoke({"input": "Langsmith 如何帮助进行测试?"})
可以通过添加输出解析器将聊天消息转换为字符串,以便更好地处理响应。
from langchain_core.output_parsers import StrOutputParser
output_parser = StrOutputParser()
chain = prompt | llm | output_parser
chain.invoke({"input": "Langsmith 如何帮助进行测试?"})
向量存储是LangChain的重要组成部分,用于存储和检索嵌入向量。您需要安装BeautifulSoup和FAISS来支持这一功能。
pip install beautifulsoup4
pip install faiss-cpu
通过向量存储,您可以轻松检索相关的文档和数据,以便进一步处理。
检索链允许您接收一个问题,查找相关文档,并将这些文档与原始问题一起传递给LLM,生成答案。
from langchain.chains.combine_documents import create_stuff_documents_chain
document_chain = create_stuff_documents_chain(llm, prompt)
response = document_chain.invoke({"input": "Langsmith 如何帮助进行测试?","context": [Document(page_content=text)]})
可以创建一个对话检索链,接收最新的输入和对话历史记录,生成搜索查询并检索相关信息。
from langchain.chains import create_history_aware_retriever
retriever_chain = create_history_aware_retriever(llm, retriever, prompt)
chat_history = [HumanMessage(content="LangSmith 可以帮助测试我的 LLM 应用程序吗?"), AIMessage(content="Yes!")]
retriever_chain.invoke({"chat_history": chat_history,"input": "告诉我怎么做"})
代理是LangChain中的关键组件,允许大模型自主调用外部工具。您可以通过创建检索器工具和搜索工具来扩展代理的功能。
from langchain.tools.retriever import create_retriever_tool
retriever_tool = create_retriever_tool(retriever,"langsmith_search","搜索有关 LangSmith 的信息。对于有关LangSmith的任何问题,您必须使用此工具!")
LangServe是LangChain的一部分,可以帮助开发者将LangChain应用程序部署为REST API。以下是创建服务的基本步骤:
langserve.add_routes
定义链的路由。import os
from fastapi import FastAPI
from langserve import add_routes
app = FastAPI(title="LangChain Server")
add_routes(app, agent_executor.with_types(input_type=Input, output_type=Output), path="/agent")
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="localhost", port=8000)
LangChain适用于文本生成、文档问答、聊天机器人等需要语言模型的应用场景。它的模块化设计允许开发者灵活组合功能。
您可以通过pip install langchain
命令安装LangChain,并根据需要安装其他依赖库,如langchain-openai
。
LangServe可以将LangChain应用程序部署为REST API,方便开发者在不同环境中使用和扩展应用。
提示模板用于优化与语言模型的交互。通过将用户输入转换为更好的LLM输入,提升响应质量。
LangChain的六大组件是模型、提示模板、数据检索、记忆、链和代理。它们共同构成了LangChain的核心功能。