Haystack integration with DeepL translation services provider.
Project description
DeepL Haystack Integration
CI/CD | |
Package |
Installation
This project resides in the Python Package Index (PyPI), so it can easily be installed with pip
:
pip install deepl-haystack
Usage
The DeepL Haystack integration provides two Haystack components: DeepLTextTranslator
and DeepLDocumentTranslator
. These components can be used to translate text and documents,
respectively, using the DeepL API.
Examples
To run these examples you'll need a working DeepL API key. You can get one by signing up at the DeepL API website.
Standalone Text Translation
from haystack.utils import Secret
from deepl_haystack import DeepLTextTranslator
translator = DeepLTextTranslator(
api_key=Secret.from_token("your_api_key_here"), source_lang="EN", target_lang="ES"
)
translated_text = translator.run("Hello, world!")
print(translated_text)
# {'translation': '¡Hola, mundo!', 'meta': {'source_lang': 'EN', 'target_lang': 'ES'}}
Standalone Document Translation
from haystack.dataclasses import Document
from haystack.utils import Secret
from deepl_haystack import DeepLDocumentTranslator
translator = DeepLDocumentTranslator(
api_key=Secret.from_token("your_api_key_here"), source_lang="EN", target_lang="ES"
)
documents_to_translate = [
Document(content="Hello, world!"),
Document(content="Goodbye, Joe!", meta={"name": "Joe"}),
]
translated_documents = translator.run(documents_to_translate)
print("\n".join([f"{doc.content}, {doc.meta}" for doc in translated_documents]))
# ¡Hola, mundo!, {'source_lang': 'EN', 'target_lang': 'ES'}
# ¡Adiós, Joe!, {'name': 'Joe', 'source_lang': 'EN', 'target_lang': 'ES'}
Haystack Pipeline Integration
from haystack import Pipeline
from haystack.components.converters import TextFileToDocument
from haystack.components.writers import DocumentWriter
from haystack.dataclasses.byte_stream import ByteStream
from haystack.document_stores.in_memory import InMemoryDocumentStore
from haystack.utils import Secret
from deepl_haystack import DeepLDocumentTranslator
document_store = InMemoryDocumentStore()
pipeline = Pipeline()
pipeline.add_component(instance=TextFileToDocument(), name="converter")
pipeline.add_component(
instance=DeepLDocumentTranslator(
api_key=Secret.from_token("your_api_key_here"),
target_lang="ES",
),
name="translator",
)
pipeline.add_component(
instance=DocumentWriter(document_store=document_store), name="document_store"
)
pipeline.connect("converter", "translator")
pipeline.connect("translator", "document_store")
pipeline.run({"converter": {"sources": [ByteStream.from_string("Hello world!")]}})
print(document_store.filter_documents())
# [Document(id=..., content: '¡Hola, mundo!', meta: {'source_lang': 'EN', 'language': 'ES'})]
Contributing
Poetry is the best way to interact with this project, to install it, follow the official Poetry installation guide.
With poetry
installed, one can install the project dependencies with:
poetry install
Then, to run the project unit tests:
make test-unit
To run the linters (ruff
and mypy
):
make lint
To apply all code formatting:
make format
And finally, to run the project integration tests (which actually use the DeepL API),
you should either have the DEEPL_API_KEY
environment variable set,
or create a .env
file:
DEEPL_API_KEY=your_api_key_here
And run:
make test-integration
License
deepl-haystack
is distributed under the terms of the
MIT license.
Check the LICENSE file for further details.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file deepl_haystack-0.2.2.tar.gz
.
File metadata
- Download URL: deepl_haystack-0.2.2.tar.gz
- Upload date:
- Size: 5.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.11.0 Linux/6.5.0-1024-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e7c74a2a46ce8d865a980417762b20ac3f52457ff861eed503442018e1a30be9 |
|
MD5 | 89322caf1da87e5450b4640474d314dc |
|
BLAKE2b-256 | ac181836b110e3a7b4fc45ff3364129b260824ff223aac9247717a1baaa4409d |
File details
Details for the file deepl_haystack-0.2.2-py3-none-any.whl
.
File metadata
- Download URL: deepl_haystack-0.2.2-py3-none-any.whl
- Upload date:
- Size: 5.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.11.0 Linux/6.5.0-1024-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 71aa4f4ae9ece70d4d56639aee0c5d27e8c523ba00b933454eabbf2558ff7f72 |
|
MD5 | 53ac9757b5b91827cfe95a27c3bc5e1e |
|
BLAKE2b-256 | af185a5f215f5b729abdbdec5803d46cbc1551a3e8f55bf5b9aed224b06dfc55 |