LangChain
LangChain篇-向量管理高阶指南
一、Vector stores 存储和搜索非结构化数据的最常见方法之一是将其嵌入并存储生成的嵌入向量, 然后在查询时将非结构化查询嵌入并检索与嵌入查询“最相似”的嵌入向量。 向量存储会处理存储嵌入数据并为您执行向量搜索。 可以通过以下方式将向量存储转换为检索器接口: Retrievers是一个接口,根据非结构化查询返回文档。 它比向量存储更通用。 检索器不需要能够存储文档,只需要能够返回(或检索)
LangChain篇-基于RAG的文档问答
一、RAG 是什么? 大语言模型所实现的最强大应用之一是复杂的问答聊天机器人。这些应用能够回答关于特定源信息的问题。这些应用使用一种称为检索增强生成的技术。 RAG 是一种用额外数据增强大语言模型知识的技术。 大语言模型可以对广泛的主题进行推理,但它们的知识仅限于训练时截止日期前的公开数据。如果你想构建能够对私有数据或模型截止日期后引入的数据进行推理的人工智能应用,你需要用特定信息来增强模型的知识
LangChain篇-基于SQL实现数据分析问答
一、需求 基于 LangChain 和 Streamlit 的 Web 应用,用于使用 LLM 和嵌入从 SQLite 数据库中搜索相关的 offer。用户可以输入与品牌、类别或零售商相关的搜索查询,也支持通过 SQL 语句进行搜索,应用程序将从数据库中检索并显示相关的 offer。该应用使用 OpenAI API 进行自然语言处理和嵌入生成。 SQLite 官网:<https://www.sql
LangChain篇-多数据源集成
LangChain 与各种数据源有数百个集成,可以从中加载数据:Slack、Notion、Google Drive 等。 每个文档加载器都有自己特定的参数,但它们可以通过相同的方式使用 .load 方法调用。 以下是一个示例用法: 一、如何加载 CSV 文件 文件是一种使用逗号分隔值的定界文本文件。文件的每一行是一个数据记录。每个记录由一个或多个字段组成,字段之间用逗号分隔。 LangChain
LangChain篇-多模态输入与自定义输出
一、多模态数据输入 这里我们演示如何将多模态输入直接传递给模型。我们目前期望所有输入都以与 期望的格式相同的格式传递。对于支持多模态输入的其他模型提供者,我们在类中添加了逻辑以转换为预期格式。 在这个例子中,我们将要求模型描述一幅图像。 API 参考: | 最常支持的传入图像的方式是将其作为字节字符串传入。这应该适用于大多数模型集成。 我们可以在“image\ url”类型的内容块中直接提供图像
LangChain篇-多类型文本分割
在处理文本数据时,文本分割是一个重要的步骤,尤其是在处理长文本或将文本数据输入到机器学习模型中时。LangChain 是一个用于构建大型语言模型应用程序的库,它提供了多种工具和策略来处理文本分割。下面是一些在LangChain中实现文本分割的常见方法: 一、如何递归分割文本 递归分割,这个文本分割器是用于通用文本的推荐工具。它接受一个字符列表作为参数。它会按顺序尝试在这些字符上进行分割,直到块足够
LangChain篇-工作流编排
一、LCEL介绍 (LangChain Expression Language)是一种强大的工作流编排工具,可以从基本组件构建复杂任务链条(chain),并支持诸如流式处理、并行处理和日志记录等开箱即用的功能。 LCEL 从第一天起就被设计为 支持将原型投入生产,无需更改代码 ,从最简单的“提示 + LLM”链到最复杂的链(我们已经看到有人成功地在生产中运行了包含数百步的 LCEL 链)。以下是您
LangChain篇-开发Agent智能体
创建和运行 Agent 单独来说,语言模型无法采取行动 它们只能输出文本。 LangChain 的一个重要用例是创建 代理 。 代理是使用 LLM 作为推理引擎的系统,用于确定应采取哪些行动以及这些行动的输入应该是什么。 然后可以将这些行动的结果反馈给代理,并确定是否需要更多行动,或者是否可以结束。 在本次课程中,我们将构建一个可以与多种不同工具进行交互的代理:一个是本地数据库,另一个是搜索引擎。