update
This commit is contained in:
412
README_JP.md
412
README_JP.md
@@ -1,5 +1,5 @@
|
||||
<p align="center">
|
||||
<img src="./DocuTranslate.png" alt="プロジェクトロゴ" style="width: 150px">
|
||||
<img src="./DocuTranslate.png" alt="プロジェクトロゴ" style="width: 150px">
|
||||
</p>
|
||||
|
||||
<h1 align="center">DocuTranslate</h1>
|
||||
@@ -17,69 +17,67 @@
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
大規模言語モデルをベースにした軽量なローカルファイル翻訳ツール
|
||||
大規模言語モデル(LLM)に基づいた軽量なローカルファイル翻訳ツール
|
||||
</p>
|
||||
|
||||
- ✅ **多様なフォーマットをサポート**:`pdf`、`docx`、`xlsx`、`md`、`txt`、`json`、`epub`、`srt`、`ass`など、さまざまなファイルを翻訳できます。
|
||||
- ✅ **用語集の自動生成**:用語の整合性を保つための用語集の自動生成をサポートします。
|
||||
- ✅ **PDFの表、数式、コードの認識**:`docling`、`mineru` PDF解析エンジンにより、学術論文によく見られる表、数式、コードを認識し翻訳します。
|
||||
- ✅ **JSON翻訳**:JSONパス(`jsonpath-ng`構文仕様)を使用して、JSON内で翻訳が必要な値を指定できます。
|
||||
- ✅ **Word/Excelのフォーマットを維持した翻訳**:`docx`、`xlsx`ファイルの元のフォーマットを維持したまま翻訳をサポートします(現在
|
||||
`doc`、`xls`ファイルは未対応)。
|
||||
- ✅ **複数のAIプラットフォームをサポート**:ほとんどのAIプラットフォームに対応しており、カスタムプロンプトによる並行高性能なAI翻訳が可能です。
|
||||
- ✅ **非同期サポート**:高性能なシーン向けに設計され、完全な非同期サポートを提供し、複数のタスクを並行実行できるサービスインターフェースを実現します。
|
||||
- ✅ **LAN、複数人での使用をサポート**:ローカルエリアネットワーク内で複数人が同時に使用できます。
|
||||
- ✅ **インタラクティブなWebインターフェース**:すぐに使えるWeb UIとRESTful APIを提供し、統合と使用が容易です。
|
||||
- ✅ **小型でマルチプラットフォーム対応の統合パッケージ**:40MB未満のWindows、Mac用統合パッケージ(`docling`
|
||||
ローカルPDF解析を使用しないバージョン)。
|
||||
- ✅ **多形式対応**:`pdf`、`docx`、`xlsx`、`md`、`txt`、`json`、`epub`、`srt`、`ass`など、多様なファイルの翻訳に対応。
|
||||
- ✅ **用語集自動生成**:用語のアライメント(統一)を実現するための用語集自動生成をサポート。
|
||||
- ✅ **PDFの表・数式・コード認識**:`docling`、`mineru`といったPDF解析エンジンにより、学術論文によくある表、数式、コードの認識と翻訳を実現。
|
||||
- ✅ **JSON翻訳**:JSONパス(`jsonpath-ng`構文)による翻訳対象値の指定をサポート。
|
||||
- ✅ **Word/Excelの書式保持翻訳**:`docx`、`xlsx`ファイル(`doc`、`xls`は未対応)の書式を保持したまま翻訳可能。
|
||||
- ✅ **マルチAIプラットフォーム対応**:ほぼ全てのAIプラットフォームに対応し、カスタムプロンプトによる高性能な並行AI翻訳を実現。
|
||||
- ✅ **非同期サポート**:高性能なシナリオ向けに設計され、完全な非同期サポートを提供し、マルチタスク並列処理可能なサービスインターフェースを実装。
|
||||
- ✅ **LAN・複数人利用対応**:LAN内での複数人同時利用をサポート。
|
||||
- ✅ **インタラクティブなWeb画面**:すぐに使えるWeb UIとRESTful APIを提供し、統合と使用が容易。
|
||||
- ✅ **軽量・マルチプラットフォーム対応のポータブルパッケージ**:40MB未満のWindows/Mac用ポータブルパッケージ(`docling`ローカル解析を含まないバージョン)を提供。
|
||||
|
||||
> `pdf`を翻訳する際、まずMarkdownに変換されるため、元のレイアウトが**失われます**。レイアウトにこだわりがあるユーザーはご注意ください。
|
||||
> `pdf`を翻訳する際、まずMarkdownに変換されるため、元のレイアウトが**失われます**。レイアウトを重視するユーザーはご注意ください。
|
||||
|
||||
> QQ交流グループ:1047781902
|
||||
|
||||
**UI画面**:
|
||||

|
||||

|
||||
|
||||
**論文翻訳**:
|
||||

|
||||

|
||||
|
||||
**小説翻訳**:
|
||||

|
||||

|
||||
|
||||
## 統合パッケージ
|
||||
|
||||
すぐに始めたいユーザーのために、[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_full**: 完全版。`docling`ローカルPDF解析エンジンを内蔵しています。ローカルでのPDF解析が必要な場合はこのバージョンを選択してください。
|
||||
- **DocuTranslate**: 標準版。オンラインの `minerU` エンジンを使用してPDFドキュメントを解析します。ローカルでのPDF解析が不要な場合はこちらを選択してください(推奨)。
|
||||
- **DocuTranslate_full**: 完全版。`docling` ローカルPDF解析エンジンを内蔵しています。ローカルでPDFを解析する必要がある場合はこちらを選択してください。
|
||||
> バージョン1.5.1以降、ローカルにデプロイされたmineruサービスの呼び出しをサポートしています。
|
||||
|
||||
## インストール
|
||||
|
||||
### pipを使用
|
||||
### pipを使用する場合
|
||||
|
||||
```bash
|
||||
# 基本的なインストール
|
||||
# 基本インストール
|
||||
pip install docutranslate
|
||||
|
||||
# doclingを使用してローカルでPDFを解析する場合
|
||||
# doclingでローカルPDF解析を行う場合
|
||||
pip install docutranslate[docling]
|
||||
```
|
||||
|
||||
### uvを使用
|
||||
### uvを使用する場合
|
||||
|
||||
```bash
|
||||
# 環境の初期化
|
||||
uv init
|
||||
|
||||
# 基本的なインストール
|
||||
# 基本インストール
|
||||
uv add docutranslate
|
||||
|
||||
# docling拡張機能のインストール
|
||||
# docling拡張のインストール
|
||||
uv add docutranslate[docling]
|
||||
```
|
||||
|
||||
### gitを使用
|
||||
### gitを使用する場合
|
||||
|
||||
```bash
|
||||
# 環境の初期化
|
||||
@@ -93,66 +91,64 @@ uv sync
|
||||
|
||||
## コアコンセプト:ワークフロー (Workflow)
|
||||
|
||||
新しいDocuTranslateの中核は**ワークフロー (Workflow)**
|
||||
です。各ワークフローは、特定のファイルタイプ専用に設計された、完全なエンドツーエンドの翻訳パイプラインです。巨大な単一クラスと対話する代わりに、ファイルタイプに応じて適切なワークフローを選択し、設定します。
|
||||
新しい DocuTranslate の核となるのは **ワークフロー (Workflow)** です。各ワークフローは、特定の種類のファイル用に設計された、完全なエンドツーエンドの翻訳パイプラインです。巨大なクラスとやり取りするのではなく、ファイルの種類に基づいて適切なワークフローを選択し、設定します。
|
||||
|
||||
**基本的な使用手順は以下の通りです:**
|
||||
|
||||
1. **ワークフローの選択**:入力ファイルタイプ(例:PDF/WordまたはTXT)に応じて、`MarkdownBasedWorkflow`や`TXTWorkflow`
|
||||
などのワークフローを選択します。
|
||||
2. **設定の構築**:選択したワークフローに対応する設定オブジェクト(例:`MarkdownBasedWorkflowConfig`
|
||||
)を作成します。この設定オブジェクトには、以下のような必要なすべてのサブ設定が含まれます:
|
||||
* **コンバーター設定 (Converter Config)**: 元のファイル(PDFなど)をMarkdownに変換する方法を定義します。
|
||||
1. **ワークフローの選択**:入力ファイルの種類(例:PDF/Word または TXT)に基づいて、`MarkdownBasedWorkflow` や `TXTWorkflow` などのワークフローを選択します。
|
||||
2. **設定の構築**:選択したワークフローに対応する設定オブジェクト(例:`MarkdownBasedWorkflowConfig`)を作成します。この設定オブジェクトには、必要なすべてのサブ設定が含まれます:
|
||||
* **コンバータ設定 (Converter Config)**: 元のファイル(例:PDF)をMarkdownに変換する方法を定義します。
|
||||
* **翻訳機設定 (Translator Config)**: 使用するLLM、APIキー、ターゲット言語などを定義します。
|
||||
* **エクスポーター設定 (Exporter Config)**: 出力フォーマット(HTMLなど)の特定のオプションを定義します。
|
||||
* **エクスポータ設定 (Exporter Config)**: 出力形式(例:HTML)の特定のオプションを定義します。
|
||||
3. **ワークフローのインスタンス化**:設定オブジェクトを使用してワークフローのインスタンスを作成します。
|
||||
4. **翻訳の実行**:ワークフローの`.read_*()`および`.translate()` / `.translate_async()`メソッドを呼び出します。
|
||||
5. **結果のエクスポート/保存**:`.export_to_*()`または`.save_as_*()`メソッドを呼び出して、翻訳結果を取得または保存します。
|
||||
4. **翻訳の実行**:ワークフローの `.read_*()` および `.translate()` / `.translate_async()` メソッドを呼び出します。
|
||||
5. **結果のエクスポート/保存**:`.export_to_*()` または `.save_as_*()` メソッドを呼び出して翻訳結果を取得または保存します。
|
||||
|
||||
## 利用可能なワークフロー
|
||||
|
||||
| ワークフロー | 適用シーン | 入力フォーマット | 出力フォーマット | コア設定クラス |
|
||||
|:----------------------------|:-----------------------------------------------------------------------|:------------------------------------------|:-----------------------|:------------------------------|
|
||||
| **`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、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` |
|
||||
|
||||
> インタラクティブインターフェースではPDF形式でエクスポートできます。
|
||||
> インタラクティブ画面ではPDF形式でのエクスポートも可能です。
|
||||
|
||||
## Web UIとAPIサービスの起動
|
||||
## Web UI と API サービスの起動
|
||||
|
||||
利便性のために、DocuTranslateは機能豊富なWebインターフェースとRESTful APIを提供しています。
|
||||
使いやすくするために、DocuTranslate は機能豊富な Web インターフェースと RESTful API を提供しています。
|
||||
|
||||
**サービスの起動:**
|
||||
|
||||
```bash
|
||||
# サービスを起動し、デフォルトで8010ポートをリッスンします
|
||||
# サービスの起動(デフォルトでポート8010をリッスン)
|
||||
docutranslate -i
|
||||
|
||||
# ポートを指定して起動
|
||||
docutranslate -i -p 8011
|
||||
|
||||
# クロスオリジンリクエストを許可する
|
||||
# CORSリクエストを許可
|
||||
docutranslate -i --cors
|
||||
|
||||
# 環境変数でポートを指定することもできます
|
||||
|
||||
# 環境変数でポートを指定することも可能
|
||||
export DOCUTRANSLATE_PORT=8011
|
||||
docutranslate -i
|
||||
```
|
||||
|
||||
- **インタラクティブインターフェース**: サービス起動後、ブラウザで`http://127.0.0.1:8010`(または指定したポート)にアクセスしてください。
|
||||
- **APIドキュメント**: 完全なAPIドキュメント(Swagger UI)は`http://127.0.0.1:8010/docs`にあります。
|
||||
- **インタラクティブ画面**: サービス起動後、ブラウザで `http://127.0.0.1:8010` (または指定したポート) にアクセスしてください。
|
||||
- **API ドキュメント**: 完全な API ドキュメント (Swagger UI) は `http://127.0.0.1:8010/docs` にあります。
|
||||
|
||||
## 使用方法
|
||||
|
||||
### 例1:PDFファイルの翻訳 (`MarkdownBasedWorkflow`を使用)
|
||||
### 例 1: PDFファイルの翻訳 (`MarkdownBasedWorkflow` を使用)
|
||||
|
||||
これは最も一般的な使用例です。`minerU`エンジンを使用してPDFをMarkdownに変換し、LLMで翻訳します。ここでは非同期方式を例にとります。
|
||||
これが最も一般的なユースケースです。`minerU` エンジンを使用して PDF を Markdown に変換し、その後 LLM を使用して翻訳します。ここでは非同期方式を例にします。
|
||||
|
||||
```python
|
||||
import asyncio
|
||||
@@ -163,51 +159,67 @@ from docutranslate.exporter.md.md2html_exporter import MD2HTMLExporterConfig
|
||||
|
||||
|
||||
async def main():
|
||||
# 1. 翻訳機の設定を構築
|
||||
# 1. 翻訳機設定の構築
|
||||
translator_config = MDTranslatorConfig(
|
||||
base_url="https://open.bigmodel.cn/api/paas/v4", # AIプラットフォームのBase URL
|
||||
api_key="YOUR_ZHIPU_API_KEY", # AIプラットフォームのAPIキー
|
||||
model_id="glm-4-air", # モデルID
|
||||
base_url="https://open.bigmodel.cn/api/paas/v4", # AIプラットフォーム Base URL
|
||||
api_key="YOUR_ZHIPU_API_KEY", # AIプラットフォーム API Key
|
||||
model_id="glm-4-air", # モデル ID
|
||||
to_lang="English", # ターゲット言語
|
||||
chunk_size=3000, # テキストのチャンクサイズ
|
||||
concurrent=10, # 並列数
|
||||
# glossary_generate_enable=True, # 用語集の自動生成を有効にする
|
||||
chunk_size=3000, # テキスト分割サイズ
|
||||
concurrent=10, # 同時並行数
|
||||
# glossary_generate_enable=True, # 用語集自動生成を有効化
|
||||
# glossary_dict={"Jobs":"ジョブズ"}, # 用語集を渡す
|
||||
# system_proxy_enable=True,# システムプロキシを有効にする
|
||||
# system_proxy_enable=True,# システムプロキシを有効化
|
||||
)
|
||||
|
||||
# 2. コンバーターの設定を構築 (minerUを使用)
|
||||
# 2. コンバータ設定の構築 (minerUを使用)
|
||||
converter_config = ConverterMineruConfig(
|
||||
mineru_token="YOUR_MINERU_TOKEN", # あなたのminerUトークン
|
||||
formula_ocr=True # 数式認識を有効にする
|
||||
mineru_token="YOUR_MINERU_TOKEN", # あなたの minerU Token
|
||||
formula_ocr=True # 数式認識を有効化
|
||||
)
|
||||
|
||||
# 3. メインワークフローの設定を構築
|
||||
# 3. メインワークフロー設定の構築
|
||||
workflow_config = MarkdownBasedWorkflowConfig(
|
||||
convert_engine="mineru", # 解析エンジンを指定
|
||||
converter_config=converter_config, # コンバーター設定を渡す
|
||||
converter_config=converter_config, # コンバータ設定を渡す
|
||||
translator_config=translator_config, # 翻訳機設定を渡す
|
||||
html_exporter_config=MD2HTMLExporterConfig(cdn=True) # HTMLエクスポート設定
|
||||
)
|
||||
|
||||
# ローカルデプロイされたmineruサービスを使用する場合
|
||||
# from docutranslate.converter.x2md.converter_mineru_deploy import ConverterMineruDeployConfig
|
||||
# converter_config = ConverterMineruDeployConfig(
|
||||
# base_url = "http://127.0.0.1:8000",
|
||||
# output_dir= "./output",# mineruの制限により、解析後のファイルはoutput_dir下に保存されるため、定期的なクリーニングが必要です
|
||||
# backend= "pipeline",
|
||||
# start_page_id = 0,
|
||||
# end_page_id = 99999,
|
||||
# )
|
||||
# workflow_config = MarkdownBasedWorkflowConfig(
|
||||
# convert_engine="mineru_deploy", # 解析エンジンを指定
|
||||
# converter_config=converter_config, # コンバータ設定を渡す
|
||||
# translator_config=translator_config, # 翻訳機設定を渡す
|
||||
# html_exporter_config=MD2HTMLExporterConfig(cdn=True) # HTMLエクスポート設定
|
||||
# )
|
||||
|
||||
# 4. ワークフローをインスタンス化
|
||||
# 4. ワークフローのインスタンス化
|
||||
workflow = MarkdownBasedWorkflow(config=workflow_config)
|
||||
|
||||
# 5. ファイルを読み込んで翻訳を実行
|
||||
# 5. ファイルの読み込みと翻訳実行
|
||||
print("ファイルの読み込みと翻訳を開始します...")
|
||||
workflow.read_path("path/to/your/document.pdf")
|
||||
await workflow.translate_async()
|
||||
# または同期方式を使用
|
||||
# workflow.translate()
|
||||
print("翻訳が完了しました!")
|
||||
print("翻訳完了!")
|
||||
|
||||
# 6. 結果を保存
|
||||
# 6. 結果の保存
|
||||
workflow.save_as_html(name="translated_document.html")
|
||||
workflow.save_as_markdown_zip(name="translated_document.zip")
|
||||
workflow.save_as_markdown(name="translated_document.md") # 画像が埋め込まれたMarkdown
|
||||
workflow.save_as_markdown(name="translated_document.md") # 画像埋め込みMarkdown
|
||||
print("ファイルは ./output フォルダに保存されました。")
|
||||
|
||||
# または直接コンテンツ文字列を取得
|
||||
# またはコンテンツ文字列を直接取得
|
||||
html_content = workflow.export_to_html()
|
||||
html_content = workflow.export_to_markdown()
|
||||
# print(html_content)
|
||||
@@ -217,9 +229,9 @@ if __name__ == "__main__":
|
||||
asyncio.run(main())
|
||||
```
|
||||
|
||||
### 例2:TXTファイルの翻訳 (`TXTWorkflow`を使用)
|
||||
### 例 2: TXTファイルの翻訳 (`TXTWorkflow` を使用)
|
||||
|
||||
プレーンテキストファイルの場合、ドキュメント解析(変換)ステップが不要なため、プロセスはより簡単です。ここでは非同期方式を例にとります。
|
||||
プレーンテキストファイルの場合、ドキュメント解析(変換)ステップが不要なため、プロセスはより簡単です。ここでは非同期方式を例にします。
|
||||
|
||||
```python
|
||||
import asyncio
|
||||
@@ -229,34 +241,34 @@ from docutranslate.exporter.txt.txt2html_exporter import TXT2HTMLExporterConfig
|
||||
|
||||
|
||||
async def main():
|
||||
# 1. 翻訳機の設定を構築
|
||||
# 1. 翻訳機設定の構築
|
||||
translator_config = TXTTranslatorConfig(
|
||||
base_url="https://api.openai.com/v1/",
|
||||
api_key="YOUR_OPENAI_API_KEY",
|
||||
model_id="gpt-4o",
|
||||
to_lang="日本語",
|
||||
to_lang="中文",
|
||||
)
|
||||
|
||||
# 2. メインワークフローの設定を構築
|
||||
# 2. メインワークフロー設定の構築
|
||||
workflow_config = TXTWorkflowConfig(
|
||||
translator_config=translator_config,
|
||||
html_exporter_config=TXT2HTMLExporterConfig(cdn=True)
|
||||
)
|
||||
|
||||
# 3. ワークフローをインスタンス化
|
||||
# 3. ワークフローのインスタンス化
|
||||
workflow = TXTWorkflow(config=workflow_config)
|
||||
|
||||
# 4. ファイルを読み込んで翻訳を実行
|
||||
# 4. ファイルの読み込みと翻訳実行
|
||||
workflow.read_path("path/to/your/notes.txt")
|
||||
await workflow.translate_async()
|
||||
# または同期方式を使用
|
||||
# または同期メソッドを使用
|
||||
# workflow.translate()
|
||||
|
||||
# 5. 結果を保存
|
||||
# 5. 結果の保存
|
||||
workflow.save_as_txt(name="translated_notes.txt")
|
||||
print("TXTファイルが保存されました。")
|
||||
|
||||
# 翻訳後のプレーンテキストをエクスポートすることもできます
|
||||
# 翻訳後のテキストをエクスポートすることも可能
|
||||
text = workflow.export_to_txt()
|
||||
|
||||
|
||||
@@ -264,10 +276,9 @@ if __name__ == "__main__":
|
||||
asyncio.run(main())
|
||||
```
|
||||
|
||||
### 例3:JSONファイルの翻訳 (`JsonWorkflow`を使用)
|
||||
### 例 3: JSONファイルの翻訳 (`JsonWorkflow` を使用)
|
||||
|
||||
ここでは非同期方式を例にとります。`JsonTranslatorConfig`の`json_paths`項目で、翻訳したいJSONパス(`jsonpath-ng`
|
||||
構文仕様に準拠)を指定する必要があります。JSONパスに一致する値のみが翻訳されます。
|
||||
ここでは非同期方式を例にします。`JsonTranslatorConfig` の `json_paths` 項目で、翻訳対象のJSONパス(jsonpath-ng構文に準拠)を指定する必要があります。パスに一致する値のみが翻訳されます。
|
||||
|
||||
```python
|
||||
import asyncio
|
||||
@@ -278,35 +289,35 @@ from docutranslate.workflow.json_workflow import JsonWorkflowConfig, JsonWorkflo
|
||||
|
||||
|
||||
async def main():
|
||||
# 1. 翻訳機の設定を構築
|
||||
# 1. 翻訳機設定の構築
|
||||
translator_config = JsonTranslatorConfig(
|
||||
base_url="https://api.openai.com/v1/",
|
||||
api_key="YOUR_OPENAI_API_KEY",
|
||||
model_id="gpt-4o",
|
||||
to_lang="日本語",
|
||||
json_paths=["$.*", "$.name"] # jsonpath-ng構文に準拠し、一致するパスの値が翻訳されます
|
||||
to_lang="中文",
|
||||
json_paths=["$.*", "$.name"] # jsonpath-ngパス構文に準拠、一致するパスの値が翻訳されます
|
||||
)
|
||||
|
||||
# 2. メインワークフローの設定を構築
|
||||
# 2. メインワークフロー設定の構築
|
||||
workflow_config = JsonWorkflowConfig(
|
||||
translator_config=translator_config,
|
||||
html_exporter_config=Json2HTMLExporterConfig(cdn=True)
|
||||
)
|
||||
|
||||
# 3. ワークフローをインスタンス化
|
||||
# 3. ワークフローのインスタンス化
|
||||
workflow = JsonWorkflow(config=workflow_config)
|
||||
|
||||
# 4. ファイルを読み込んで翻訳を実行
|
||||
# 4. ファイルの読み込みと翻訳実行
|
||||
workflow.read_path("path/to/your/notes.json")
|
||||
await workflow.translate_async()
|
||||
# または同期方式を使用
|
||||
# または同期メソッドを使用
|
||||
# workflow.translate()
|
||||
|
||||
# 5. 結果を保存
|
||||
# 5. 結果の保存
|
||||
workflow.save_as_json(name="translated_notes.json")
|
||||
print("JSONファイルが保存されました。")
|
||||
print("jsonファイルが保存されました。")
|
||||
|
||||
# 翻訳後のJSONテキストをエクスポートすることもできます
|
||||
# 翻訳後のjsonテキストをエクスポートすることも可能
|
||||
text = workflow.export_to_json()
|
||||
|
||||
|
||||
@@ -314,9 +325,9 @@ if __name__ == "__main__":
|
||||
asyncio.run(main())
|
||||
```
|
||||
|
||||
### 例4:DOCXファイルの翻訳 (`DocxWorkflow`を使用)
|
||||
### 例 4: docxファイルの翻訳 (`DocxWorkflow` を使用)
|
||||
|
||||
ここでは非同期方式を例にとります。
|
||||
ここでは非同期方式を例にします。
|
||||
|
||||
```python
|
||||
import asyncio
|
||||
@@ -327,36 +338,36 @@ from docutranslate.workflow.docx_workflow import DocxWorkflowConfig, DocxWorkflo
|
||||
|
||||
|
||||
async def main():
|
||||
# 1. 翻訳機の設定を構築
|
||||
# 1. 翻訳機設定の構築
|
||||
translator_config = DocxTranslatorConfig(
|
||||
base_url="https://api.openai.com/v1/",
|
||||
api_key="YOUR_OPENAI_API_KEY",
|
||||
model_id="gpt-4o",
|
||||
to_lang="日本語",
|
||||
insert_mode="replace", # 選択肢: "replace", "append", "prepend"
|
||||
separator="\n", # "append", "prepend"モードで使用する区切り文字
|
||||
to_lang="中文",
|
||||
insert_mode="replace", # 選択肢 "replace" (置換), "append" (追記), "prepend" (前置)
|
||||
separator="\n", # "append", "prepend" モード時の区切り文字
|
||||
)
|
||||
|
||||
# 2. メインワークフローの設定を構築
|
||||
# 2. メインワークフロー設定の構築
|
||||
workflow_config = DocxWorkflowConfig(
|
||||
translator_config=translator_config,
|
||||
html_exporter_config=Docx2HTMLExporterConfig(cdn=True)
|
||||
)
|
||||
|
||||
# 3. ワークフローをインスタンス化
|
||||
# 3. ワークフローのインスタンス化
|
||||
workflow = DocxWorkflow(config=workflow_config)
|
||||
|
||||
# 4. ファイルを読み込んで翻訳を実行
|
||||
# 4. ファイルの読み込みと翻訳実行
|
||||
workflow.read_path("path/to/your/notes.docx")
|
||||
await workflow.translate_async()
|
||||
# または同期方式を使用
|
||||
# または同期メソッドを使用
|
||||
# workflow.translate()
|
||||
|
||||
# 5. 結果を保存
|
||||
# 5. 結果の保存
|
||||
workflow.save_as_docx(name="translated_notes.docx")
|
||||
print("docxファイルが保存されました。")
|
||||
|
||||
# 翻訳後のdocxのバイナリデータをエクスポートすることもできます
|
||||
# 翻訳後のdocxバイナリをエクスポートすることも可能
|
||||
text_bytes = workflow.export_to_docx()
|
||||
|
||||
|
||||
@@ -364,9 +375,9 @@ if __name__ == "__main__":
|
||||
asyncio.run(main())
|
||||
```
|
||||
|
||||
### 例5:XLSXファイルの翻訳 (`XlsxWorkflow`を使用)
|
||||
### 例 5: xlsxファイルの翻訳 (`XlsxWorkflow` を使用)
|
||||
|
||||
ここでは非同期方式を例にとります。
|
||||
ここでは非同期方式を例にします。
|
||||
|
||||
```python
|
||||
import asyncio
|
||||
@@ -377,36 +388,36 @@ from docutranslate.workflow.xlsx_workflow import XlsxWorkflowConfig, XlsxWorkflo
|
||||
|
||||
|
||||
async def main():
|
||||
# 1. 翻訳機の設定を構築
|
||||
# 1. 翻訳機設定の構築
|
||||
translator_config = XlsxTranslatorConfig(
|
||||
base_url="https://api.openai.com/v1/",
|
||||
api_key="YOUR_OPENAI_API_KEY",
|
||||
model_id="gpt-4o",
|
||||
to_lang="日本語",
|
||||
insert_mode="replace", # 選択肢: "replace", "append", "prepend"
|
||||
separator="\n", # "append", "prepend"モードで使用する区切り文字
|
||||
to_lang="中文",
|
||||
insert_mode="replace", # 選択肢 "replace", "append", "prepend"
|
||||
separator="\n", # "append", "prepend" モード時の区切り文字
|
||||
)
|
||||
|
||||
# 2. メインワークフローの設定を構築
|
||||
# 2. メインワークフロー設定の構築
|
||||
workflow_config = XlsxWorkflowConfig(
|
||||
translator_config=translator_config,
|
||||
html_exporter_config=Xlsx2HTMLExporterConfig(cdn=True)
|
||||
)
|
||||
|
||||
# 3. ワークフローをインスタンス化
|
||||
# 3. ワークフローのインスタンス化
|
||||
workflow = XlsxWorkflow(config=workflow_config)
|
||||
|
||||
# 4. ファイルを読み込んで翻訳を実行
|
||||
# 4. ファイルの読み込みと翻訳実行
|
||||
workflow.read_path("path/to/your/notes.xlsx")
|
||||
await workflow.translate_async()
|
||||
# または同期方式を使用
|
||||
# または同期メソッドを使用
|
||||
# workflow.translate()
|
||||
|
||||
# 5. 結果を保存
|
||||
# 5. 結果の保存
|
||||
workflow.save_as_xlsx(name="translated_notes.xlsx")
|
||||
print("xlsxファイルが保存されました。")
|
||||
|
||||
# 翻訳後のxlsxのバイナリデータをエクスポートすることもできます
|
||||
# 翻訳後のxlsxバイナリをエクスポートすることも可能
|
||||
text_bytes = workflow.export_to_xlsx()
|
||||
|
||||
|
||||
@@ -414,9 +425,9 @@ if __name__ == "__main__":
|
||||
asyncio.run(main())
|
||||
```
|
||||
|
||||
### 例 5: その他のワークフローの設定項目 (`HtmlWorkflow`、`EpubWorkflow` の使用)
|
||||
### 例 6: その他のワークフロー設定 (`HtmlWorkflow`、`EpubWorkflow` を使用)
|
||||
|
||||
以下は非同期モードの使用例です。
|
||||
ここでは非同期方式を例にします。
|
||||
|
||||
```python
|
||||
# HtmlWorkflow
|
||||
@@ -425,17 +436,17 @@ from docutranslate.workflow.html_workflow import HtmlWorkflowConfig, HtmlWorkflo
|
||||
|
||||
|
||||
async def html():
|
||||
# 1. 翻訳機の設定を作成
|
||||
# 1. 翻訳機設定の構築
|
||||
translator_config = HtmlTranslatorConfig(
|
||||
base_url="https://api.openai.com/v1/",
|
||||
api_key="YOUR_OPENAI_API_KEY",
|
||||
model_id="gpt-4o",
|
||||
to_lang="中国語",
|
||||
insert_mode="replace", # 選択肢: "replace", "append", "prepend"
|
||||
separator="\n", # "append", "prepend" モードで使用される区切り文字
|
||||
to_lang="中文",
|
||||
insert_mode="replace", # 選択肢 "replace", "append", "prepend"
|
||||
separator="\n", # "append", "prepend" モード時の区切り文字
|
||||
)
|
||||
|
||||
# 2. メインワークフローの設定を作成
|
||||
# 2. メインワークフロー設定の構築
|
||||
workflow_config = HtmlWorkflowConfig(
|
||||
translator_config=translator_config,
|
||||
)
|
||||
@@ -449,17 +460,17 @@ from docutranslate.workflow.epub_workflow import EpubWorkflowConfig, EpubWorkflo
|
||||
|
||||
|
||||
async def epub():
|
||||
# 1. 翻訳機の設定を作成
|
||||
# 1. 翻訳機設定の構築
|
||||
translator_config = EpubTranslatorConfig(
|
||||
base_url="https://api.openai.com/v1/",
|
||||
api_key="YOUR_OPENAI_API_KEY",
|
||||
model_id="gpt-4o",
|
||||
to_lang="中国語",
|
||||
insert_mode="replace", # 選択肢: "replace", "append", "prepend"
|
||||
separator="\n", # "append", "prepend" モードで使用される区切り文字
|
||||
to_lang="中文",
|
||||
insert_mode="replace", # 選択肢 "replace", "append", "prepend"
|
||||
separator="\n", # "append", "prepend" モード時の区切り文字
|
||||
)
|
||||
|
||||
# 2. メインワークフローの設定を作成
|
||||
# 2. メインワークフロー設定の構築
|
||||
workflow_config = EpubWorkflowConfig(
|
||||
translator_config=translator_config,
|
||||
html_exporter_config=Epub2HTMLExporterConfig(cdn=True),
|
||||
@@ -469,60 +480,57 @@ async def epub():
|
||||
|
||||
## 前提条件と設定詳細
|
||||
|
||||
### 1. 大規模モデルAPIキーの取得
|
||||
### 1. 大規模モデル API Key の取得
|
||||
|
||||
翻訳機能は大規模言語モデルに依存しているため、対応するAIプラットフォームから`base_url`、`api_key`、`model_id`を取得する必要があります。
|
||||
翻訳機能は大規模言語モデル(LLM)に依存しており、対応するAIプラットフォームから `base_url`、`api_key`、`model_id` を取得する必要があります。
|
||||
|
||||
> 推奨モデル:火山引擎の`doubao-seed-1-6-flash`、`doubao-seed-1-6`シリーズ、智譜の`glm-4-flash`、阿里雲の`qwen-plus`、
|
||||
`qwen-flash`、deepseekの`deepseek-chat`など。
|
||||
> 推奨モデル:Volcengineの `doubao-seed-1-6-flash`、`doubao-seed-1-6` シリーズ、Zhipuの `glm-4-flash`、Alibaba Cloudの `qwen-plus`、`qwen-flash`、DeepSeekの `deepseek-chat` など。
|
||||
|
||||
> [302.AI](https://share.302.ai/BgRLAe)👈 このリンクから登録で1ドル分の無料クレジットを提供
|
||||
> [302.AI](https://share.302.ai/BgRLAe)👈このリンクから登録すると、1ドルの無料クレジットがもらえます。
|
||||
|
||||
| プラットフォーム名 | APIキー取得 | baseurl |
|
||||
|:-----------|:---------------------------------------------------------------------------------------------|:-----------------------------------------------------------|
|
||||
| ollama | | `http://127.0.0.1:11434/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` |
|
||||
| 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/` |
|
||||
| deepseek | [ここをクリックして取得](https://platform.deepseek.com/api_keys) | `https://api.deepseek.com/v1` |
|
||||
| 智譜ai | [ここをクリックして取得](https://open.bigmodel.cn/usercenter/apikeys) | `https://open.bigmodel.cn/api/paas/v4` |
|
||||
| 騰訊混元 | [ここをクリックして取得](https://console.cloud.tencent.com/hunyuan/api-key) | `https://api.hunyuan.cloud.tencent.com/v1` |
|
||||
| 阿里雲百煉 | [ここをクリックして取得](https://bailian.console.aliyun.com/?tab=model#/api-key) | `https://dashscope.aliyuncs.com/compatible-mode/v1` |
|
||||
| 火山引擎 | [ここをクリックして取得](https://console.volcengine.com/ark/region:ark+cn-beijing/apiKey?apikey=%7B%7D) | `https://ark.cn-beijing.volces.com/api/v3` |
|
||||
| 硅基流動 | [ここをクリックして取得](https://cloud.siliconflow.cn/account/ak) | `https://api.siliconflow.cn/v1` |
|
||||
| DMXAPI | [ここをクリックして取得](https://www.dmxapi.cn/token) | `https://www.dmxapi.cn/v1` |
|
||||
| 聚光AI | [ここをクリックして取得](https://ai.juguang.chat/console/token) | `https://ai.juguang.chat/v1` |
|
||||
| プラットフォーム名 | API Keyの取得 | baseurl |
|
||||
|:---|:---|:---|
|
||||
| ollama | | http://127.0.0.1:11434/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 |
|
||||
| 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/ |
|
||||
| deepseek | [取得はこちら](https://platform.deepseek.com/api_keys) | https://api.deepseek.com/v1 |
|
||||
| 智譜ai (Zhipu) | [取得はこちら](https://open.bigmodel.cn/usercenter/apikeys) | https://open.bigmodel.cn/api/paas/v4 |
|
||||
| テンセント混元 | [取得はこちら](https://console.cloud.tencent.com/hunyuan/api-key) | https://api.hunyuan.cloud.tencent.com/v1 |
|
||||
| アリババ百錬 | [取得はこちら](https://bailian.console.aliyun.com/?tab=model#/api-key) | https://dashscope.aliyuncs.com/compatible-mode/v1 |
|
||||
| 火山引擎 (Volcengine) | [取得はこちら](https://console.volcengine.com/ark/region:ark+cn-beijing/apiKey?apikey=%7B%7D) | https://ark.cn-beijing.volces.com/api/v3 |
|
||||
| SiliconFlow | [取得はこちら](https://cloud.siliconflow.cn/account/ak) | https://api.siliconflow.cn/v1 |
|
||||
| DMXAPI | [取得はこちら](https://www.dmxapi.cn/token) | https://www.dmxapi.cn/v1 |
|
||||
| 聚光AI | [取得はこちら](https://ai.juguang.chat/console/token) | https://ai.juguang.chat/v1 |
|
||||
|
||||
### 2. PDF解析エンジン(PDF翻訳が不要な場合は無視してください)
|
||||
### 2. PDF解析エンジン(PDF翻訳が不要な場合は無視して構いません)
|
||||
|
||||
#### 2.1 minerUトークンの取得(オンラインPDF解析、無料、推奨)
|
||||
### 2.1 minerU Token の取得 (オンラインPDF解析、無料、推奨)
|
||||
|
||||
ドキュメント解析エンジンとして`mineru`を選択した場合(`convert_engine="mineru"`)、無料のトークンを申請する必要があります。
|
||||
ドキュメント解析エンジンとして `mineru` を選択する場合(`convert_engine="mineru"`)、無料の Token を申請する必要があります。
|
||||
|
||||
1. [minerU公式サイト](https://mineru.net/apiManage/docs)にアクセスして登録し、APIを申請します。
|
||||
2. [APIトークン管理画面](https://mineru.net/apiManage/token)で新しいAPIトークンを作成します。
|
||||
1. [minerU 公式サイト](https://mineru.net/apiManage/docs) にアクセスし、登録して API を申請します。
|
||||
2. [API Token 管理画面](https://mineru.net/apiManage/token) で新しい API Token を作成します。
|
||||
|
||||
> **注意**: minerUトークンの有効期間は14日間です。期限が切れたら再作成してください。
|
||||
> **注意**: minerU Token の有効期限は14日間です。期限切れ後は再作成してください。
|
||||
|
||||
#### 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` モデルダウンロード時のネットワーク問題解決策:**
|
||||
|
||||
1. **Hugging Faceミラーの設定(推奨)**:
|
||||
* **方法A(環境変数)**: システム環境変数`HF_ENDPOINT`を設定し、IDEまたはターミナルを再起動します。
|
||||
```
|
||||
HF_ENDPOINT=https://hf-mirror.com
|
||||
```
|
||||
1. **Hugging Face ミラーの設定 (推奨)**:
|
||||
|
||||
* **方法B(コード内で設定)**: Pythonスクリプトの冒頭に以下のコードを追加します。
|
||||
* **方法 A (環境変数)**: システム環境変数 `HF_ENDPOINT` を設定し、IDEまたはターミナルを再起動します。
|
||||
```
|
||||
HF_ENDPOINT=https://hf-mirror.com
|
||||
```
|
||||
* **方法 B (コード内で設定)**: Pythonスクリプトの冒頭に以下のコードを追加します。
|
||||
|
||||
```python
|
||||
import os
|
||||
@@ -530,17 +538,17 @@ import os
|
||||
os.environ['HF_ENDPOINT'] = 'https://hf-mirror.com'
|
||||
```
|
||||
|
||||
2. **オフラインでの使用(モデルパッケージを事前にダウンロード)**:
|
||||
* [GitHub Releases](https://github.com/xunbu/docutranslate/releases)から`docling_artifact.zip`をダウンロードします。
|
||||
* プロジェクトディレクトリに解凍します。
|
||||
2. **オフライン使用 (事前にモデルパッケージをダウンロード)**:
|
||||
|
||||
* 設定でモデルのパスを指定します(モデルがスクリプトと同じディレクトリにない場合):
|
||||
* [GitHub Releases](https://github.com/xunbu/docutranslate/releases) から `docling_artifact.zip` をダウンロードします。
|
||||
* プロジェクトディレクトリに解凍します。
|
||||
* 設定でモデルパスを指定します(モデルがスクリプトと同階層にない場合):
|
||||
|
||||
```python
|
||||
from docutranslate.converter.x2md.converter_docling import ConverterDoclingConfig
|
||||
|
||||
converter_config = ConverterDoclingConfig(
|
||||
artifact="./docling_artifact", # 解凍したフォルダへのパス
|
||||
artifact="./docling_artifact", # 解凍後のフォルダを指定
|
||||
code_ocr=True,
|
||||
formula_ocr=True
|
||||
)
|
||||
@@ -548,33 +556,29 @@ converter_config = ConverterDoclingConfig(
|
||||
|
||||
## FAQ
|
||||
|
||||
**Q: なぜ翻訳結果が原文のままなのですか?**
|
||||
A: ログにどのようなエラーが出ているか確認してください。通常はAIプラットフォームの料金未払いやネットワークの問題(システムプロキシを有効にする必要があるか確認)が原因です。
|
||||
**Q: なぜ翻訳結果が原文のままなのですか?**
|
||||
A: ログを確認し、エラー内容をチェックしてください。通常、AIプラットフォームの残高不足か、ネットワークの問題(システムプロキシを有効にする必要があるか確認)です。
|
||||
|
||||
**Q: 8010ポートが使用中です。どうすればいいですか?**
|
||||
A: `-p`パラメータで新しいポートを指定するか、`DOCUTRANSLATE_PORT`環境変数を設定してください。
|
||||
**Q: 8010ポートが使用されていますが、どうすればいいですか?**
|
||||
A: `-p` パラメータを使用して新しいポートを指定するか、`DOCUTRANSLATE_PORT` 環境変数を設定してください。
|
||||
|
||||
**Q: スキャンされたPDFの翻訳はサポートしていますか?**
|
||||
A: はい、サポートしています。強力なOCR機能を持つ`mineru`解析エンジンを使用してください。
|
||||
**Q: スキャンされたPDFの翻訳はサポートされていますか?**
|
||||
A: はい、サポートされています。強力なOCR機能を備えた `mineru` 解析エンジンを使用してください。
|
||||
|
||||
**Q: なぜ最初のPDF翻訳がとても遅いのですか?**
|
||||
A: `docling`エンジンを使用している場合、初回実行時にHugging
|
||||
Faceからモデルをダウンロードする必要があります。このプロセスを高速化するには、上記の「ネットワーク問題解決策」を参照してください。
|
||||
**Q: 最初のPDF翻訳が非常に遅いのはなぜですか?**
|
||||
A: `docling` エンジンを使用している場合、初回実行時に Hugging Face からモデルをダウンロードする必要があるためです。上記の「ネットワーク問題解決策」を参照して、このプロセスを高速化してください。
|
||||
|
||||
**Q: イントラネット(オフライン)環境で使用するにはどうすればいいですか?**
|
||||
A: 完全に可能です。以下の条件を満たす必要があります:
|
||||
**Q: イントラネット(オフライン)環境で使用する方法は?**
|
||||
A: 可能です。以下の条件を満たす必要があります:
|
||||
|
||||
1. **ローカルLLM**: [Ollama](https://ollama.com/)や[LM Studio](https://lmstudio.ai/)などのツールを使用してローカルに言語モデルをデプロイし、
|
||||
`TranslatorConfig`にローカルモデルの`base_url`を記入します。
|
||||
2. **ローカルPDF解析エンジン**(PDF解析にのみ必要): `docling`エンジンを使用し、上記の「オフラインでの使用」の指示に従って事前にモデルパッケージをダウンロードします。
|
||||
1. **ローカルLLM**: [Ollama](https://ollama.com/) や [LM Studio](https://lmstudio.ai/) などのツールを使用してローカルに言語モデルをデプロイし、`TranslatorConfig` にローカルモデルの `base_url` を入力します。
|
||||
2. **ローカルPDF解析エンジン**(PDF解析が必要な場合のみ): `docling` エンジンを使用し、上記の「オフライン使用」の指示に従って事前にモデルパッケージをダウンロードしてください。
|
||||
|
||||
**Q: PDF解析のキャッシュメカニズムはどのように機能しますか?**
|
||||
A: `MarkdownBasedWorkflow`
|
||||
は、ドキュメント解析(ファイルからMarkdownへの変換)の結果を自動的にキャッシュし、時間とリソースの重複消費を防ぎます。キャッシュはデフォルトでメモリに保存され、直近10回の解析が記録されます。
|
||||
`DOCUTRANSLATE_CACHE_NUM`環境変数でキャッシュ数を変更できます。
|
||||
**Q: PDF解析のキャッシュメカニズムはどのように機能しますか?**
|
||||
A: `MarkdownBasedWorkflow` は、ドキュメント解析(ファイルからMarkdownへの変換)の結果を自動的にキャッシュし、時間とリソースを消費する重複解析を回避します。キャッシュはデフォルトでメモリに保存され、最近の10件の解析を記録します。`DOCUTRANSLATE_CACHE_NUM` 環境変数でキャッシュ数を変更できます。
|
||||
|
||||
**Q: ソフトウェアがプロキシを経由するようにするにはどうすればいいですか?**
|
||||
A: デフォルトではシステムプロキシを使用しません。`TranslatorConfig`で`system_proxy_enable=True`と設定することで有効にできます。
|
||||
**Q: ソフトウェアでプロキシを使用するにはどうすればいいですか?**
|
||||
A: ソフトウェアはデフォルトではシステムプロキシを使用しません。`TranslatorConfig` で `system_proxy_enable=True` を設定することで、システムプロキシを有効にできます。
|
||||
|
||||
## Star History
|
||||
|
||||
@@ -586,10 +590,10 @@ A: デフォルトではシステムプロキシを使用しません。`Transla
|
||||
</picture>
|
||||
</a>
|
||||
|
||||
## ご支援について
|
||||
## 寄付・サポート
|
||||
|
||||
作者へのご支援を歓迎します。備考欄に支援の理由を記載していただけると幸いです。
|
||||
著者をサポートしてくださる方は、備考欄に理由を書いていただけると嬉しいです。
|
||||
|
||||
<p align="center">
|
||||
<img src="./images/赞赏码.jpg" alt="支援用QRコード" style="width: 250px;">
|
||||
<img src="./images/赞赏码.jpg" alt="寄付コード" style="width: 250px;">
|
||||
</p>
|
||||
Reference in New Issue
Block a user