LangChain理论及应用实战:Loader, Document, Embedding,LangChain入门到精通,收藏这篇就足够了!

langchain中的Document类 类用于表示包含 JSON 数据的字段。它可以接受任何合法的 JSON 数据,然后在验证时将其解析为 Python 字典。简单理解就是包括文本内容(page_content)、元数据(metadata)和类型(type)的类。类并不关心具体的 JSON 数据结构,它接受任何合法的 JSON 数据。这里的docs是Json数据类型,本质上可以理解为dict数据类型。)中有个自定义的docs字段,用到了Document类。,使用了 Python 的类型提示和注解。确保环境中已经安装了。在这个例子中,定义了一个。 阅读详情

本文主要内容:基于Langchian实现RAG

Langchian中 RAG 中的 Retrieve(检索) 流程如下:
在这里插入图片描述

各种文档->各种loader->文本切片->嵌入向量化->向量存储->各种检索链

1. Loader 加载器

loader 就是从指定源进行加载数据,比如:

  • Text文件:TextLoader
  • 文件夹:DirectoryLoader
  • CSV文件:CSVLoader
  • Google网盘:GoogleDriveLoader
  • 任意的网页:UnstructuredHTMLLoader
  • PDF:PyPDFLoader
  • Youtube:YoutubeLoader

上面只是简单的进行列举了几个,官方提供了超级的多的加载器供你使用。
这里,我们给出最为常见的几种数据loader的使用方式:

(1) 加载Text文件:TextLoader

from langchain_community.document_loaders import TextLoader

loader = TextLoader("./index.md")
data = loader.load()

(2) 加载CSV文件:CSVLoader


from langchain_community.document_loaders import CSVLoader

loader = CSVLoader("./data/test.csv")
data = loader.load()

(3) 加载JSON文件

# pip install jq
from langchain_community.document_loaders import JSONLoader

loader = JSONLoader(
    file_path="./data/student.json", jq_schema=".template", text_content=False
)
data = loader.load()

(4) 加载PDF文件:PyPDFLoader

# pip install pypdf
from langchain_community.document_loaders import PyPDFLoader

loader = PyPDFLoader("./data/paper.pdf")
data = loader.load()

2. Text Splitter 文本分割

文本分割就是用来分割文本的。为什么需要分割文本?因为我们每次不管是做把文本当作 prompt 发给 openai api ,还是还是使用 openai api embedding 功能都是有字符限制的。

比如我们将一份300页的 pdf 发给 openai api,让他进行总结,他肯定会报超过最大 Token 错。所以这里就需要使用文本分割器去分割我们 loader 进来的 Document。

示例如下:

from langchain.text_splitter import RecursiveCharacterTextSplitter

# 加载需要切分的文档

with open("./data/file.txt") as f:
    all_text = f.read()

# 使用递归字符切分器
text_splitter = RecursiveCharacterTextSplitter(
    chunk_size=200,  # 切分的文本块大小
    chunk_overlap=20,  # 切分的文本块重叠大小
    length_function=len,  # 长度函数
    add_start_index=True  # 是否添加开始索引
)

split_text = text_splitter.create_documents([all_text])
print(split_text)

输出如下:

[Document(metadata={'start_index': 0}, page_content='LangChain is a framework for developing applications powered by large language models (LLMs).\n\nLangChain simplifies every stage of the LLM application lifecycle:'), Document(metadata={'start_index': 163}, page_content="Development: Build your applications using LangChain's open-source components and third-party integrations. Use LangGraph to build stateful agents with first-class streaming and human-in-the-loop"), Document(metadata={'start_index': 341}, page_content='human-in-the-loop support.'), Document(metadata={'start_index': 368}, page_content='Productionization: Use LangSmith to inspect, monitor and evaluate your applications, so that you can continuously optimize and deploy with confidence.'), Document(metadata={'start_index': 519}, page_content='Deployment: Turn your LangGraph applications into production-ready APIs and Assistants with LangGraph Platform.')]

3. 文档的总结、精炼、翻译

首先安装 doctran 依赖包:

pip install doctran

具体实现如下:

