这是「进击的Coder」的第 836 篇技术分享
作者:Elfa
来源:赛博精灵Elfa
“
阅读本文大概需要 6 分钟。
”本文介绍了一个强大的第三方开源库 LangChain,用于开发由大型语言模型驱动的应用程序。我们将详细介绍 LangChain 的基础功能、重要概念和使用方法,并为您提供关键代码示例。让我们开始我们的 LangChain 系列教程吧!
亲爱的读者,我们非常高兴向您介绍一款名为 LangChain 的强大的第三方开源库。这款库旨在帮助您开发由大型语言模型(LLM)驱动的应用程序,如 OpenAI、HuggingFace 和 AzureOpenAI。本文是 LangChain 系列教程的第一篇,接下来让我们详细了解 LangChain 的基础功能、重要概念和使用方法。
LangChain 是一个活跃的开源项目,目前已经获得了 26k 的 star。这个库主要具有以下两大功能:
将 LLM 模型与外部数据源进行连接;
允许与 LLM 模型进行交互。
LangChain 支持多种模型接口,如 OpenAI、HuggingFace 和 AzureOpenAI,同时提供 Fake LLM 用于测试。此外,它还支持缓存(如内存、SQLite、Redis 和 SQL)、用量记录、流模式(类似打字效果)以及 Prompt 管理等功能。
接下来,让我们了解一些 LangChain 的关键概念:
加载器用于从指定源加载数据。LangChain 提供了丰富的加载器,例如:
DirectoryLoader(文件夹)
AzureBlobStorageContainerLoader(Azure 存储)
CSVLoader(CSV 文件)
EverNoteLoader(印象笔记)
GoogleDriveLoader(Google 网盘)
UnstructuredHTMLLoader(任意网页)
PyPDFLoader(PDF 文件)
S3DirectoryLoader/S3FileLoader(S3)
YoutubeLoader(YouTube 视频)
当加载器读取到数据源后,需要将数据源转换成 Document 对象,方便后续使用。
文本分割器用于分割文本。由于向 OpenAI API 发送文本或使用其 embedding 功能时有字符限制,因此需要使用文本分割器分割加载器读取到的 Document。
将数据 Document 转换成向量后,便可通过向量运算进行相关性搜索。将数据存储到相应的向量数据库中即可完成向量转换。LangChain 提供了多种向量数据库供您选择。
Chain 可理解为任务,可串联执行多个任务。
Agent 可以简单地理解为动态帮助我们选择和调用 Chain 或已有工具的功能。
嵌入用于衡量文本的相关性,是 OpenAI API 构建知识库的关键技术。相较于 fine-tuning,嵌入的优势在于无需训练,可实时添加新内容,且成本较低。了解更多关于嵌入和 fine-tuning 的比较,请观看这个视频:https://www.youtube.com/watch?v=9qq6HTr7Ocw
以下是一些关键的代码示例:
pip install langchain
from langchain.loaders import DirectoryLoader
loader = DirectoryLoader("data_folder")
documents = loader.load()
from langchain.text_splitters import SimpleTextSplitter
splitter = SimpleTextSplitter(max_tokens=2048)
split_documents = [splitter.split(doc) for doc in documents]
from langchain.vectorstores import FaissVectorStore
vector_store = FaissVectorStore()
for document in documents:
vector = vector_store.text_to_vector(document.text)
vector_store.add(document.id, vector)
from langchain.agents import SimpleAgent
agent = SimpleAgent(vector_store)
query = "What is the meaning of life?"
result = agent.search(query)
以上代码示例仅为 LangChain 的基本使用方法。要充分利用其强大功能,请参考官方文档:https://python.langchain.com/en/latest/
在本文中,我们向您介绍了 LangChain 这款强大的第三方开源库,以及它在大型语言模型应用中的基础概念和关键组件。希望您能够从这篇 LangChain 系列教程的第一篇文章中受益。在接下来的文章中,我们将深入探讨更多高级功能和实际应用案例,敬请期待!
End
欢迎大家加入【ChatGPT&AI 变现圈】,零门槛掌握 AI 神器!我们带你从小白到高手,解锁智能问答、自动化创作、技术变现的无限可能。与我们共同成长,开启 AI 新征程!立即行动,未来已来!(详情请戳:知识星球:ChatGPT&AI 变现圈,正式上线!)
扫码加入: