LLM as your translator, with DeepLX-compatible API.
ARPK supports most OpenAI-compatible APIs, Ollama is used here as an example (and is also the default):
ollama serve
ollama pull llama3.2First install Node.js, then install ARPK via your favorite package manager (or npm).
npm i -g arpkYou can also use ARPK via npx without installing it:
npx -y arpkarpk translate --from "EN-US" --to "ZH" --input "Hello, World!"
# 你好,世界!
echo "Hello, World!" | arpk translate --from "EN-US" --to "JA"
# こんにちは、世界!ARPK_LLM_MODEL="llama3.2" arpk serveARPK_LLM_MODEL="llama3.2" npx -y arpk servedocker run -d \
--name arpk \
--network host \
--restart unless-stopped \
-e ARPK_LLM_MODEL=llama3.2 \
ghcr.io/moeru-ai/arpk:latestservices:
arpk:
image: ghcr.io/moeru-ai/arpk:latest
container_name: arpk
network_mode: host
restart: unless-stopped
environment:
- ARPK_LLM_MODEL=llama3.2/translate, /api/v1/translate and /api/v2/translate are connected to the same translate endpoint.
await fetch('http://127.0.0.1:1188/translate', {
body: JSON.stringify({
source_lang: 'JA',
target_lang: 'ZH',
text: '雨の季節が過ぎ 澄み渡る空を 眺めて独り想フ'
}),
method: 'POST'
}).then(res => res.json())
// {
// alternates: [],
// code: 200,
// data: '雨季过后,晴朗的天空下我独自遐思。',
// id: 1519129853500,
// method: 'ARPK v0.0.0 (llama3.2)',
// source_lang: 'JA',
// target_lang: 'ZH'
// }Currently only Bearer Auth is supported when using
ARPK_TOKEN, not URL Params.
| Environment | Default | Description |
|---|---|---|
| ARPK_PORT | 1188 | The port the server will listen on |
| ARPK_TOKEN | null | Access token to protect your API |
| ARPK_LLM_API_KEY | null | OpenAI-compatible API key |
| ARPK_LLM_BASE_URL | http://127.0.0.1:11434/v1/ | OpenAI-compatible API base url |
| ARPK_LLM_MODEL | llama3.2 | Model to be used by the ARPK |
| ARPK_SYSTEM_PROMPT | https://github.com/moeru-ai/arpk/blob/main/src/lib/prompts.ts | System prompt |
| ARPK_SOURCE_LANG | null | Translate source language (cli only, --from) |
| ARPK_TARGET_LANG | null | Translate target language (cli only, --to) |