Haystack integration with DeepL translation services provider.
Project description
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.
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file deepl_haystack-0.3.1.tar.gz.
File metadata
- Download URL: deepl_haystack-0.3.1.tar.gz
- Upload date:
- Size: 112.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
56ae6199e9020e493cd74abbed538aa58cbd46989dd22473b2ac3d31c8bf3af4
|
|
| MD5 |
ef0347071bada15549653f3288602ccd
|
|
| BLAKE2b-256 |
f4f0446fad13d6dc3bf0aed505625d380324fbcb7268975590608b78ee527c91
|
File details
Details for the file deepl_haystack-0.3.1-py3-none-any.whl.
File metadata
- Download URL: deepl_haystack-0.3.1-py3-none-any.whl
- Upload date:
- Size: 7.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d83d6b735addfe36874ff35356c323c0a0964965b0756598aa14181e38d9856c
|
|
| MD5 |
54c4018fccd851f24aef19d085c2f1ae
|
|
| BLAKE2b-256 |
10036ff3b1c986a33b6e3322b6ae76ac61ac484bfd865bd26ab7163787fb8b68
|