from dotenv import load_dotenv
from doctran import Doctran
import os

# 加载文档
with open("./data/file.txt") as f:
    content = f.read()

load_dotenv("openai.env")
OPENAI_API_KEY = os.environ.get("OPENAI_API_KEY")
OPENAI_API_BASE = os.environ.get("OPENAI_API_BASE")
OPENAI_MODEL = "gpt-3.5-turbo-16k"
OPENAI_TOKEN_LIMIT = 8000


doctrans = Doctran(
    openai_api_key=OPENAI_API_KEY,
    openai_model=OPENAI_MODEL,
    openai_token_limit=OPENAI_TOKEN_LIMIT,
)
documents = doctran.create_documents(content=content)

# (1) 总结文档
summary = documents.summarize(token_limit=100).execute()
print(summary.transformed_content)

# (2) 翻译文档
translation = documents.translate(
    language="chinese"
).execute()
print(summary.transformed_content)

# (3) 精炼文档,仅保留与主题相关的内容
refined = documents.refine(
    topic=['langchain']
).execute()
print(refined.transformed_content)

4. 文本向量化

Embedding嵌入可以让一组文本或者一段话以向量来表示,从而可以让我们在向量空间中进行语义搜索之类的操作,从而大幅提升学习能力。

# from langchain.embeddings import OpenAIEmbeddings
from langchain_ollama import OllamaEmbeddings

e_model = OllamaEmbeddings(
    model="nomic-embed-text"
    )

text = "今天天气真好"
single_vector = e_model.embed_query(text)
print("single_vector:", single_vector)

multi_vector = e_model.embed_documents(
    [
        "你好",
        "今天天气真好",
        "你叫什么名字",
        "我叫小红",

    ]
)

print("multi_vector:", multi_vector)

输出如下:

single_vector: [0.023803584, 0.019944623, -0.18307257, 0.016884161, 0.013910737, 0.041673694, 0.0119952755, -0.0038184985, -0.0638501, -0.031662196, -0.04351526, 0.025420515, ......]]
multi_vector: [[-0.005196261, 0.01294648, -0.16610104, 0.0030547038, 0.06508742, 0.010399415, -0.03311033, -0.01913366, -0.017523672, -0.054374795, ......]]

参考博客:基于Ollama和LangChain使用embeddings模型进行文档检索

5. 嵌入向量缓存

加载文档,切分文档,将切分文档向量化并存储在缓存中:

首先安装 FAISS 向量数据库:

pip install faiss-cpu

完整代码如下:

from langchain.embeddings import OpenAIEmbeddings, CacheBackedEmbeddings
from langchain.storage import LocalFileStore
from langchain.document_loaders import TextLoader
from langchain.text_splitter import CharacterTextSplitter
from langchain.vectorstores import FAISS

# 定义embedding模型
u_embeddings = OpenAIEmbeddings()
fs = LocalFileStore("./cache/")
cached_embeddings = CacheBackedEmbeddings.from_bytes_store(
    u_embeddings,
    fs,
    namespace=u_embeddings.model
)
list(fs.yield_keys())

# 加载文档,切分文档
raw_documents = TextLoader("letter.txt").load()
text_splitter = CharacterTextSplitter(chunk_size=600, chunk_overlap=0)
documents = text_splitter.split_documents(raw_documents)

# 将缓存写入向量数据库中
db = FAISS.from_documents(documents, cached_embeddings)  # 向量化到FAISS向量数据库中

# 查看缓存中的键
list(fs.yield_keys())

6. 向量数据库

在这里插入图片描述
下面简单介绍几种常见的向量数据库:

在这里插入图片描述

7. 实战:ChatDoc 文档检索小助手

ChatDoc 文档检索小助手的功能:

  • 可以加载pdf或者xls格式文档
  • 可以对文档进行适当切分
  • 文档进行向量化
  • 使用Chroma db实现本地向量存储
  • 使用智能检索实现和文档的对话
from langchain_community.document_loaders import Docx2txtLoader, PyPDFLoader, UnstructuredExcelLoader
from langchain.text_splitter import CharacterTextSplitter
from langchain.vectorstores import Chroma
from langchain_ollama import OllamaEmbeddings


