一、前言

    在 LangChain 框架中,文档转换器起着至关重要的作用。可以对文档进行智能拆分、合并、过滤等处理,确保语言模型和其他组件以优化的格式接收数据。

    文档转换器在各种需要处理和分析文档数据的场景中都起着重要的作用,帮助人们更有效地利用和理解文档中的信息。以下是一些常见的使用场景:

  1. 自然语言处理任务:在文本分类、情感分析、信息抽取等任务中,需要将文档转换为适合模型输入的格式,例如分割成句子或段落,进行标记化等。
  2. 知识检索和问答系统:将大量文档转换为易于索引和检索的格式,以便用户能够快速找到相关信息并回答问题。
  3. 数据预处理:对原始文档进行清洗、过滤、转换格式等操作,以提高数据质量和可用性。
  4. 多语言处理:在涉及多语言文档的场景中,进行语言翻译、文本规范化等转换。
  5. 文档摘要生成:将长文档转换为简洁的摘要,便于快速浏览和理解文档的主要内容。
  6. 内容管理系统:对文档进行分类、标记、索引等处理,以便更好地组织和管理文档资源。
  7. 智能客服和聊天机器人:将相关的文档知识转换为机器可理解的格式,以便机器人能够根据用户的问题提供准确的回答。
  8. 文档自动化处理:在自动化流程中,对文档进行格式转换、数据提取等操作,提高工作效率。

二、术语

2.1.翻译转换器

    翻译转换器的主要作用是将一种语言的文本转换为另一种语言的文本。


三、前提条件 

3.1. 基础环境

  1.  操作系统:不限

3.2. 安装依赖库

conda create --name langchain python=3.10
conda activate langchain
pip install langchain doctran

四、技术实现

4.1.DoctranTextTranslator

# -*- coding: utf-8 -*-
import os

from langchain_community.document_transformers import DoctranTextTranslator
from langchain_core.documents import Document

os.environ["OPENAI_API_KEY"] = 'sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'    #你的Open AI Key

# 1.构建文档列表
page_content = """LangChain 是一个开源编排框架,用于使用大语言模型 (LLM) 开发应用程序。LangChain 的工具和 API 在基于 Python 和 Javascript 的库中使用,可以简化构建聊天机器人和虚拟代理等 LLM 驱动型应用程序的过程。
LangChain 几乎可以作为所有 LLM 的通用接口,为构建 LLM 应用程序并将其与外部数据源和软件工作流程集成提供集中式开发环境。LangChain 基于模块的方法允许开发人员和数据科学家动态比较不同的提示,甚至比较不同的基础模型,而无需重写代码。这种模块化环境还允许程序使用多个 LLM:例如,应用程序使用一个 LLM 解释用户查询,并使用另一个 LLM 编写响应。
LangChain 由 Harrison Chase 于 2022 年 10 月推出,推出后迅速脱颖而出:截至 2023 年 6 月,它是 Github 上增长最快的开源项目。1 恰逢接下来的一个月隆重推出 OpenAI 的 ChatGPT,在生成式 AI 受到广泛欢迎之后,LangChain 在让发烧友更容易使用生成式 AI 方面发挥了重要作用。
LangChain 可以促进 LLM 和自然语言处理 (NLP) 的大多数用例,例如聊天机器人、智能搜索、问答、总结服务,甚至能够实现机器人流程自动化的虚拟代理。"""

documents = [Document(page_content=page_content)]

# 2.构建翻译转换器并翻译
text_translator = DoctranTextTranslator(openai_api_model="gpt-3.5-turbo-16k")
translator_documents = text_translator.transform_documents(documents)

# 3.输出翻译内容
print(translator_documents[0].page_content)

调用结果:


五、附带说明

5.1.文档加载器、文档分割器和文档转换器的关系

    在 LangChain 框架中,文档加载器(Document Loader)、文档分割器(Document Splitter)和文档转换器(Document Transformer)之间存在密切的关系,它们共同协作来处理和准备文档数据,以便后续的自然语言处理任务和应用。

(一)文档加载器

    主要作用是从各种数据源(如文件、数据库、网页等)加载文档数据,并将其转换为 LangChain 可以处理的格式。它负责获取原始文档内容,并将其提供给后续的处理步骤。

(二)文档分割器

    主要作用是将加载的文档分割成更小的片段或块。这是因为在许多自然语言处理任务中,模型通常具有有限的输入长度限制,无法一次性处理整个长文档。文档分割器可以根据特定的规则或策略,将文档分割成适当大小的部分,以便更好地适应模型的处理能力。

(三)文档转换器

    主要作用是对分割后的文档片段进行进一步的处理和转换。它可以执行各种操作,如文本清洗、标记化、向量化、提取关键信息、进行语言翻译等。文档转换器的目的是将文档数据转换为适合模型输入或满足特定任务需求的形式。

总的来说,文档加载器获取原始文档,文档分割器将其分割成合适的片段,而文档转换器对这些片段进行进一步的处理和转换。它们相互协作,共同完成文档数据的准备工作,为后续的模型训练、推理和应用提供高质量的输入数据。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