LangChain
文章平均质量分 79
山鬼谣me
我的这一生
展开
-
【LangChain】Memory
本篇讲解 聊天的历史记录: 如何存储、如何查询。这里是使用类来完成存储和查询的。# 构建一个memory# 关联大模型llm=llm,# 查询# 请注意,我们只是传入“question”变量 - “chat_history”由memory填充公开两种方法和一个属性。它公开的两个方法是和,用于存储来自用户的消息和相应的 AI 响应。它公开的属性是message属性,用于访问所有以前的消息。原创 2023-08-12 19:03:23 · 1113 阅读 · 0 评论 -
【LangChain】Prompts之示例选择器
在本教程中,我们将创建一个自定义示例选择器,用于从给定的示例列表中选择每个备用示例。方法接受一个示例并将其添加到中方法,它接受输入变量并返回部分示例列表或全部列表。让我们实现一个自定义的,它只随机选择两个示例。在这里查看 LangChain 支持的当前示例选择器实现集。原创 2023-08-09 08:09:15 · 1133 阅读 · 0 评论 -
【LangChain】Prompts之自定义提示模板
LangChain提供了一组默认的提示模板,可用于生成各种任务的提示。但是,在某些情况下,默认的提示模板可能无法满足我们的需求。例如,我们可能想要创建一个提示模板,其中包含适合我们的语言模型的特定动态指令。在这种情况下,您可以创建自定义提示模板。在此处查看当前的默认提示模板集。本质上有两种不同的提示模板可用 -字符串提示模板和聊天提示模板。一、字符串提示模板提供字符串格式的简单提示。二、聊天提示模板生成更结构化的提示以与聊天 API 一起使用。在本指南中,我们将使用字符串提示模板创建自定义提示。原创 2023-08-08 08:16:36 · 1958 阅读 · 0 评论 -
【LangChain】Prompts之Prompt templates
是指生成提示的可重复的方式。它包含一个文本字符串(“模板”),可以接收来自最终用户的一组参数并生成提示。对语言模型的指令,一组几个镜头示例来帮助语言模型生成更好的响应,对语言模型的一个问题。您是新公司的命名顾问。生产{product}的公司起什么好名字?""" prompt = PromptTemplate . from_template(template) prompt . format(product = "彩色袜子")您是新公司的命名顾问。一家生产彩色袜子的公司起什么名字好呢?原创 2023-08-04 08:38:56 · 4134 阅读 · 0 评论 -
【LangChain】向量存储之FAISS
本篇主要讲解FAISS的使用。加载文档、拆分在此基础上,就可以相关性搜索搜索过滤等操作。原创 2023-08-01 08:21:56 · 11797 阅读 · 2 评论 -
【LangChain】向量存储(Vector stores)
加载数据通过embed,转成向量存储查询条件进行embed在3的基础上,再进行向量存储库的搜索。原创 2023-07-31 07:54:06 · 6299 阅读 · 0 评论 -
【LangChain】检索器之上下文压缩
我们在进行文档搜索的时候,正相关的文档是少部分,大部分都是不相关的文档。我们可以使用上下文压缩检索器,只返回正相关的那部分文档。特别是第二步骤:构建上下文压缩器的第一个参数,有很多花样:① LLMChainExtractor 提取,精炼② LLMChainFilter 普通过滤③ EmbeddingsFilter 嵌入过滤④ DocumentCompressorPipeline 文档管道,可以将多个过滤器组合在一起。原创 2023-07-25 08:31:29 · 2488 阅读 · 0 评论 -
【LangChain】检索器之MultiQueryRetriever
现在的搜索,其实是基于向量库的检索,本质上是距离的检索。而我们搜索的措辞的微妙变化,会产生不同的结果,这需要我们手动调整,这个工作枯燥乏味。,可以基于你给出的问题,生成多个相关问题。通过生成多角度问题,来自动调整这种微妙的措施变化。指定llm。原创 2023-07-24 08:22:42 · 2053 阅读 · 0 评论 -
【LangChain】检索器(Retrievers)
如何创建检索器加载文档创建拆分器,拆分文档创建嵌入。原创 2023-07-23 22:18:00 · 2813 阅读 · 0 评论 -
【LangChain】数据连接(Data connection)
有关支持哪些 csv 参数的更多信息,请参阅csv 模块文档。# 注意csv_args参数 loader = CSVLoader(file_path = './example_data/mlb_teams_2012.csv' , csv_args = {原创 2023-07-17 22:16:11 · 1848 阅读 · 2 评论 -
【LangChain】概要(Summarization)
您还可以在该链上使用您自己的prompt。在此示例中,我们将用意大利语回复。# 该prompt说:要用意大利语做摘要 prompt_template = """Write a concise summary of the following:{text}原创 2023-07-15 16:06:48 · 4230 阅读 · 0 评论 -
【LangChain】SQL
您还可以自定义所使用的prompt。这是一个prompt示例:它理解foobar与Employee表是相同的;原创 2023-07-13 08:31:26 · 6161 阅读 · 0 评论 -
【LangChain】对话式问答(Conversational Retrieval QA)
它首先将聊天记录(显式传入或从提供的内存中检索)和问题组合成一个独立的问题,然后从检索器中查找相关文档,最后将这些文档和问题传递到问答链以返回一个响应。这样会有一个非常大的好处:我们可以使用更便宜、更快的模型来完成问题的凝练工作,然后再使用昂贵的模型来回答问题。首先,它将当前问题和聊天历史凝练为一个独立的问题。声明性特性的部分强大之处在于,您可以轻松地为每个调用使用单独的语言模型。之后,它进行检索,然后使用单独模型的检索增强生成来回答问题。在下面的示例中,我们将从向量存储创建一个,该向量存储可以从。原创 2023-07-09 17:26:18 · 6916 阅读 · 1 评论 -
【LangChain】Retrieval QA
您可以传入自定义prompt来进行问答。这些提示与您可以传递到基本问答链的提示相同。{context}Answer in Italian:""" PROMPT = PromptTemplate(template = prompt_template , input_variables = [ "context" , "question" ]) # 自定义 chain prompt chain_type_kwargs = {原创 2023-07-09 12:17:46 · 5432 阅读 · 0 评论 -
【LangChain】Document篇
文本就是讲解对Document的基础操作chain有哪些?chain描述该链非常适合文档较小且大多数调用只传递少量文档的应用程序。通过循环输入文档并迭代更新其答案来构建响应.将A文档转换成B文档,然后针对B文档进行输出。对答案增加了确定下评分。返回得分最高的响应。原创 2023-07-08 17:02:02 · 2173 阅读 · 0 评论 -
【LangChain】转换(Transformation)
该笔记本展示了使用通用转换链。例如,我们将创建一个转换函数,它接受超长文本,将文本过滤为仅前 3 段,然后将其传递到LLMChain中以总结这些内容。原创 2023-07-08 16:12:55 · 1192 阅读 · 0 评论 -
【LangChain】顺序(Sequential)
本文主要讲,。多个Chain,如何按顺序串起来:SimpleSequentialChain:这种方式,输入、输出变量都只能是一个,也正因如此,所以上下游的Chain的输入输出变量名可以不一样。SequentialChain:这种方式,允许有多个输入、输出变量。上下游的Chain的输入输出变量,要对应,不然传不下去。顺序链中使用Memory,因为变量变多后,会在使用上造成混乱,故提供了Memory的方式,来避免这种混乱。原创 2023-07-07 17:52:47 · 1504 阅读 · 0 评论 -
【LangChain】路由(Router)
本文将演示如何使用范例创建一个Chain,该Chain动态选择用于给定输入的下一个Chain。RouterChain 本身(负责选择下一个要调用的链)destination_chains:路由器链可以路由到的链在本笔记本中,我们将重点关注不同类型的路由链。我们将展示在中使用的这些路由链,以创建一个问答链,该问答链选择与给定问题最相关的提示,然后使用该提示回答问题。本文主要教我们如何路由不同的prompt。方式一:利用LLM,进行路由。创建多个Prompt,利用方法得到。再利用得到利用就得到。原创 2023-07-07 08:37:51 · 1782 阅读 · 0 评论 -
【LangChain】LLM
LLMChain是一个简单的链,它围绕语言模型添加了一些功能。它在整个LangChain中广泛使用,包括在其他链和代理中。LLMChain由和语言模型(LLM 或聊天模型)组成。它使用提供的输入键值对(以及内存键值对,如果可用的话)作用于格式化提示模板,并将格式化后的字符串传递给LLM并返回LLM输出。本文主要讲述如何构建LLMChain,由:LLM和Prompt两个部分组成。运行LLMChain的方法有:方法名描述run只打印一个key的valueapply输入允许传入List。原创 2023-07-06 17:56:46 · 1301 阅读 · 0 评论 -
【LangChain】序列化(Serialization)--持久化到磁盘
本笔记本介绍了如何将Chain序列化到磁盘和从磁盘序列化回来。我们使用的序列化格式是json或yaml。目前,只有部分Chain支持这种类型的序列化。随着时间的推移,我们将增加支持的Chain的数量。本文讲述了,如何持久化、从磁盘加载、独立序列化组件、加载独立序列化组件的内容。序列化:就是Chain对象调用save()方法。从磁盘中加载:就是使用,去读取文件,得到Chain对象。。加载独立序列化组件:config = {原创 2023-07-06 08:08:38 · 705 阅读 · 0 评论 -
【LangChain】添加上下文记忆(Adding memory (state))
可以使用Memory对象来初始化Chain,该对象将在对Chain的调用之间保留数据。这使得Chain有状态。聊天GPT,应该就是这么它吧。大模型增加记忆后,就可以聊天了。构建Chain时,增加memory参数,其实拥有记忆Memory。原创 2023-07-06 07:30:54 · 1347 阅读 · 0 评论 -
【LangChain】结合代理和向量存储(Combine agents and vector stores)
文本讲述的是将agent和向量存储结合起来使用。其实和用PDF当做知识源是一个思路。先加载知识源将知识源用embeddings,进行相关性计算,得到可搜索对象。将可搜索对象,llm等参数,传入,得到可用知识库将知识库制作为工具创建agent,并制定工具运行代理。原创 2023-07-06 07:15:47 · 1094 阅读 · 0 评论 -
【LangChain】从LangChainHub加载(Loading from LangChainHub)
可以理解为LangChain工具包或者说组件中心。里面提供了高质量的组件方便使用。他的笔记本介绍了如何从加载Chain。这篇主要就是告诉我们,,这个可以从中加载数据。原创 2023-07-04 22:46:27 · 1424 阅读 · 1 评论 -
【LangChain】调试Chain(Debugging chains)
就是打印更详细的Chain信息(如:内部信息),以知道它是如何工作的。仅从Chain对象的输出中调试Chain对象可能很困难,因为大多数Chain对象都涉及大量的输入提示预处理和LLM输出后处理。将verbose设置为True将在运行时打印Chain对象的一些内部状态。")原创 2023-07-04 22:17:55 · 1175 阅读 · 0 评论 -
【LangChain】自定义chain
并继承Chain类;由于Chain_call()方法。通过创建chain,在执行run方法运行。原创 2023-07-04 08:34:49 · 2089 阅读 · 0 评论 -
【LangChain】不同的调用方式(Different call methods)
本笔记:讲述Chain的不同调用方式。所有从Chain继承的类中都提供了几种运行链逻辑的方法。最直接的方法是使用__call__;__call__这个是python版中的方法已经实现了。要调用Chain的方法。先构造llm_chain执行,即可。默认情况下,输入和输出都会打印出来"adjective" : "corny" }) # 结果 {' }单个输出就使用run方法。原创 2023-07-03 22:39:19 · 1516 阅读 · 0 评论 -
OpenAI Functions Agent持久化(Add Memory to OpenAI Functions Agent)
本笔记本介绍了如何对代理进行持久化。创建大模型Google搜索组件、数学计算组件、DB组件将2中的组件,整合成工具列表初始化代理,并得到代理对象通过代理对象,开始启动。原创 2023-07-03 17:58:05 · 434 阅读 · 0 评论 -
Agent types(代理类型)
代理使用LLM来确定以及。**动作(action)**可以是使用工具并观察其输出,也可以是向用户返回的响应。以下是LangChain可用的代理。原创 2023-07-03 17:33:18 · 430 阅读 · 0 评论