[docs]classDoctranTextTranslator(BaseDocumentTransformer):"""Translate text documents using doctran. Arguments: openai_api_key: OpenAI API key. Can also be specified via environment variable ``OPENAI_API_KEY``. language: The language to translate *to*. Example: .. code-block:: python from langchain_community.document_transformers import DoctranTextTranslator # Pass in openai_api_key or set env var OPENAI_API_KEY qa_translator = DoctranTextTranslator(language="spanish") translated_document = await qa_translator.atransform_documents(documents) """
[docs]asyncdefatransform_documents(self,documents:Sequence[Document],**kwargs:Any)->Sequence[Document]:"""Translates text documents using doctran."""try:fromdoctranimportDoctrandoctran=Doctran(openai_api_key=self.openai_api_key,openai_model=self.openai_api_model)exceptImportError:raiseImportError("Install doctran to use this parser. (pip install doctran)")parse_tasks=[self._aparse_document(doctran,i,doc)fori,docinenumerate(documents)]parsed_results=awaitasyncio.gather(*parse_tasks)parsed_results.sort(key=lambdax:x[0])doctran_docs=[docfor_,docinparsed_results]translate_tasks=[self._atranslate_document(i,doc,self.language)fori,docinenumerate(doctran_docs)]translated_results=awaitasyncio.gather(*translate_tasks)translated_results.sort(key=lambdax:x[0])translated_docs=[docfor_,docintranslated_results]return[Document(page_content=doc.transformed_content,metadata=doc.metadata)fordocintranslated_docs]
[docs]deftransform_documents(self,documents:Sequence[Document],**kwargs:Any)->Sequence[Document]:"""Translates text documents using doctran."""try:fromdoctranimportDoctrandoctran=Doctran(openai_api_key=self.openai_api_key,openai_model=self.openai_api_model)exceptImportError:raiseImportError("Install doctran to use this parser. (pip install doctran)")doctran_docs=[doctran.parse(content=doc.page_content,metadata=doc.metadata)fordocindocuments]fori,docinenumerate(doctran_docs):doctran_docs[i]=doc.translate(language=self.language).execute()return[Document(page_content=doc.transformed_content,metadata=doc.metadata)fordocindoctran_docs]