Skip to main content

deepl via fastapi using playwright

Project description

deepl-fastapi-pw

tests pythonCode style: blackLicense: MITPyPI version

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

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 by deepl.com temporarily, which of course will also disable deepl-fastapi-pw.

Interactive Docs (Swagger UI)

http://127.0.0.1:8001/docs

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

deepl_fastapi_pw-0.1.0a6.tar.gz (11.0 kB view details)

Uploaded Source

Built Distribution

deepl_fastapi_pw-0.1.0a6-py3-none-any.whl (18.0 kB view details)

Uploaded Python 3

File details

Details for the file deepl_fastapi_pw-0.1.0a6.tar.gz.

File metadata

  • Download URL: deepl_fastapi_pw-0.1.0a6.tar.gz
  • Upload date:
  • Size: 11.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.5.1 CPython/3.8.10 Windows/10

File hashes

Hashes for deepl_fastapi_pw-0.1.0a6.tar.gz
Algorithm Hash digest
SHA256 c59314708c3fe0ca520306510eb4859e063fb15a4b539d338ec4100a165e09d5
MD5 f3a3499856f67c5885f663714d1b3797
BLAKE2b-256 1ad9858e3ccc0d0d61e10d643e62bfea4bcc31565fd9ada9fc47d2708ce07ef5

See more details on using hashes here.

File details

Details for the file deepl_fastapi_pw-0.1.0a6-py3-none-any.whl.

File metadata

File hashes

Hashes for deepl_fastapi_pw-0.1.0a6-py3-none-any.whl
Algorithm Hash digest
SHA256 c24b0b83cd61631bc3241480208cec41553f690aeae6d1b90fbe7b70507a6332
MD5 40c2b261c4679bd9b9432b45b79bea93
BLAKE2b-256 c699089537cc41eb82033fa20c66d33fa07fe622145dff7cd2ca1620b9864401

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page