递归字符文本分割器是最常用的文本分割器,在LangChain中通过RecursiveCharacterTextSplitter类实现,本文介绍的是其在中文场景下更友好的版本ChineseRecursiveTextSplitter,其实现在Langchain-Chatchat项目工程下。 两者的工作流程和目标是相同的,即指定一个块长度和一组分隔符,根据分隔符的优先顺序对文本进行预分隔,然后将小...
TokenTextSplitter:基于词元数量分割,适用于需要考虑词元限制的模型,如 GPT-3。MarkdownHeaderTextSplitt...
LangChain入门(三)-对超长文本进行总结 GitHub - liaokongVFX/LangChain-Chinese-Getting-Started-Guide: LangChain 的中文入门教程LangChain 的中文入门教程. Contribute to liaokongVFX/LangChain-Chinese-Getting-Started-Guide development by creating an account on GitHub.https://github.com/liaokongVFX/LangChain...
当前使用的分词器:ChineseRecursiveTextSplitter 当前启动的 LLM 模型:['chatglm3-6b', 'zhipu-api', 'openai-api'] @ cuda {'device': 'cuda', 'host': '0.0.0.0', 'infer_turbo': False, 'model_path': '/root/models/chatglm3-6b', 'model_path_exists': True, 'port': 20002} {'api_key...
第一阶段:加载文件-读取文件-文本分割(Text splitter) 加载文件:这是读取存储在本地的知识库文件的步骤 读取文件:读取加载的文件内容,通常是将其转化为文本格式 文本分割(Text splitter):按照一定的规则(例如段落、句子、词语等)将文本分割 第二阶段:文本向量化(embedding)-存储到向量数据库 ...
Langchain-Chatchat(原Langchain-ChatGLM)基于 Langchain 与 ChatGLM 等语言模型的本地知识库问答 | Langchain-Chatchat (formerly langchain-ChatGLM), local knowledge based LLM (like ChatGLM) QA app with langchain - 增加 ChineseRecursiveTextSplitter (#1447)
当前使用的分词器:ChineseRecursiveTextSplitter 当前启动的LLM模型:['chatglm3-6b','zhipu-api','openai-api'] @ cuda {'device':'cuda','host':'127.0.0.1','infer_turbo': False,'model_path':'L:\\20230713_HuggingFaceModel\\GLM3\\chatglm3-6b','model_path_exists': True,'port': 20002} {'...
AliTextSplitter ChineseRecursiveTextSplitter ChineseTextSplitter 借用chatchat项目中的test/custom_splitter/test_different_splitter.py来看看一起调用make_text_splitter函数: from langchain import document_loaders from server.knowledge_base.utils import make_text_splitter ...
2)通过Splitter基于Token进行文档拆分 3)通过FAISS向量存储文档,embedding加载HuggingFace的text2vec-base-chinese模型 4)自定义QA的prompt,通过RetrievalQA回答相关的问题 from langchain.chains import RetrievalQA from langchain.document_loaders import WebBaseLoader ...
LLM一般都会限制上下文窗口的大小,有4k、16k、32k等。针对大文本就需要进行文本分割,常用的文本分割器为RecursiveCharacterTextSplitter,可以通过separators指定分隔符。其先通过第一个分隔符进行分割,不满足大小的情况下迭代分割。 文本分割主要有2个考虑: 1)将语义相关的句子放在一块形成一个chunk。一般根据不同的文档类...