Skip to main content
通过嵌入向量比较文档的优势在于可以跨语言工作。“Harrison says hello” 和 “Harrison dice hola” 在向量空间中的位置相近,因为它们在语义上具有相同的含义。 然而,在向量化之前将文档翻译为其他语言有时仍然很有用。这在用户预期会以不同语言查询知识库,或特定语言缺乏最先进的嵌入模型时尤为有帮助。 我们可以使用 Doctran 库来实现这一点,该库使用 OpenAI 的函数调用功能在语言之间翻译文档。
pip install -qU  doctran
from langchain_community.document_transformers import DoctranTextTranslator
from langchain_core.documents import Document
from dotenv import load_dotenv

load_dotenv()
True

输入

以下是我们要翻译的文档:
sample_text = """[Generated with ChatGPT]

Confidential Document - For Internal Use Only

Date: July 1, 2023

Subject: Updates and Discussions on Various Topics

Dear Team,

I hope this email finds you well. In this document, I would like to provide you with some important updates and discuss various topics that require our attention. Please treat the information contained herein as highly confidential.

Security and Privacy Measures
As part of our ongoing commitment to ensure the security and privacy of our customers' data, we have implemented robust measures across all our systems. We would like to commend John Doe (email: john.doe@example.com) from the IT department for his diligent work in enhancing our network security. Moving forward, we kindly remind everyone to strictly adhere to our data protection policies and guidelines. Additionally, if you come across any potential security risks or incidents, please report them immediately to our dedicated team at security@example.com.

HR Updates and Employee Benefits
Recently, we welcomed several new team members who have made significant contributions to their respective departments. I would like to recognize Jane Smith (SSN: 049-45-5928) for her outstanding performance in customer service. Jane has consistently received positive feedback from our clients. Furthermore, please remember that the open enrollment period for our employee benefits program is fast approaching. Should you have any questions or require assistance, please contact our HR representative, Michael Johnson (phone: 418-492-3850, email: michael.johnson@example.com).

Marketing Initiatives and Campaigns
Our marketing team has been actively working on developing new strategies to increase brand awareness and drive customer engagement. We would like to thank Sarah Thompson (phone: 415-555-1234) for her exceptional efforts in managing our social media platforms. Sarah has successfully increased our follower base by 20% in the past month alone. Moreover, please mark your calendars for the upcoming product launch event on July 15th. We encourage all team members to attend and support this exciting milestone for our company.

Research and Development Projects
In our pursuit of innovation, our research and development department has been working tirelessly on various projects. I would like to acknowledge the exceptional work of David Rodriguez (email: david.rodriguez@example.com) in his role as project lead. David's contributions to the development of our cutting-edge technology have been instrumental. Furthermore, we would like to remind everyone to share their ideas and suggestions for potential new projects during our monthly R&D brainstorming session, scheduled for July 10th.

Please treat the information in this document with utmost confidentiality and ensure that it is not shared with unauthorized individuals. If you have any questions or concerns regarding the topics discussed, please do not hesitate to reach out to me directly.

Thank you for your attention, and let's continue to work together to achieve our goals.

Best regards,

Jason Fan
Cofounder & CEO
Psychic
jason@psychic.dev
"""
documents = [Document(page_content=sample_text)]
qa_translator = DoctranTextTranslator(language="spanish")

使用同步版本的输出

翻译文档后,结果将作为新文档返回,其中 page_content 已翻译为目标语言。
translated_document = qa_translator.transform_documents(documents)
print(translated_document[0].page_content)

使用异步版本的输出

翻译文档后,结果将作为新文档返回,其中 page_content 已翻译为目标语言。异步版本在文档被分割为多个部分时可提升性能,同时确保输出顺序正确。
import asyncio
result = await qa_translator.atransform_documents(documents)
print(result[0].page_content)