更新版本号

This commit is contained in:
xunbu
2025-09-29 15:23:51 +08:00
parent f8eebabf4c
commit ac1287052a
5 changed files with 97 additions and 63 deletions

View File

@@ -412,10 +412,13 @@ The translation feature relies on large language models. You need to obtain a `b
> Recommended models: Volcengine's `doubao-seed-1-6-flash` and `doubao-seed-1-6` series, Zhipu's `glm-4-flash`, Alibaba Cloud's `qwen-plus` and `qwen-flash`, Deepseek's `deepseek-chat`, etc. > Recommended models: Volcengine's `doubao-seed-1-6-flash` and `doubao-seed-1-6` series, Zhipu's `glm-4-flash`, Alibaba Cloud's `qwen-plus` and `qwen-flash`, Deepseek's `deepseek-chat`, etc.
> [302.ai](https://share.302.ai/BgRLAe)👈 Register through this link to enjoy a $1 free credit
| Platform Name | Get API Key | Base URL | | Platform Name | Get API Key | Base URL |
|:--------------------|:-----------------------------------------------------------------------------------------|:---------------------------------------------------------| |:--------------------|:-----------------------------------------------------------------------------------------|:---------------------------------------------------------|
| ollama | | `http://127.0.0.1:11434/v1` | | ollama | | `http://127.0.0.1:11434/v1` |
| lm studio | | `http://127.0.0.1:1234/v1` | | lm studio | | `http://127.0.0.1:1234/v1` |
| 302.AI | [Click to get](https://share.302.ai/BgRLAe) | `https://api.302.ai/v1` |
| openrouter | [Click to get](https://openrouter.ai/settings/keys) | `https://openrouter.ai/api/v1` | | openrouter | [Click to get](https://openrouter.ai/settings/keys) | `https://openrouter.ai/api/v1` |
| openai | [Click to get](https://platform.openai.com/api-keys) | `https://api.openai.com/v1/` | | openai | [Click to get](https://platform.openai.com/api-keys) | `https://api.openai.com/v1/` |
| gemini | [Click to get](https://aistudio.google.com/u/0/apikey) | `https://generativelanguage.googleapis.com/v1beta/openai/` | | gemini | [Click to get](https://aistudio.google.com/u/0/apikey) | `https://generativelanguage.googleapis.com/v1beta/openai/` |

View File

@@ -24,12 +24,14 @@
-**用語集の自動生成**:用語の整合性を保つための用語集の自動生成をサポートします。 -**用語集の自動生成**:用語の整合性を保つための用語集の自動生成をサポートします。
-**PDFの表、数式、コードの認識**`docling``mineru` PDF解析エンジンにより、学術論文によく見られる表、数式、コードを認識し翻訳します。 -**PDFの表、数式、コードの認識**`docling``mineru` PDF解析エンジンにより、学術論文によく見られる表、数式、コードを認識し翻訳します。
-**JSON翻訳**JSONパス`jsonpath-ng`構文仕様を使用して、JSON内で翻訳が必要な値を指定できます。 -**JSON翻訳**JSONパス`jsonpath-ng`構文仕様を使用して、JSON内で翻訳が必要な値を指定できます。
-**Word/Excelのフォーマットを維持した翻訳**`docx``xlsx`ファイルの元のフォーマットを維持したまま翻訳をサポートします(現在`doc``xls`ファイルは未対応)。 -**Word/Excelのフォーマットを維持した翻訳**`docx``xlsx`ファイルの元のフォーマットを維持したまま翻訳をサポートします(現在
`doc``xls`ファイルは未対応)。
-**複数のAIプラットフォームをサポート**ほとんどのAIプラットフォームに対応しており、カスタムプロンプトによる並行高性能なAI翻訳が可能です。 -**複数のAIプラットフォームをサポート**ほとんどのAIプラットフォームに対応しており、カスタムプロンプトによる並行高性能なAI翻訳が可能です。
-**非同期サポート**:高性能なシーン向けに設計され、完全な非同期サポートを提供し、複数のタスクを並行実行できるサービスインターフェースを実現します。 -**非同期サポート**:高性能なシーン向けに設計され、完全な非同期サポートを提供し、複数のタスクを並行実行できるサービスインターフェースを実現します。
-**LAN、複数人での使用をサポート**:ローカルエリアネットワーク内で複数人が同時に使用できます。 -**LAN、複数人での使用をサポート**:ローカルエリアネットワーク内で複数人が同時に使用できます。
-**インタラクティブなWebインターフェース**すぐに使えるWeb UIとRESTful APIを提供し、統合と使用が容易です。 -**インタラクティブなWebインターフェース**すぐに使えるWeb UIとRESTful APIを提供し、統合と使用が容易です。
-**小型でマルチプラットフォーム対応の統合パッケージ**40MB未満のWindows、Mac用統合パッケージ`docling`ローカルPDF解析を使用しないバージョン -**小型でマルチプラットフォーム対応の統合パッケージ**40MB未満のWindows、Mac用統合パッケージ`docling`
ローカルPDF解析を使用しないバージョン
> `pdf`を翻訳する際、まずMarkdownに変換されるため、元のレイアウトが**失われます**。レイアウトにこだわりがあるユーザーはご注意ください。 > `pdf`を翻訳する際、まずMarkdownに変換されるため、元のレイアウトが**失われます**。レイアウトにこだわりがあるユーザーはご注意ください。
@@ -46,7 +48,8 @@
## 統合パッケージ ## 統合パッケージ
すぐに始めたいユーザーのために、[GitHub Releases](https://github.com/xunbu/docutranslate/releases)で統合パッケージを提供しています。ダウンロードして解凍し、AIプラットフォームのAPIキーを入力するだけで使用を開始できます。 すぐに始めたいユーザーのために、[GitHub Releases](https://github.com/xunbu/docutranslate/releases)
で統合パッケージを提供しています。ダウンロードして解凍し、AIプラットフォームのAPIキーを入力するだけで使用を開始できます。
- **DocuTranslate**: 標準版。オンラインの`minerU`エンジンを使用してPDFドキュメントを解析します。ローカルでのPDF解析が不要な場合はこのバージョンを選択してください推奨 - **DocuTranslate**: 標準版。オンラインの`minerU`エンジンを使用してPDFドキュメントを解析します。ローカルでのPDF解析が不要な場合はこのバージョンを選択してください推奨
- **DocuTranslate_full**: 完全版。`docling`ローカルPDF解析エンジンを内蔵しています。ローカルでのPDF解析が必要な場合はこのバージョンを選択してください。 - **DocuTranslate_full**: 完全版。`docling`ローカルPDF解析エンジンを内蔵しています。ローカルでのPDF解析が必要な場合はこのバージョンを選択してください。
@@ -90,12 +93,15 @@ uv sync
## コアコンセプト:ワークフロー (Workflow) ## コアコンセプト:ワークフロー (Workflow)
新しいDocuTranslateの中核は**ワークフロー (Workflow)**です。各ワークフローは、特定のファイルタイプ専用に設計された、完全なエンドツーエンドの翻訳パイプラインです。巨大な単一クラスと対話する代わりに、ファイルタイプに応じて適切なワークフローを選択し、設定します。 新しいDocuTranslateの中核は**ワークフロー (Workflow)**
です。各ワークフローは、特定のファイルタイプ専用に設計された、完全なエンドツーエンドの翻訳パイプラインです。巨大な単一クラスと対話する代わりに、ファイルタイプに応じて適切なワークフローを選択し、設定します。
**基本的な使用手順は以下の通りです:** **基本的な使用手順は以下の通りです:**
1. **ワークフローの選択**入力ファイルタイプPDF/WordまたはTXTに応じて、`MarkdownBasedWorkflow``TXTWorkflow`などのワークフローを選択します。 1. **ワークフローの選択**入力ファイルタイプPDF/WordまたはTXTに応じて、`MarkdownBasedWorkflow``TXTWorkflow`
2. **設定の構築**:選択したワークフローに対応する設定オブジェクト(例:`MarkdownBasedWorkflowConfig`)を作成します。この設定オブジェクトには、以下のような必要なすべてのサブ設定が含まれます: などのワークフローを選択します。
2. **設定の構築**:選択したワークフローに対応する設定オブジェクト(例:`MarkdownBasedWorkflowConfig`
)を作成します。この設定オブジェクトには、以下のような必要なすべてのサブ設定が含まれます:
* **コンバーター設定 (Converter Config)**: 元のファイルPDFなどをMarkdownに変換する方法を定義します。 * **コンバーター設定 (Converter Config)**: 元のファイルPDFなどをMarkdownに変換する方法を定義します。
* **翻訳機設定 (Translator Config)**: 使用するLLM、APIキー、ターゲット言語などを定義します。 * **翻訳機設定 (Translator Config)**: 使用するLLM、APIキー、ターゲット言語などを定義します。
* **エクスポーター設定 (Exporter Config)**: 出力フォーマットHTMLなどの特定のオプションを定義します。 * **エクスポーター設定 (Exporter Config)**: 出力フォーマットHTMLなどの特定のオプションを定義します。
@@ -106,7 +112,7 @@ uv sync
## 利用可能なワークフロー ## 利用可能なワークフロー
| ワークフロー | 適用シーン | 入力フォーマット | 出力フォーマット | コア設定クラス | | ワークフロー | 適用シーン | 入力フォーマット | 出力フォーマット | コア設定クラス |
|:----------------------------|:------------------------------------------------------------------|:-----------------------------------------------|:-------------------------------|:--------------------------------| |:----------------------------|:-----------------------------------------------------------------------|:------------------------------------------|:-----------------------|:------------------------------|
| **`MarkdownBasedWorkflow`** | PDF、Word、画像などのリッチテキストドキュメントを処理。フロー`ファイル -> Markdown -> 翻訳 -> エクスポート`。 | `.pdf`, `.docx`, `.md`, `.png`, `.jpg` など | `.md`, `.zip`, `.html` | `MarkdownBasedWorkflowConfig` | | **`MarkdownBasedWorkflow`** | PDF、Word、画像などのリッチテキストドキュメントを処理。フロー`ファイル -> Markdown -> 翻訳 -> エクスポート`。 | `.pdf`, `.docx`, `.md`, `.png`, `.jpg` など | `.md`, `.zip`, `.html` | `MarkdownBasedWorkflowConfig` |
| **`TXTWorkflow`** | プレーンテキストドキュメントを処理。フロー:`txt -> 翻訳 -> エクスポート`。 | `.txt` およびその他のプレーンテキスト形式 | `.txt`, `.html` | `TXTWorkflowConfig` | | **`TXTWorkflow`** | プレーンテキストドキュメントを処理。フロー:`txt -> 翻訳 -> エクスポート`。 | `.txt` およびその他のプレーンテキスト形式 | `.txt`, `.html` | `TXTWorkflowConfig` |
| **`JsonWorkflow`** | JSONファイルを処理。フロー`json -> 翻訳 -> エクスポート`。 | `.json` | `.json`, `.html` | `JsonWorkflowConfig` | | **`JsonWorkflow`** | JSONファイルを処理。フロー`json -> 翻訳 -> エクスポート`。 | `.json` | `.json`, `.html` | `JsonWorkflowConfig` |
@@ -257,7 +263,8 @@ if __name__ == "__main__":
### 例3JSONファイルの翻訳 (`JsonWorkflow`を使用) ### 例3JSONファイルの翻訳 (`JsonWorkflow`を使用)
ここでは非同期方式を例にとります。`JsonTranslatorConfig``json_paths`項目で、翻訳したいJSONパス`jsonpath-ng`構文仕様に準拠を指定する必要があります。JSONパスに一致する値のみが翻訳されます。 ここでは非同期方式を例にとります。`JsonTranslatorConfig``json_paths`項目で、翻訳したいJSONパス`jsonpath-ng`
構文仕様に準拠を指定する必要があります。JSONパスに一致する値のみが翻訳されます。
```python ```python
import asyncio import asyncio
@@ -412,10 +419,13 @@ if __name__ == "__main__":
> 推奨モデル:火山引擎の`doubao-seed-1-6-flash`、`doubao-seed-1-6`シリーズ、智譜の`glm-4-flash`、阿里雲の`qwen-plus`、 `qwen-flash`、deepseekの`deepseek-chat`など。 > 推奨モデル:火山引擎の`doubao-seed-1-6-flash`、`doubao-seed-1-6`シリーズ、智譜の`glm-4-flash`、阿里雲の`qwen-plus`、 `qwen-flash`、deepseekの`deepseek-chat`など。
> [302.ai](https://share.302.ai/BgRLAe)👈 このリンクから登録で1ドル分の無料クレジットを提供
| プラットフォーム名 | APIキー取得 | baseurl | | プラットフォーム名 | APIキー取得 | baseurl |
|:-------------------|:-----------------------------------------------------------------------------------------|:---------------------------------------------------------| |:-----------|:---------------------------------------------------------------------------------------------|:-----------------------------------------------------------|
| ollama | | `http://127.0.0.1:11434/v1` | | ollama | | `http://127.0.0.1:11434/v1` |
| lm studio | | `http://127.0.0.1:1234/v1` | | lm studio | | `http://127.0.0.1:1234/v1` |
| 302.AI | [ここをクリックして取得](https://share.302.ai/BgRLAe) | `https://api.302.ai/v1` |
| openrouter | [ここをクリックして取得](https://openrouter.ai/settings/keys) | `https://openrouter.ai/api/v1` | | openrouter | [ここをクリックして取得](https://openrouter.ai/settings/keys) | `https://openrouter.ai/api/v1` |
| openai | [ここをクリックして取得](https://platform.openai.com/api-keys) | `https://api.openai.com/v1/` | | openai | [ここをクリックして取得](https://platform.openai.com/api-keys) | `https://api.openai.com/v1/` |
| gemini | [ここをクリックして取得](https://aistudio.google.com/u/0/apikey) | `https://generativelanguage.googleapis.com/v1beta/openai/` | | gemini | [ここをクリックして取得](https://aistudio.google.com/u/0/apikey) | `https://generativelanguage.googleapis.com/v1beta/openai/` |
@@ -441,9 +451,11 @@ if __name__ == "__main__":
#### 2.2. doclingエンジンの設定ローカルPDF解析 #### 2.2. doclingエンジンの設定ローカルPDF解析
ドキュメント解析エンジンとして`docling`を選択した場合(`convert_engine="docling"`、初回使用時にHugging Faceから必要なモデルがダウンロードされます。 ドキュメント解析エンジンとして`docling`を選択した場合(`convert_engine="docling"`、初回使用時にHugging
Faceから必要なモデルがダウンロードされます。
> より良い選択肢は、[GitHub Releases](https://github.com/xunbu/docutranslate/releases)から`docling_artifact.zip`をダウンロードし、作業ディレクトリに解凍することです。 > より良い選択肢は、[GitHub Releases](https://github.com/xunbu/docutranslate/releases)から`docling_artifact.zip`
> をダウンロードし、作業ディレクトリに解凍することです。
**`docling`モデルのダウンロード時のネットワーク問題解決策:** **`docling`モデルのダウンロード時のネットワーク問題解決策:**
@@ -452,16 +464,21 @@ if __name__ == "__main__":
``` ```
HF_ENDPOINT=https://hf-mirror.com HF_ENDPOINT=https://hf-mirror.com
``` ```
* **方法Bコード内で設定**: Pythonスクリプトの冒頭に以下のコードを追加します。 * **方法Bコード内で設定**: Pythonスクリプトの冒頭に以下のコードを追加します。
```python ```python
import os import os
os.environ['HF_ENDPOINT'] = 'https://hf-mirror.com' os.environ['HF_ENDPOINT'] = 'https://hf-mirror.com'
``` ```
2. **オフラインでの使用(モデルパッケージを事前にダウンロード)**: 2. **オフラインでの使用(モデルパッケージを事前にダウンロード)**:
* [GitHub Releases](https://github.com/xunbu/docutranslate/releases)から`docling_artifact.zip`をダウンロードします。 * [GitHub Releases](https://github.com/xunbu/docutranslate/releases)から`docling_artifact.zip`をダウンロードします。
* プロジェクトディレクトリに解凍します。 * プロジェクトディレクトリに解凍します。
* 設定でモデルのパスを指定します(モデルがスクリプトと同じディレクトリにない場合): * 設定でモデルのパスを指定します(モデルがスクリプトと同じディレクトリにない場合):
```python ```python
from docutranslate.converter.x2md.converter_docling import ConverterDoclingConfig from docutranslate.converter.x2md.converter_docling import ConverterDoclingConfig
@@ -484,15 +501,20 @@ A: `-p`パラメータで新しいポートを指定するか、`DOCUTRANSLATE_P
A: はい、サポートしています。強力なOCR機能を持つ`mineru`解析エンジンを使用してください。 A: はい、サポートしています。強力なOCR機能を持つ`mineru`解析エンジンを使用してください。
**Q: なぜ最初のPDF翻訳がとても遅いのですか** **Q: なぜ最初のPDF翻訳がとても遅いのですか**
A: `docling`エンジンを使用している場合、初回実行時にHugging Faceからモデルをダウンロードする必要があります。このプロセスを高速化するには、上記の「ネットワーク問題解決策」を参照してください。 A: `docling`エンジンを使用している場合、初回実行時にHugging
Faceからモデルをダウンロードする必要があります。このプロセスを高速化するには、上記の「ネットワーク問題解決策」を参照してください。
**Q: イントラネット(オフライン)環境で使用するにはどうすればいいですか?** **Q: イントラネット(オフライン)環境で使用するにはどうすればいいですか?**
A: 完全に可能です。以下の条件を満たす必要があります: A: 完全に可能です。以下の条件を満たす必要があります:
1. **ローカルLLM**: [Ollama](https://ollama.com/)や[LM Studio](https://lmstudio.ai/)などのツールを使用してローカルに言語モデルをデプロイし、`TranslatorConfig`にローカルモデルの`base_url`を記入します。
1. **ローカルLLM**: [Ollama](https://ollama.com/)や[LM Studio](https://lmstudio.ai/)などのツールを使用してローカルに言語モデルをデプロイし、
`TranslatorConfig`にローカルモデルの`base_url`を記入します。
2. **ローカルPDF解析エンジン**PDF解析にのみ必要: `docling`エンジンを使用し、上記の「オフラインでの使用」の指示に従って事前にモデルパッケージをダウンロードします。 2. **ローカルPDF解析エンジン**PDF解析にのみ必要: `docling`エンジンを使用し、上記の「オフラインでの使用」の指示に従って事前にモデルパッケージをダウンロードします。
**Q: PDF解析のキャッシュメカニズムはどのように機能しますか** **Q: PDF解析のキャッシュメカニズムはどのように機能しますか**
A: `MarkdownBasedWorkflow`は、ドキュメント解析ファイルからMarkdownへの変換の結果を自動的にキャッシュし、時間とリソースの重複消費を防ぎます。キャッシュはデフォルトでメモリに保存され、直近10回の解析が記録されます。`DOCUTRANSLATE_CACHE_NUM`環境変数でキャッシュ数を変更できます。 A: `MarkdownBasedWorkflow`
は、ドキュメント解析ファイルからMarkdownへの変換の結果を自動的にキャッシュし、時間とリソースの重複消費を防ぎます。キャッシュはデフォルトでメモリに保存され、直近10回の解析が記録されます。
`DOCUTRANSLATE_CACHE_NUM`環境変数でキャッシュ数を変更できます。
**Q: ソフトウェアがプロキシを経由するようにするにはどうすればいいですか?** **Q: ソフトウェアがプロキシを経由するようにするにはどうすればいいですか?**
A: デフォルトではシステムプロキシを使用しません。`TranslatorConfig`で`system_proxy_enable=True`と設定することで有効にできます。 A: デフォルトではシステムプロキシを使用しません。`TranslatorConfig`で`system_proxy_enable=True`と設定することで有効にできます。

View File

@@ -414,10 +414,13 @@ if __name__ == "__main__":
> 推荐模型:火山引擎的`doubao-seed-1-6-flash`、`doubao-seed-1-6`系列、智谱的`glm-4-flash`,阿里云的 `qwen-plus`、`qwen-flash`deepseek的`deepseek-chat`等。 > 推荐模型:火山引擎的`doubao-seed-1-6-flash`、`doubao-seed-1-6`系列、智谱的`glm-4-flash`,阿里云的 `qwen-plus`、`qwen-flash`deepseek的`deepseek-chat`等。
> [302.ai](https://share.302.ai/BgRLAe)👈从该链接注册可享1美元免费额度
| 平台名称 | 获取APIkey | baseurl | | 平台名称 | 获取APIkey | baseurl |
|------------|---------------------------------------------------------------------------------------|----------------------------------------------------------| |------------|---------------------------------------------------------------------------------------|----------------------------------------------------------|
| ollama | | http://127.0.0.1:11434/v1 | | ollama | | http://127.0.0.1:11434/v1 |
| lm studio | | http://127.0.0.1:1234/v1 | | lm studio | | http://127.0.0.1:1234/v1 |
| 302.AI | [点击获取](https://share.302.ai/BgRLAe) | https://api.302.ai/v1 |
| openrouter | [点击获取](https://openrouter.ai/settings/keys) | https://openrouter.ai/api/v1 | | openrouter | [点击获取](https://openrouter.ai/settings/keys) | https://openrouter.ai/api/v1 |
| openai | [点击获取](https://platform.openai.com/api-keys) | https://api.openai.com/v1/ | | openai | [点击获取](https://platform.openai.com/api-keys) | https://api.openai.com/v1/ |
| gemini | [点击获取](https://aistudio.google.com/u/0/apikey) | https://generativelanguage.googleapis.com/v1beta/openai/ | | gemini | [点击获取](https://aistudio.google.com/u/0/apikey) | https://generativelanguage.googleapis.com/v1beta/openai/ |
@@ -480,6 +483,7 @@ converter_config = ConverterDoclingConfig(
``` ```
## FAQ ## FAQ
**Q: 为什么翻译出来的还是原文** **Q: 为什么翻译出来的还是原文**
A: 查看一下日志报了什么错一般是AI平台欠费或网络有问题查看是否需要开启系统代理 A: 查看一下日志报了什么错一般是AI平台欠费或网络有问题查看是否需要开启系统代理

View File

@@ -1,3 +1,3 @@
# SPDX-FileCopyrightText: 2025 QinHan # SPDX-FileCopyrightText: 2025 QinHan
# SPDX-License-Identifier: MPL-2.0 # SPDX-License-Identifier: MPL-2.0
__version__="1.4.6" __version__="1.4.7"

View File

@@ -1,5 +1,10 @@
更新日志 更新日志
---------------- ----------------
v1.4.7版 2025.9.30
特性
- 302.ai平台支持
- 推理模式控制支持更多平台
----------------
v1.4.6版 2025.9.24 v1.4.6版 2025.9.24
修复 修复
- 修复切换界面语言时部分文本未改变的问题 - 修复切换界面语言时部分文本未改变的问题