最后定位到chinese_text_splitter.py的split_text(),其中具体逻辑就不展示了,这一块也是一个方法重载...
该类继承了Langchain的RecursiveCharacterTextSplitter,因此该类也拥有split_text方法和split_documents方法,分别对应对文本分割和文档对象分割。 以分割文本为例,我们对Python的一段介绍进行递归字符分割,该段内容包含句号,逗号,顿号等分割符 Python由荷兰国家数学与计算机科学研究中心的吉多·范罗苏姆于1990年代初设计,作...
首先说文档,Langchain有一些内置的Splitters.Text Splitters | ️ LangChain 对应的选就可以了 对于...
# 初始化文本分割器 text_splitter = RecursiveCharacterTextSplitter( chunk_size=500, chunk_overlap=0 ) # 切分文本 split_documents = text_splitter.split_documents(document) print(f'documents:{len(split_documents)}') # 加载 llm 模型 llm = OpenAI(model_name="text-davinci-003", max_tokens=1500...
merged_text=self._merge_splits(_good_splits,_separator) final_chunks.extend(merged_text) returnfinal_chunks if__name__=="__main__": text_splitter=ChineseRecursiveTextSplitter( keep_separator=True, is_separator_regex=True, chunk_size=50, ...
store(filepath:str): docs = [] if not os.path.exists(filepath): print('路径不存在') return None elif os.path.isfile(filepath): file = os.path.split(filepath)[-1] try: loader = UnstructuredFileLoader(filepath, mode='elements') docs = loader.load() print(f'{file} 已加载成功')...
1)LLM:将文本字符串作为输入并返回文本字符串的模型,类似OpenAI的text-davinci-003 2)Chat Models:由语言模型支持但将聊天消息列表作为输入并返回聊天消息的模型。一般使用的ChatGPT以及Claude为Chat Models。 与模型交互的,基本上是通过给与Prompt的方式,LangChain通过PromptTemplate的方式方便我们构建以及复用Prompt。
切割(split)。将格式化的长字符串按照一定策略切分为若干个切片(chunk)。 为什么要进行切割? 看到上述框架图绝大多数人应该有的一个疑问。如果深入思考的话会发现 embedding(text2vec,文本转化为向量)以及 LLM encoder 对输入 tokens 都有限制。embedding 会将一个 text(长字符串)的语义信息压缩成一个向量,这是他...
raw_documents=TextLoader('./tlbb.txt').load()text_splitter=CharacterTextSplitter(chunk_size=250,chunk_overlap=0)documents=text_splitter.split_documents(raw_documents) 文本嵌入向量化存储,这里使用embbedings加载text2vec-large-chinese模型执行向量化: ...
text_splitter import TokenTextSplitter text_splitter = RecursiveCharacterTextSplitter( chunk_size=CHUNK_SIZE, chunk_overlap=OVERLAP_SIZE ) split_docs = text_splitter.split_documents(pages) print(f"切分后的文件数量:{len(split_docs)}") print(f"切分后的字符数(可以用来大致评估 token 数):{sum([...