当前位置:首页|资讯|OpenAI

LangChain你必须知道的知识点

作者:AI研习所发布时间:2023-07-04

众所周知 OpenAI 的 API 无法联网,所以大家如果想通过它的API实现联网搜索并给出回答、总结 PDF 文档、基于某个 Youtube 视频进行问答等等的功能肯定是无法实现的。所以,我们来介绍一个非常强大的第三方开源库:LangChain 。

LangChain 是一个用于开发由语言模型驱动的应用程序的框架。他主要拥有 2 个能力:可以将 LLM 模型与外部数据源进行连接&允许与 LLM 模型进行交互。这个库目前非常活跃,每天都在迭代,已经有 22k 的 star,更新速度飞快。

基础功能

  • LLM 调用
  • 支持多种模型接口,比如 OpenAI、Hugging Face、AzureOpenAI ...
  • Fake LLM,用于测试
  • 缓存的支持,比如 in-mem(内存)、SQLite、Redis、SQL
  • 用量记录
  • 支持流模式(类似打字效果)

Prompt管理,支持各种自定义模板

  • 文档分割器
  • 向量化
  • 对接向量存储与搜索,比如 Chroma、Pinecone、Qdrand

Chains

  • LLMChain
  • 各种工具Chain
  • LangChainHub

必知概念Loader 加载器

顾名思义,这个就是从指定源进行加载数据的。比如:文件夹 DirectoryLoader、Azure 文件存储AzureBlobStorageContainerLoader、CSV文件 CSVLoader、印象笔记 EverNoteLoader、Google网盘 GoogleDriveLoader、任意的网页 ...

Document 文档当使用loader加载器读取到数据源后,数据源需要转换成 Document 对象后,后续才能进行使用。

Text Spltters 文本分割为什么需要文本分割?因为我们每次不管是把文本当作 prompt 发给 openai api ,还是还是使用 openai api embedding 功能都是有字符限制的。比如我们将一份300页的 pdf 发给 openai api,让它进行总结,它肯定会报错“超过最大 Token” ,所以这里就需要使用文本分割器去分割我们 loader 进来的 Document。

Vectorstores 向量数据库因为数据相关性搜索其实是向量运算。所以不管我们是使用 openai api embedding 功能还是直接通过向量数据库直接查询,都需要将我们的加载进来的数据 Document 进行向量化,才能进行向量运算搜索。转换成向量也很简单,只需要我们把数据存储到对应的向量数据库中即可完成向量的转换。

Chain 链我们可以把 Chain 理解为任务。一个 Chain 就是一个任务,当然也可以像链条一样,一个一个的执行多个链。

Agent 代理简单的理解就是它可以动态的帮我们选择和调用chain或者已有的工具。执行过程可以参考下面这张图:


Embedding用于衡量文本的相关性。这个也是 OpenAI API 能实现构建自己知识库的关键所在。他相比 fine-tuning 最大的优势就是,不用进行训练并且可以实时添加新的内容,而不用加一次新的内容就训练一次,并且各方面成本要比 fine-tuning 低很多。

实战

通过上面的必备概念大家应该对 LangChain 有了一定的了解,但是可能还有些懵。接下来我们通过一个实战case帮助大家理解上述内容。

PS:因为我们 OpenAI API 进阶,所以我们后面的范例使用的 LLM 都是以Open AI 为例,后面大家可以根据自己任务的需要换成自己需要的 LLM 模型即可。

完成一次问答在这里,我们先用一个最简单的案例帮助大家进行理解:“用 LangChain 加载 OpenAI 的模型,并且完成一次问答。”在开始之前,我们需要先设置我们的 openai 的 key,这个 key 可以在用户管理里面创建,这里就不细说了。import osos.environ["OPENAI_API_KEY"] = '你的api key'

然后,我们进行导入和执行

from langchain.llms import OpenAIllm = OpenAI(model_name="text-davinci-003",max_tokens=1024)llm("怎么评价人工智能")

这时,我们就可以看到他给我们的返回结果了。

总结本文章只是对 LangChain做了一个初级讲解,后续还会给大家出更多实战case。希望大家通过这篇文章能够有所收获,同时能结合 LangChain 开发出更有创意的产品。


Copyright © 2024 aigcdaily.cn  北京智识时代科技有限公司  版权所有  京ICP备2023006237号-1