deepl via fastapi using playwright
Project description
deepl-fastapi-pw
Your own deepl server via fastapi and playwright, cross-platform (Windows/Linux/MacOs) with API for OmegaT
Installation
- Create a virual environment: optional but recommended
e.g.,
# Linux and friends python3.8 -m venv .venv source .venv/bin/activate # Windows # py -3.8 -m venv .venv # .venv\Scripts\activate
pip install deepl-fastapi-pw
or (if your use poetry)
poetry add deepl-fastapi-pw
or
pip install git+https://github.com/ffreemt/deepl-fastapi-playwright.git
or
- Clone the repo https://github.com/ffreemt/deepl-fastapi-playwright.git
git clone https://github.com/ffreemt/deepl-fastapi-playwright.git
andcd deepl-fastapi-playwright
- `pip install -r requirements.txt
- or
poetry install
- or
Usage
- Start the server
python -m deepl_fastapi_pw
Or use uvicorn directly (note the deepl_server
module, not run_uvicorn
)
uvicorn deepl_fastapi_pw.deepl_server_async:app
or
python -m deepl_fastapi_pw.deepl_server_async
or run the server on the external net, for example at port 9888
uvicorn deepl_fastapi_pw.deepl_server:app --reload --host 0.0.0.0 --port 9888
Explore and consume
Point your browser to http://127.0.0.1:8001/text/?q=test&to_lang=zh
Or in command line:
python -c "import httpx; print(httpx.get('http://127.0.0.1:8001/text/?to_lang=zh&q=test 1\ntest 2').json())"
# output: {'q': 'test 1\ntest 2', 'from_lang': None, 'to_lang': 'zh', 'trtext': '测试 1\n测试 2', 'translation': '测试 1\n测试 2'}
Or in python code (pip install requests
first)
import requests
# get
url = "http://127.0.0.1:8001/text/?q=test me&to_lang=zh"
print(requests.get(url).json())
# {'q': 'test me', 'from_lang': None, 'to_lang':
# 'zh', 'trtext': '考我', 'translation': '考我'}
'translation'
is there for OmegaT
plugin. Refer to the OmegaT Fake MT plugin setup
part
in https://github.com/ffreemt/deepl-fastapi
# post
text = "test me \n and him"
data = {"text": text, "to_lang": "zh"}
resp = requests.post("http://127.0.0.1:8001/text", json=data)
print(resp.json())
# {'q': {'text': 'test me \n and him', 'from_lang': None,
# 'to_lang': 'zh', 'description': None}, 'result': '考验我 \n 我和他'}
NB
- Text longer than 1500 characters will be trimmed to 1500. This is what the
deepl.com
webpage can handle (used to be 5000 characters). - The package
deepl-fastapi-pw
is in essence a browser from your local IP (although a proxy can be used, refer to get-pwbroser's doc for setting up). Hence if you send too many requests too frequently, your IP may be blocked bydeepl.com
temporarily, which of course will also disabledeepl-fastapi-pw
.
Interactive Docs (Swagger UI)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
deepl_fastapi_pw-0.1.0a6.tar.gz
(11.0 kB
view hashes)
Built Distribution
Close
Hashes for deepl_fastapi_pw-0.1.0a6-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c24b0b83cd61631bc3241480208cec41553f690aeae6d1b90fbe7b70507a6332 |
|
MD5 | 40c2b261c4679bd9b9432b45b79bea93 |
|
BLAKE2b-256 | c699089537cc41eb82033fa20c66d33fa07fe622145dff7cd2ca1620b9864401 |