This commit is contained in:
xunbu
2026-01-01 01:31:53 +08:00
parent ed8461efa2
commit e94aa1ea89
4 changed files with 150 additions and 41 deletions

View File

@@ -239,24 +239,60 @@ async def translate_multiple():
asyncio.run(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` | | **MarkdownBasedWorkflow** | `.pdf`, `.docx`, `.md`, `.png`, `.jpg` | `html`, `markdown`, `markdown_zip` | `html`, `markdown`, `markdown_zip` | `convert_engine`, `translator_config` |
| **`TXTWorkflow`** | Handles plain text documents. Flow: `txt -> Translate -> Export`. | `.txt` and other plain text formats | `.txt`, `.html` | `TXTWorkflowConfig` | | **TXTWorkflow** | `.txt` | `txt`, `html` | `txt`, `html` | `translator_config` |
| **`JsonWorkflow`** | Handles JSON files. Flow: `json -> Translate -> Export`. | `.json` | `.json`, `.html` | `JsonWorkflowConfig` | | **JsonWorkflow** | `.json` | `json`, `html` | `json`, `html` | `translator_config`, `json_paths` |
| **`DocxWorkflow`** | Handles docx files. Flow: `docx -> Translate -> Export`. | `.docx` | `.docx`, `.html` | `docxWorkflowConfig` | | **DocxWorkflow** | `.docx` | `docx`, `html` | `docx`, `html` | `translator_config`, `insert_mode` |
| **`XlsxWorkflow`** | Handles xlsx files. Flow: `xlsx -> Translate -> Export`. | `.xlsx`, `.csv` | `.xlsx`, `.html` | `XlsxWorkflowConfig` | | **XlsxWorkflow** | `.xlsx`, `.csv` | `xlsx`, `html` | `xlsx`, `html` | `translator_config`, `insert_mode` |
| **`SrtWorkflow`** | Handles srt files. Flow: `srt -> Translate -> Export`. | `.srt` | `.srt`, `.html` | `SrtWorkflowConfig` | | **SrtWorkflow** | `.srt` | `srt`, `html` | `srt`, `html` | `translator_config` |
| **`EpubWorkflow`** | Handles epub files. Flow: `epub -> Translate -> Export`. | `.epub` | `.epub`, `.html` | `EpubWorkflowConfig` | | **EpubWorkflow** | `.epub` | `epub`, `html` | `epub`, `html` | `translator_config`, `insert_mode` |
| **`HtmlWorkflow`** | Handles html files. Flow: `html -> Translate -> Export`. | `.html`, `.htm` | `.html` | `HtmlWorkflowConfig` | | **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. 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.

View File

@@ -239,24 +239,60 @@ async def translate_multiple():
asyncio.run(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` | | **MarkdownBasedWorkflow** | `.pdf`, `.docx`, `.md`, `.png`, `.jpg` | `html`, `markdown`, `markdown_zip` | `html`, `markdown`, `markdown_zip` | `convert_engine`, `translator_config` |
| **`TXTWorkflow`** | プレーンテキストドキュメントを処理。フロー:`txt -> 翻訳 -> エクスポート` | `.txt` およびその他のテキスト形式 | `.txt`, `.html` | `TXTWorkflowConfig` | | **TXTWorkflow** | `.txt` | `txt`, `html` | `txt`, `html` | `translator_config` |
| **`JsonWorkflow`** | JSONファイルを処理。フロー`json -> 翻訳 -> エクスポート` | `.json` | `.json`, `.html` | `JsonWorkflowConfig` | | **JsonWorkflow** | `.json` | `json`, `html` | `json`, `html` | `translator_config`, `json_paths` |
| **`DocxWorkflow`** | docxファイルを処理。フロー`docx -> 翻訳 -> エクスポート` | `.docx` | `.docx`, `.html` | `docxWorkflowConfig` | | **DocxWorkflow** | `.docx` | `docx`, `html` | `docx`, `html` | `translator_config`, `insert_mode` |
| **`XlsxWorkflow`** | xlsxファイルを処理。フロー:`xlsx -> 翻訳 -> エクスポート` | `.xlsx`, `.csv` | `.xlsx`, `.html` | `XlsxWorkflowConfig` | | **XlsxWorkflow** | `.xlsx`, `.csv` | `xlsx`, `html` | `xlsx`, `html` | `translator_config`, `insert_mode` |
| **`SrtWorkflow`** | srtファイルを処理。フロー`srt -> 翻訳 -> エクスポート` | `.srt` | `.srt`, `.html` | `SrtWorkflowConfig` | | **SrtWorkflow** | `.srt` | `srt`, `html` | `srt`, `html` | `translator_config` |
| **`EpubWorkflow`** | epubファイルを処理。フロー`epub -> 翻訳 -> エクスポート` | `.epub` | `.epub`, `.html` | `EpubWorkflowConfig` | | **EpubWorkflow** | `.epub` | `epub`, `html` | `epub`, `html` | `translator_config`, `insert_mode` |
| **`HtmlWorkflow`** | htmlファイルを処理。フロー`html -> 翻訳 -> エクスポート`。 | `.html`, `.htm` | `.html` | `HtmlWorkflowConfig` | | **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 を使用して翻訳します。ここでは非同期方式を例にします。 これが最も一般的なユースケースです。`minerU` エンジンを使用して PDF を Markdown に変換し、その後 LLM を使用して翻訳します。ここでは非同期方式を例にします。

View File

@@ -240,24 +240,60 @@ async def translate_multiple():
asyncio.run(translate_multiple()) asyncio.run(translate_multiple())
``` ```
### 可用工作流(使用 Workflow API ### 使用 Workflow API(高级控制
果您需要更精细的控制,可直接使用 Workflow API。以下是可用的工作流 更精细的控制,可直接使用 Workflow API。所有工作流遵循相同模式
| 工作流 | 适用场景 | 输入格式 | 输出格式 | 核心配置类 | ```python
|:----------------------------|:--------------------------------------------------------|:-----------------------------------------|:-----------------------|:------------------------------| # 模式:
| **`MarkdownBasedWorkflow`** | 处理富文本文档如PDF、Word、图片等。流程为`文件 -> Markdown -> 翻译 -> 导出`。 | `.pdf`, `.docx`, `.md`, `.png`, `.jpg` 等 | `.md`, `.zip`, `.html` | `MarkdownBasedWorkflowConfig` | # 1. 创建 TranslatorConfigLLM 设置)
| **`TXTWorkflow`** | 处理纯文本文档。流程为:`txt -> 翻译 -> 导出`。 | `.txt` 及其他纯文本格式 | `.txt`, `.html` | `TXTWorkflowConfig` | # 2. 创建 WorkflowConfig工作流设置
| **`JsonWorkflow`** | 处理json文件。流程为`json -> 翻译 -> 导出`。 | `.json` | `.json`, `.html` | `JsonWorkflowConfig` | # 3. 创建 Workflow 实例
| **`DocxWorkflow`** | 处理docx文件。流程为`docx -> 翻译 -> 导出`。 | `.docx` | `.docx`, `.html` | `docxWorkflowConfig` | # 4. workflow.read_path(文件)
| **`XlsxWorkflow`** | 处理xlsx文件。流程为`xlsx -> 翻译 -> 导出`。 | `.xlsx``.csv` | `.xlsx`, `.html` | `XlsxWorkflowConfig` | # 5. await workflow.translate_async()
| **`SrtWorkflow`** | 处理srt文件。流程为`srt -> 翻译 -> 导出`。 | `.srt` | `.srt`, `.html` | `SrtWorkflowConfig` | # 6. workflow.save_as_*(name=...) 或 export_to_*(...)
| **`EpubWorkflow`** | 处理epub文件。流程为`epub -> 翻译 -> 导出`。 | `.epub` | `.epub`, `.html` | `EpubWorkflowConfig` | ```
| **`HtmlWorkflow`** | 处理html文件。流程为`html -> 翻译 -> 导出`。 | `.html`, `.htm` | `.html` | `HtmlWorkflowConfig` |
> 在交互式界面中可以导出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 进行翻译。这里以异步方式为例。 这是最常见的用例。我们将使用 `minerU` 引擎将 PDF 转换为 Markdown然后使用 LLM 进行翻译。这里以异步方式为例。

View File

@@ -2,10 +2,11 @@
---------------- ----------------
v1.5.7版 2025.12.31 v1.5.7版 2025.12.31
特性 特性
- 新的client调用方式
- 自定义接口可以传入provider参数 - 自定义接口可以传入provider参数
- api接口支持"auto"选项,根据文件后缀自动选择工作流
优化 优化
- ollama支持使用思考模式调节 - ollama支持使用思考模式调节
- api接口支持"auto"选项,根据文件后缀自动选择工作流
修复 修复
- 修复术语表大小写敏感的问题 - 修复术语表大小写敏感的问题
- 修复一些类型提示错误 - 修复一些类型提示错误