DeepL Haystack Integration
Haystack integration with DeepL translation services provider.
| CI/CD | |
| Package |
Documentation: https://haystack.deepset.ai/integrations/deepl
Source Code: https://github.com/dribia/deepl-haystack
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
uv is the best way to interact with this project, to install it, follow the official uv installation guide.
With uv installed, one can install the project dependencies with:
uv sync
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.
Metadata
Release files for deepl-haystack 0.4.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| deepl_haystack-0.4.1.tar.gz | 112.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| deepl_haystack-0.4.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 120.5 kB
Release files / deepl_haystack-0.4.1.tar.gz
| Download URL | deepl_haystack-0.4.1.tar.gz |
|---|---|
| Size | 112.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ebcb1ec729bde134c9ff5d7ac70f05e5f06a0b190bde0c30f7a9b917584ba99f
|
|
BLAKE2b-256 checksum How to use checksums |
73c7e70a4b51125e7a10229acfbf748ae6ef8e5a3efddbcede5c3ecc4eaf3089
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.30 {"installer":{"name":"uv","version":"0.11.30","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / deepl_haystack-0.4.1-py3-none-any.whl
| Download URL | deepl_haystack-0.4.1-py3-none-any.whl |
|---|---|
| Size | 7.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b460d760f4c96df611dc57324865ac45cdeace24f9b88bd4d4403659612f4d22
|
|
BLAKE2b-256 checksum How to use checksums |
9ecc0998bd7f265db3b8c917a09fbad777959d0f6f0de7648a85c36edc8eaae6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.30 {"installer":{"name":"uv","version":"0.11.30","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|