class ChatDocAuto(object):
    def __init__(self, file_path):
        self.file_path = file_path
        self.doc = None
        self.split_text = []  # 分割后的文本

    def get_file_content(self):
        loaders = {
            "docx": Docx2txtLoader,
            "pdf": PyPDFLoader,
            "xlsx": UnstructuredExcelLoader
        }

        file_extension = self.file_path.split(".")[-1]
        loader_class = loaders.get(file_extension)

        if loader_class:
            try:
                loader = loader_class(self.file_path)
                text = loader.load()
                return text
            except Exception as e:
                print("Error loading {}".format(file_extension))

        else:
            print("Unsupported file extension {}".format(file_extension))

    # 文档切割函数
    def split_sentence(self):
        full_text = self.get_file_content()
        if full_text is not None:
            text_splitter = CharacterTextSplitter(chunk_size=150, chunk_overlap=20)
            texts = text_splitter.split_documents(full_text)
            self.split_text = texts
        # return texts

    # 向量化与存储索引
    def embedding_and_vector(self):
        embeddings = OllamaEmbeddings(model="nomic-embed-text")
        db = Chroma.from_documents(
            documents=self.split_text,
            embedding=embeddings
        )
        return db

    def ask_and_find_files(self, question):
        db = self.embedding_and_vector()
        retriever = db.as_retriever()
        results = retriever.invoke(question)
        return results


if __name__ == "__main__":
    file_path = "./data/paper.pdf"
    chatDocAuto = ChatDocAuto(file_path)

    # 查看文档内容
    content = chatDocAuto.get_file_content()
    # print(content)

    # 对文档进行分割
    chatDocAuto.split_sentence()
    # print(chatDocAuto.split_text)

    # 文档嵌入向量化
    chatDocAuto.embedding_and_vector()

    # 索引并使用自然语言找出相关的文本块
    question = "What is ITRANSFORMER?"
    result = chatDocAuto.ask_and_find_files(question)
    print(result)
