From e94aa1ea89014ef8aae0e65803c6e79177ed58d1 Mon Sep 17 00:00:00 2001 From: xunbu Date: Thu, 1 Jan 2026 01:31:53 +0800 Subject: [PATCH] update --- README.md | 62 +++++++++++++++++++++++++++++++++++++++----------- README_JP.md | 62 +++++++++++++++++++++++++++++++++++++++----------- README_ZH.md | 64 ++++++++++++++++++++++++++++++++++++++++------------ 更新日志.txt | 3 ++- 4 files changed, 150 insertions(+), 41 deletions(-) diff --git a/README.md b/README.md index 64cc206..fc15d98 100644 --- a/README.md +++ b/README.md @@ -239,24 +239,60 @@ async def translate_multiple(): asyncio.run(translate_multiple()) ``` -### Available Workflows (For Workflow API) +### Using Workflow API (For Advanced Control) -If you prefer more control, use the Workflow API directly. Here are the available workflows: +For more control, use the Workflow API directly. Each workflow follows the same pattern: -| Workflow | Applicable Scenarios | Input Formats | Output Formats | Core Configuration Class | +```python +# Pattern: +# 1. Create TranslatorConfig (LLM settings) +# 2. Create WorkflowConfig (workflow settings) +# 3. Create Workflow instance +# 4. workflow.read_path(file) +# 5. await workflow.translate_async() +# 6. workflow.save_as_*(name=...) or export_to_*(...) +``` + +#### Available Workflows and Output Methods + +| Workflow | Inputs | save_as_* | export_to_* | Key Config Options | |:---|:---|:---|:---|:---| -| **`MarkdownBasedWorkflow`** | Handles rich text documents like PDF, Word, images, etc. Flow: `File -> Markdown -> Translate -> Export`. | `.pdf`, `.docx`, `.md`, `.png`, `.jpg`, etc. | `.md`, `.zip`, `.html` | `MarkdownBasedWorkflowConfig` | -| **`TXTWorkflow`** | Handles plain text documents. Flow: `txt -> Translate -> Export`. | `.txt` and other plain text formats | `.txt`, `.html` | `TXTWorkflowConfig` | -| **`JsonWorkflow`** | Handles JSON files. Flow: `json -> Translate -> Export`. | `.json` | `.json`, `.html` | `JsonWorkflowConfig` | -| **`DocxWorkflow`** | Handles docx files. Flow: `docx -> Translate -> Export`. | `.docx` | `.docx`, `.html` | `docxWorkflowConfig` | -| **`XlsxWorkflow`** | Handles xlsx files. Flow: `xlsx -> Translate -> Export`. | `.xlsx`, `.csv` | `.xlsx`, `.html` | `XlsxWorkflowConfig` | -| **`SrtWorkflow`** | Handles srt files. Flow: `srt -> Translate -> Export`. | `.srt` | `.srt`, `.html` | `SrtWorkflowConfig` | -| **`EpubWorkflow`** | Handles epub files. Flow: `epub -> Translate -> Export`. | `.epub` | `.epub`, `.html` | `EpubWorkflowConfig` | -| **`HtmlWorkflow`** | Handles html files. Flow: `html -> Translate -> Export`. | `.html`, `.htm` | `.html` | `HtmlWorkflowConfig` | +| **MarkdownBasedWorkflow** | `.pdf`, `.docx`, `.md`, `.png`, `.jpg` | `html`, `markdown`, `markdown_zip` | `html`, `markdown`, `markdown_zip` | `convert_engine`, `translator_config` | +| **TXTWorkflow** | `.txt` | `txt`, `html` | `txt`, `html` | `translator_config` | +| **JsonWorkflow** | `.json` | `json`, `html` | `json`, `html` | `translator_config`, `json_paths` | +| **DocxWorkflow** | `.docx` | `docx`, `html` | `docx`, `html` | `translator_config`, `insert_mode` | +| **XlsxWorkflow** | `.xlsx`, `.csv` | `xlsx`, `html` | `xlsx`, `html` | `translator_config`, `insert_mode` | +| **SrtWorkflow** | `.srt` | `srt`, `html` | `srt`, `html` | `translator_config` | +| **EpubWorkflow** | `.epub` | `epub`, `html` | `epub`, `html` | `translator_config`, `insert_mode` | +| **HtmlWorkflow** | `.html`, `.htm` | `html` | `html` | `translator_config`, `insert_mode` | +| **AssWorkflow** | `.ass` | `ass`, `html` | `ass`, `html` | `translator_config` | -> In the interactive interface, you can also export to PDF format. +#### Key Configuration Options -### Example 1: Translate a PDF File (Using `MarkdownBasedWorkflow`) +**Common TranslatorConfig Options:** + +| Option | Type | Default | Description | +|:---|:---|:---|:---| +| `base_url` | `str` | - | AI platform base URL | +| `api_key` | `str` | - | AI platform API key | +| `model_id` | `str` | - | Model ID | +| `to_lang` | `str` | - | Target language | +| `chunk_size` | `int` | 3000 | Text chunk size | +| `concurrent` | `int` | 10 | Concurrent requests | +| `temperature` | `float` | 0.3 | LLM temperature | +| `timeout` | `int` | 60 | Request timeout (seconds) | +| `retry` | `int` | 3 | Retry attempts | + +**Format-Specific Options:** + +| Option | Applicable Workflows | Description | +|:---|:---|:---| +| `insert_mode` | Docx, Xlsx, Html, Epub | `"replace"` (default), `"append"`, `"prepend"` | +| `json_paths` | Json | JSONPath expressions (e.g., `["$.*", "$.name"]`) | +| `separator` | Docx, Xlsx, Html, Epub | Text separator for append/prepend modes | +| `convert_engine` | MarkdownBased | `"mineru"` (default), `"docling"`, `"mineru_deploy"` | + +#### Example 1: Translate a PDF File (Using `MarkdownBasedWorkflow`) This is the most common use case. We will use the `minerU` engine to convert the PDF to Markdown, and then translate it using an LLM. This example uses asynchronous execution. diff --git a/README_JP.md b/README_JP.md index a285913..44a5f25 100644 --- a/README_JP.md +++ b/README_JP.md @@ -239,24 +239,60 @@ async def translate_multiple(): asyncio.run(translate_multiple()) ``` -### 利用可能なワークフロー(Workflow API を使用) +### Workflow API の使用(高度な制御) -より精细な制御が必要な場合は、Workflow API を直接使用してください。以下は利用可能なワークフローです: +より精细な制御が必要な場合は、Workflow API を直接使用してください。すべてのワークフローは同じパターンに従います: -| ワークフロー | 適用シナリオ | 入力形式 | 出力形式 | コア設定クラス | +```python +# パターン: +# 1. TranslatorConfig を作成(LLM設定) +# 2. WorkflowConfig を作成(ワークフロー設定) +# 3. Workflow インスタンスを作成 +# 4. workflow.read_path(ファイル) +# 5. await workflow.translate_async() +# 6. workflow.save_as_*(name=...) または export_to_*(...) +``` + +#### 利用可能なワークフローと出力メソッド + +| ワークフロー | 入力形式 | save_as_* | export_to_* | 主要設定オプション | |:---|:---|:---|:---|:---| -| **`MarkdownBasedWorkflow`** | PDF、Word、画像などのリッチテキストドキュメントを処理。フロー:`ファイル -> Markdown -> 翻訳 -> エクスポート`。 | `.pdf`, `.docx`, `.md`, `.png`, `.jpg` 等 | `.md`, `.zip`, `.html` | `MarkdownBasedWorkflowConfig` | -| **`TXTWorkflow`** | プレーンテキストドキュメントを処理。フロー:`txt -> 翻訳 -> エクスポート`。 | `.txt` およびその他のテキスト形式 | `.txt`, `.html` | `TXTWorkflowConfig` | -| **`JsonWorkflow`** | JSONファイルを処理。フロー:`json -> 翻訳 -> エクスポート`。 | `.json` | `.json`, `.html` | `JsonWorkflowConfig` | -| **`DocxWorkflow`** | docxファイルを処理。フロー:`docx -> 翻訳 -> エクスポート`。 | `.docx` | `.docx`, `.html` | `docxWorkflowConfig` | -| **`XlsxWorkflow`** | xlsxファイルを処理。フロー:`xlsx -> 翻訳 -> エクスポート`。 | `.xlsx`, `.csv` | `.xlsx`, `.html` | `XlsxWorkflowConfig` | -| **`SrtWorkflow`** | srtファイルを処理。フロー:`srt -> 翻訳 -> エクスポート`。 | `.srt` | `.srt`, `.html` | `SrtWorkflowConfig` | -| **`EpubWorkflow`** | epubファイルを処理。フロー:`epub -> 翻訳 -> エクスポート`。 | `.epub` | `.epub`, `.html` | `EpubWorkflowConfig` | -| **`HtmlWorkflow`** | htmlファイルを処理。フロー:`html -> 翻訳 -> エクスポート`。 | `.html`, `.htm` | `.html` | `HtmlWorkflowConfig` | +| **MarkdownBasedWorkflow** | `.pdf`, `.docx`, `.md`, `.png`, `.jpg` | `html`, `markdown`, `markdown_zip` | `html`, `markdown`, `markdown_zip` | `convert_engine`, `translator_config` | +| **TXTWorkflow** | `.txt` | `txt`, `html` | `txt`, `html` | `translator_config` | +| **JsonWorkflow** | `.json` | `json`, `html` | `json`, `html` | `translator_config`, `json_paths` | +| **DocxWorkflow** | `.docx` | `docx`, `html` | `docx`, `html` | `translator_config`, `insert_mode` | +| **XlsxWorkflow** | `.xlsx`, `.csv` | `xlsx`, `html` | `xlsx`, `html` | `translator_config`, `insert_mode` | +| **SrtWorkflow** | `.srt` | `srt`, `html` | `srt`, `html` | `translator_config` | +| **EpubWorkflow** | `.epub` | `epub`, `html` | `epub`, `html` | `translator_config`, `insert_mode` | +| **HtmlWorkflow** | `.html`, `.htm` | `html` | `html` | `translator_config`, `insert_mode` | +| **AssWorkflow** | `.ass` | `ass`, `html` | `ass`, `html` | `translator_config` | -> インタラクティブ画面ではPDF形式でのエクスポートも可能です。 +#### 主要設定オプション -### 例 1: PDFファイルの翻訳 (`MarkdownBasedWorkflow` を使用) +**共通 TranslatorConfig オプション:** + +| オプション | タイプ | デフォルト | 説明 | +|:---|:---|:---|:---| +| `base_url` | `str` | - | AI プラットフォームベース URL | +| `api_key` | `str` | - | AI プラットフォーム API キー | +| `model_id` | `str` | - | モデル ID | +| `to_lang` | `str` | - | ターゲット言語 | +| `chunk_size` | `int` | 3000 | テキストチャンクサイズ | +| `concurrent` | `int` | 10 | 同時リクエスト数 | +| `temperature` | `float` | 0.3 | LLM 温度 | +| `timeout` | `int` | 60 | リクエストタイムアウト(秒) | +| `retry` | `int` | 3 | 再試行回数 | + +**フォーマット固有オプション:** + +| オプション | 適用ワークフロー | 説明 | +|:---|:---|:---| +| `insert_mode` | Docx, Xlsx, Html, Epub | `"replace"`(デフォルト), `"append"`, `"prepend"` | +| `json_paths` | Json | JSONPath 式(例: `["$.*", "$.name"]`) | +| `separator` | Docx, Xlsx, Html, Epub | append/prepend モードのテキスト区切り文字 | +| `convert_engine` | MarkdownBased | `"mineru"`(デフォルト), `"docling"`, `"mineru_deploy"` | + +#### 例 1: PDFファイルの翻訳 (`MarkdownBasedWorkflow` を使用) これが最も一般的なユースケースです。`minerU` エンジンを使用して PDF を Markdown に変換し、その後 LLM を使用して翻訳します。ここでは非同期方式を例にします。 diff --git a/README_ZH.md b/README_ZH.md index b7265b9..507d2d1 100644 --- a/README_ZH.md +++ b/README_ZH.md @@ -240,24 +240,60 @@ async def translate_multiple(): asyncio.run(translate_multiple()) ``` -### 可用工作流(使用 Workflow API) +### 使用 Workflow API(高级控制) -如果您需要更精细的控制,可以直接使用 Workflow API。以下是可用的工作流: +如需更精细的控制,可直接使用 Workflow API。所有工作流遵循相同模式: -| 工作流 | 适用场景 | 输入格式 | 输出格式 | 核心配置类 | -|:----------------------------|:--------------------------------------------------------|:-----------------------------------------|:-----------------------|:------------------------------| -| **`MarkdownBasedWorkflow`** | 处理富文本文档,如PDF、Word、图片等。流程为:`文件 -> Markdown -> 翻译 -> 导出`。 | `.pdf`, `.docx`, `.md`, `.png`, `.jpg` 等 | `.md`, `.zip`, `.html` | `MarkdownBasedWorkflowConfig` | -| **`TXTWorkflow`** | 处理纯文本文档。流程为:`txt -> 翻译 -> 导出`。 | `.txt` 及其他纯文本格式 | `.txt`, `.html` | `TXTWorkflowConfig` | -| **`JsonWorkflow`** | 处理json文件。流程为:`json -> 翻译 -> 导出`。 | `.json` | `.json`, `.html` | `JsonWorkflowConfig` | -| **`DocxWorkflow`** | 处理docx文件。流程为:`docx -> 翻译 -> 导出`。 | `.docx` | `.docx`, `.html` | `docxWorkflowConfig` | -| **`XlsxWorkflow`** | 处理xlsx文件。流程为:`xlsx -> 翻译 -> 导出`。 | `.xlsx`、`.csv` | `.xlsx`, `.html` | `XlsxWorkflowConfig` | -| **`SrtWorkflow`** | 处理srt文件。流程为:`srt -> 翻译 -> 导出`。 | `.srt` | `.srt`, `.html` | `SrtWorkflowConfig` | -| **`EpubWorkflow`** | 处理epub文件。流程为:`epub -> 翻译 -> 导出`。 | `.epub` | `.epub`, `.html` | `EpubWorkflowConfig` | -| **`HtmlWorkflow`** | 处理html文件。流程为:`html -> 翻译 -> 导出`。 | `.html`, `.htm` | `.html` | `HtmlWorkflowConfig` | +```python +# 模式: +# 1. 创建 TranslatorConfig(LLM 设置) +# 2. 创建 WorkflowConfig(工作流设置) +# 3. 创建 Workflow 实例 +# 4. workflow.read_path(文件) +# 5. await workflow.translate_async() +# 6. workflow.save_as_*(name=...) 或 export_to_*(...) +``` -> 在交互式界面中可以导出pdf格式 +#### 可用工作流及输出方法 -### 示例 1: 翻译一个 PDF 文件 (使用 `MarkdownBasedWorkflow`) +| 工作流 | 输入格式 | save_as_* | export_to_* | 关键配置选项 | +|:---|:---|:---|:---|:---| +| **MarkdownBasedWorkflow** | `.pdf`, `.docx`, `.md`, `.png`, `.jpg` | `html`, `markdown`, `markdown_zip` | `html`, `markdown`, `markdown_zip` | `convert_engine`, `translator_config` | +| **TXTWorkflow** | `.txt` | `txt`, `html` | `txt`, `html` | `translator_config` | +| **JsonWorkflow** | `.json` | `json`, `html` | `json`, `html` | `translator_config`, `json_paths` | +| **DocxWorkflow** | `.docx` | `docx`, `html` | `docx`, `html` | `translator_config`, `insert_mode` | +| **XlsxWorkflow** | `.xlsx`, `.csv` | `xlsx`, `html` | `xlsx`, `html` | `translator_config`, `insert_mode` | +| **SrtWorkflow** | `.srt` | `srt`, `html` | `srt`, `html` | `translator_config` | +| **EpubWorkflow** | `.epub` | `epub`, `html` | `epub`, `html` | `translator_config`, `insert_mode` | +| **HtmlWorkflow** | `.html`, `.htm` | `html` | `html` | `translator_config`, `insert_mode` | +| **AssWorkflow** | `.ass` | `ass`, `html` | `ass`, `html` | `translator_config` | + +#### 关键配置选项 + +**通用 TranslatorConfig 选项:** + +| 选项 | 类型 | 默认值 | 说明 | +|:---|:---|:---|:---| +| `base_url` | `str` | - | AI 平台基础 URL | +| `api_key` | `str` | - | AI 平台 API 密钥 | +| `model_id` | `str` | - | 模型 ID | +| `to_lang` | `str` | - | 目标语言 | +| `chunk_size` | `int` | 3000 | 文本分块大小 | +| `concurrent` | `int` | 10 | 并发请求数 | +| `temperature` | `float` | 0.3 | LLM 温度 | +| `timeout` | `int` | 60 | 请求超时(秒) | +| `retry` | `int` | 3 | 重试次数 | + +**格式特定选项:** + +| 选项 | 适用工作流 | 说明 | +|:---|:---|:---| +| `insert_mode` | Docx, Xlsx, Html, Epub | `"replace"`(默认), `"append"`, `"prepend"` | +| `json_paths` | Json | JSONPath 表达式(如 `["$.*", "$.name"]`) | +| `separator` | Docx, Xlsx, Html, Epub | append/prepend 模式的文本分隔符 | +| `convert_engine` | MarkdownBased | `"mineru"`(默认), `"docling"`, `"mineru_deploy"` | + +#### 示例 1: 翻译一个 PDF 文件 (使用 `MarkdownBasedWorkflow`) 这是最常见的用例。我们将使用 `minerU` 引擎将 PDF 转换为 Markdown,然后使用 LLM 进行翻译。这里以异步方式为例。 diff --git a/更新日志.txt b/更新日志.txt index 78678fb..452c232 100644 --- a/更新日志.txt +++ b/更新日志.txt @@ -2,10 +2,11 @@ ---------------- v1.5.7版 2025.12.31 特性 +- 新的client调用方式 - 自定义接口可以传入provider参数 +- api接口支持"auto"选项,根据文件后缀自动选择工作流 优化 - ollama支持使用思考模式调节 -- api接口支持"auto"选项,根据文件后缀自动选择工作流 修复 - 修复术语表大小写敏感的问题 - 修复一些类型提示错误