[Document(metadata={'author': '', 'creationdate': '2023-12-04T01:26:30+00:00', 'creator': 'LaTeX with hyperref', 'keywords': '', 'moddate': '2024-06-03T09:01:40+08:00', 'page': 8, 'page_label': '9', 'producer': 'pdfTeX-1.40.25', 'ptex.fullbanner': 'This is pdfTeX, Version 3.141592653-2.6-1.40.25 (TeX Live 2023) kpathsea version 6.3.5', 'source': './data/paper.pdf', 'subject': '', 'title': '', 'total_pages': 24, 'trapped': '/False'}, page_content='Analysis of multivariate correlations By assigning the duty of multivariate correlation to the\nattention mechanism, the learned map enjoys enhanced interpretability. We present the case visual-\nization on series from Solar-Energy in Figure 7, which has distinct correlations in the lookback and\nfuture windows. It can be observed that in the shallow attention layer...

可以看到虽然能检索到相关的结果,但是准确性不佳。这时候如果想优化检索结果,可以引入大模型进行多重查询,关键代码如下:

from langchain.retrievers import MultiQueryRetriever

class ChatDocAuto(object):
    ......
    
    def ask_and_find_files_by_llm(self, question):
        db = self.embedding_and_vector()
        # 把问题交给llm进行多角度扩展
        llm = OllamaLLM(model="llama3.1:8b")
        retriever_from_llm = MultiQueryRetriever(
            retriever=db.as_retriever(),
            llm=llm
        )

        results = retriever_from_llm.get_relevant_documents(question)
        return results

我们该怎样系统的去转行学习大模型 ?

很多想入行大模型的人苦于现在网上的大模型老课程老教材,学也不是不学也不是,基于此,我用做产品的心态来打磨这份大模型教程,深挖痛点并持续修改了近100余次后,终于把整个AI大模型的学习门槛,降到了最低!

您只需要听我讲,跟着我做即可,为了让学习的道路变得更简单,这份大模型教程已经给大家整理并打包,现在将这份 LLM大模型资料 分享出来: 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓

​

一、大模型经典书籍(免费分享)

AI大模型已经成为了当今科技领域的一大热点,那以下这些大模型书籍就是非常不错的学习资源。

二、640套大模型报告(免费分享)

这套包含640份报告的合集,涵盖了大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。(几乎涵盖所有行业)
在这里插入图片描述

三、大模型系列视频教程(免费分享)

在这里插入图片描述

四、2025最新大模型学习路线(免费分享)

我们把学习路线分成L1到L4四个阶段,一步步带你从入门到进阶,从理论到实战。

L1阶段:启航篇丨极速破界AI新时代

L1阶段:我们会去了解大模型的基础知识,以及大模型在各个行业的应用和分析;学习理解大模型的核心原理、关键技术以及大模型应用场景。

L2阶段:攻坚篇丨RAG开发实战工坊

L2阶段是我们的AI大模型RAG应用开发工程,我们会去学习RAG检索增强生成:包括Naive RAG、Advanced-RAG以及RAG性能评估,还有GraphRAG在内的多个RAG热门项目的分析。

L3阶段:跃迁篇丨Agent智能体架构设计

L3阶段:大模型Agent应用架构进阶实现,我们会去学习LangChain、 LIamaIndex框架,也会学习到AutoGPT、 MetaGPT等多Agent系统,打造我们自己的Agent智能体。

L4阶段:精进篇丨模型微调与私有化部署

L4阶段:大模型的微调和私有化部署,我们会更加深入的探讨Transformer架构,学习大模型的微调技术,利用DeepSpeed、Lamam Factory等工具快速进行模型微调。

L5阶段:专题集丨特训篇 【录播课】

全套的AI大模型学习资源已经整理打包,有需要的小伙伴可以微信扫描下方二维码,免费领取

​

掌握 LangChain 文档处理核心:Document Loaders 与 Text Splitters 全解析 文章介绍了LangChain,一个用于构建更智能AI应用的框架。LangChain通过多种功能如文档读取、文本切分、存储与检索、调用大模型和工作流链条,帮助开发者处理复杂的AI任务。例如,它可以将PDF文档切分成小块,存储到向量数据库中,并调用大模型回答用户问题。LangChain的模块化设计和灵活性使其成为开发者的理想选择,尤其适用于需要处理多步骤任务和多种数据格式的智能应用。文章还详细介绍了DocumentLoader和TextSplitter的作用,分别用于加载和切分文档,以适应大模型的输入限制。通过 阅读详情

相关推荐

使用langchain与你自己的数据对话(一):文档加载与切割

今天我们学习了文本的加载与分割,Langchain提供了丰富的外部数据加载器,这些外部数据可以是结构化的,也可以是非结构化的,其中我们还介绍了从网页和youtube视频中加载文本的方法,这个挺有意思的,大家可以尝试一下,由于外部数据量可能比较大,如pdf, text文档等,因此当我们加载了外部数据以后,我们还需要对数据进行分割处理,我们介绍了几种文本分割的方法,其中有按字符分割的CharacterTextSplitter分割器,和递归分割的RecursiveCharacterTextSplitter分割器。

weixin_42608414的博客 1万+

【LangChain】Document篇

文本就是讲解对Document的基础操作chain有哪些?chain描述该链非常适合文档较小且大多数调用只传递少量文档的应用程序。通过循环输入文档并迭代更新其答案来构建响应.将A文档转换成B文档,然后针对B文档进行输出。对答案增加了确定下评分。返回得分最高的响应。

山鬼谣的专栏 3169

畅游区块链的蓝海:Langchain Document Loader 的强力应用

Langchain Document Loader是一个强大的工具,允许开发者从区块链获取NFT数据并加载为可处理的文档格式。目前支持的功能包括从NFT智能合约(ERC721和ERC1155)中加载NFT数据,并兼容以太坊主网、测试网和Polygon主网、测试网等多个区块链环境。Langchain Document Loader提供了一种简便的方法来从区块链获取NFT数据,适合开发者在NFT领域的各种应用场景中使用。Langchain官方文档Alchemy API文档。

bhawfgrcbtwny的博客 521

Langchain使用介绍之-文档加载

通过实际代码演示的方式介绍Langchain如何完成pdf文档,youtube音频,网页文档的加载

qiaotl的博客 5277

第26篇:深入剖析:LangChain的本地向量化模型应用

通过这篇博客,我们详细介绍了如何使用LangChain库完成从文本文件加载到向量化处理、存储到向量库,并根据提示语进行向量检索的全过程。加载文本文件:使用Loader加载器从外部目录加载文本文件。生成Document文档:将加载的文本内容生成Document文档。文本分割:使用Text Splitters工具将长文本分割成更小的段落。向量化处理:分别使用bge-base-zh-v1.5模型和百川2模型对分割后的文本进行向量化处理。保存到向量库:将生成的向量保存到Chroma向量库中。向量检索。

Gemini的博客 3134

基于LangChain的LLM应用开发 - RAG

RAG,全称Retrieval-Augmented Generation,是一种结合了检索和生成的大型语言模型。它的工作原理是,首先从大量的文档中检索出相关的信息,然后将这些信息用于指导生成模型的输出。RAG模型的主要优点是,它可以利用大量的非结构化文本数据,而不仅仅是训练时的输入-输出对。这使得它在处理一些需要大量背景知识或者需要引用外部信息的任务时,比如问答、对话系统等,表现出很好的效果。RAG模型的一个关键组成部分是一个检索系统,它可以从大量的文档中快速准确地找到相关的信息。

xinfeng118的博客 1358

【LangChain】理论及应用实战(2):Loader, Document, Embedding

import os# 加载文档# (1) 总结文档# (2) 翻译文档# (3) 精炼文档,仅保留与主题相关的内容。

酒酿小圆子呀~ 1170

C++版Cesium实战:从OpenGL到3DTiles的全流程开发指南

本文提供了一份C++版Cesium全流程开发指南,详细阐述了如何利用OpenGL和Qt从零构建高性能、可离线部署的三维GIS应用。内容涵盖开发环境搭建、OpenGL渲染引擎初始化、Cesium核心坐标系与场景管理移植,并重点解析了3DTiles数据的解析、异步加载与渲染优化等硬核实战技术,旨在帮助开发者实现与现有C++工业软件的深度集成。

weixin_28077113的博客 164

LangChain 中文入门教程

LangChain官方文档假如我们想要用openai api对一段文本进行总结,我们通常的做法就是直接发给 api 让他总结。但是如果文本超过了 api 最大的 token 限制就会报错。这时,我们一般会进行对文章进行分段,比如通过tiktoken计算并分割,然后将各段发送给 api 进行总结,最后将各段的总结再进行一个全部的总结。LangChain可以很好的帮我们处理这个过程,代码也很简单。

qq_56591814的博客 6万+

信捷XDH PLC多轴运动控制实战:Ethercat总线下的C语言封装技巧

本文深入探讨了在信捷XDH PLC平台上,如何利用C语言对EtherCAT总线多轴运动控制进行高效封装。通过设计全局数据池、模块化状态机及用户友好接口,将底层复杂的运动控制函数库抽象为清晰、可复用的高级模块,显著提升程序稳定性与可维护性,并分享了关键的实战避坑经验。

weixin_29188043的博客 160

UE4游戏开发:GameInstance与GameMode的实战应用与避坑指南

本文深入解析了UE4中GameInstance与GameMode的核心差异与实战应用。GameInstance作为贯穿游戏进程的全局单例,负责跨关卡数据持久化与系统管理;而GameMode则定义特定关卡内的游戏规则与逻辑,随关卡加载销毁。文章通过数据存储、动态模式切换及网络游戏等场景,提供了清晰的应用指南与常见避坑方案,帮助开发者构建更健壮的UE4游戏架构。

kubernetes8ctl的博客 230

【可能是全网最丝滑的LangChain教程】十三、LangChain进阶之Document loaders

本文介绍了如何在 LangChain 中编写自定义文档加载和文件解析逻辑。加载文本、加载视频、加载图片...让LLM更智能

Jeffray1991的博客 3429

告别偏移地址!用C# S7PLUS驱动读写西门子S7-1500符号地址(TIA Portal V17+环境配置)

本文详细介绍了如何在TIA Portal V17+环境中使用C# S7PLUS驱动读写西门子S7-1500 PLC的符号地址,告别传统的偏移地址方式。通过配置OpenSSL、集成S7PLUS驱动库,以及实战案例展示符号地址的读写方法,显著提升代码可读性和维护效率。文章还涵盖了环境准备、高级配置及常见问题解决方案,助力工业自动化开发者实现更高效的PLC通讯。

weixin_28720767的博客 316

201-LangChain框架的Document & Document Loader 完整案例

本教程介绍了LangChain框架的Document Loader加载文档的基本方法,通过完成本教程,您将学习如何加载文档并检查其内容和相关元数据。

rengang66的博客 772

prplOS介绍

介绍prplOS是什么,特性、框架、编译等。

四儿家的小祖宗的博客 2124

计算分子相似度(摩根分子指纹计算)

import numpy as np import pandas as pd import seaborn as sns import matplotlib as plt from rdkit.Chem import Draw from rdkit.Chem import AllChem as Chem from rdkit.Chem import PandasTools from rdkit import DataStructs data = pd.read_csv(r'47_covidLead.csv'

weixin_39417324的博客 1387

LangChain入门核心:从Document处理到RAG应用实战

在构建基于大语言模型的智能应用时,文档处理是至关重要的基础环节。其核心原理是将非结构化文本数据转化为机器可理解、可检索的标准化格式,这一过程直接决定了后续检索增强生成(RAG)系统的效果上限。从技术价值看,高质量的文档处理流水线能显著提升私有知识库的利用率、答案的准确性与可追溯性。典型的应用场景包括企业知识库问答、智能合同分析与自动化报告生成等。本文聚焦LangChain框架中的Document对象,深入探讨了文档加载器(Loader)、文本分割器(Splitter)的选择与调优,并结合BGE等嵌入模型,阐

weixin_34203832的博客 424

# YOLOv11改进系列 | 引入仓库自研C3k2_EIEM模块,Sobel边缘分支增强检测细节表达

文章摘要: YOLOv11-seg改进中提出的C3k2_EIEM模块通过引入边缘信息增强机制,显著提升了模型对轮廓和纹理的感知能力。该模块在保持原有C3k2结构的基础上,创新性地结合了Sobel边缘检测分支与常规卷积分支的双路特征融合。核心改进包括:(1)固定Sobel算子提供稳定的梯度响应;(2)并行处理边缘与纹理特征;(3)通过1x1卷积实现特征融合。实验显示,改进后模型参数量增加14.16%,计算量提升12.5%,但显著增强了在复杂边界场景下的分割精度。这种设计特别适用于需要精细轮廓识别的任务,如商品

qq_44224801的博客 95

Markdown Document Loader in LangChain

摘要: LangChain 的 UnstructuredMarkdownLoader 工具可将 Markdown 文件转换为结构化 Document 对象,支持两种模式:默认模式(合并所有文本为单个文档)和 mode="elements"(保留分段结构)。需先安装 unstructured 库,通过简单代码即可加载文件内容。示例演示了基础用法,输出展示了 Markdown 文件被解析为包含标题、列表等格式的 LangChain 文档对象。该工具适用于将轻量级 Markdown 文本整合至

servepeople的博客 847

Fastgpt本地使用Docker Compose 快速部署

修改文件,并执行再执行d重起容器。具体配置,参考配置详解。可以查看日志,在启动容器后,第一次请求网页,会进行配置文件读取,可以看看有没有读取成功以及有无错误日志。进入 FastGPT 容器,可以通过ls data查看目录下是否成功挂载文件。可通过查看配置文件。可能不生效的原因挂载目录不正确配置文件不正确,日志中会提示invalid json,配置文件需要是标准的 JSON 文件。

洛阳泰山的博客 1633

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

LangChain入门:从Document对象掌握数据处理基石

在构建基于大语言模型的应用时,数据处理是决定项目成败的关键环节。其核心原理在于将非结构化文本转化为模型可理解和高效利用的格式。这一过程的技术价值在于,它直接影响了后续检索增强生成(RAG)的准确性和Agent决策的可靠性。无论是构建智能客服、知识库问答还是文档分析系统,良好的数据预处理都是实现预期效果的基础。实践中,Document对象作为承载文本与元数据的基本单元,是LangChain框架中处理数据的起点。通过文档加载器(Loader)从PDF、网页等多元数据源获取内容,并利用文本分割器(Text Spl

weixin_33851604的博客 467

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

【新手友好】LangChain中文入门:AI应用开发框架详细教程

本文介绍了LangChain中文入门教程,涵盖核心概念与实战案例。教程包含Loader加载器、Document文档、Text Splitters文本分割、Vectorstores向量数据库等基础概念,并提供7个实战案例,如单次问答、Google搜索答案、超长文本总结、本地知识库问答机器人构建等。此外还包含多个应用示例,如结构化输出、网页爬取JSON数据、带记忆的对话机器人等。文章提供了官方文档链接和GitHub项目地址,适合开发者快速掌握LangChain框架的LLM应用开发能力。

2401_85154887的博客 5266

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

LangChain 中文入门教程 langchain中文教程

LangChain官方文档假如我们想要用openai api对一段文本进行总结,我们通常的做法就是直接发给 api 让他总结。但是如果文本超过了 api 最大的 token 限制就会报错。这时,我们一般会进行对文章进行分段,比如通过tiktoken计算并分割,然后将各段发送给 api 进行总结,最后将各段的总结再进行一个全部的总结。LangChain可以很好的帮我们处理这个过程,代码也很简单。# 导入文本# 将文本转成 Document 对象# 初始化文本分割器# 切分文本# 加载 llm 模型。

2401_85116933的博客 2928

【LangChain】核心组件详解:文档加载器(Document Loaders)

大型语言模型(LLM)虽然拥有强大的语义理解和文本生成能力,但存在两个致命的局限性:训练数据有截止日期,无法获取实时信息;无法访问私有数据,如企业内部文档、个人笔记等。为了解决这些问题,检索增强生成(Retrieval-Augmented Generation, RAG) 技术应运而生,成为当前大模型应用的核心模式。RAG 的核心思想是:当用户提问时,系统首先在私有知识库中进行语义搜索,找到最相关的内容,然后将这些内容和问题一起交给 LLM 生成答案。我们的第一步就是把文档加载进去。

会当凌绝顶,一览众山小 4439

深入解析Langchain Document Loader在区块链上的应用

Langchain Document Loader 是一个强大的工具,旨在简化文档的加载和处理。通过支持多种协议和格式,它允许开发者从不同的数据源中提取信息。在区块链领域,它提供了加载NFT和相关数据的支持。通过Langchain Document Loader,我们可以轻松地管理和提取区块链上的NFT数据。这不仅提高了开发的效率,也为后续的数据分析铺平了道路。想要深入了解更多,可以参考以下资源。Langchain 官方文档Alchemy API 文档。

qq_29929123的博客 423

CSV Document Loader in LangChain

摘要: 本文介绍LangChain中的CSVLoader工具,用于将CSV文件转换为Document对象(每行一个文档)。核心功能包括:自动将CSV行数据转为结构化文档(包含page_content和metadata);支持默认加载、自定义CSV解析参数(如分隔符)和指定元数据来源列。通过三个代码示例演示了基础加载、自定义解析(如修改列名)和指定来源列(替代默认文件路径)的用法,所有示例均严格遵循官方文档实现。该工具适用于需要表格数据处理的LangChain工作流。

servepeople的博客 796
上一篇: 新书!大模型新书推荐丨大型语言模型实战指南:应用实践与场景落地(附PDF)大模型入门到精通,收藏这篇就足够了!
下一篇: LangChain理论及应用实战:Chain,LangChain入门到精通,收藏这篇就足够了!
Llama-Turbo
博客等级 码龄4年 9901粉丝 2022原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值