🚀 Amazon Bedrockを使用したPowerPoint翻訳ツール
このツールは、Amazon Bedrockのモデルを活用した強力なPowerPoint翻訳ツールです。高品質な翻訳を実現し、単独のコマンドラインツールとして、またはFastMCP(Fast Model Context Protocol)サービスとして、Amazon Q DeveloperなどのAIアシスタントと統合して使用することができます。PowerPointプレゼンテーションの形式と構造を保持したまま翻訳を行います。
✨ 主な機能
- PowerPoint翻訳:PowerPointプレゼンテーション内のテキストコンテンツを翻訳します。
- Amazon Bedrock統合:Amazon Bedrockのモデルを使用して高品質な翻訳を実現します。
- 形式保持:元の形式、レイアウト、スタイルを維持します。
- 単独使用とMCPサポート:コマンドラインツールとして使用するか、FastMCPを介してAIアシスタントと統合することができます。
- 複数言語対応:様々な言語間の翻訳をサポートします。
- バッチ処理:複数のスライドとテキスト要素を効率的に処理できます。
- 選択的翻訳:プレゼンテーション全体または特定のスライドを翻訳できます。
💻 使用例
翻訳
PowerPoint翻訳ツールは、内容を正確に翻訳しながら元の形式を保持します。
元の英語のプレゼンテーションスライド 複雑なレイアウト付き |
同じプレゼンテーションを韓国語に翻訳 形式とレイアウトを保持 |
Kiro MCPの例
コマンドの使用例
プレゼンテーション全体を翻訳する場合
uv run python server.py --translate --input-file presentation.pptx --target-language ko
特定のスライドを翻訳する場合
uv run python server.py --translate-slides "1,3,5" --input-file presentation.pptx --target-language ja
スライド情報を取得する場合
uv run python server.py --slide-info --input-file presentation.pptx
📦 インストール
前提条件
- Python 3.11以上
- BedrockにアクセスできるAWSアカウント
- 適切な資格情報で構成されたAWS CLI
- Amazon Bedrockのモデル(Claude、Novaなど)へのアクセス
AWS資格情報の設定
このサービスを使用する前に、AWS資格情報が正しく構成されていることを確認してください。いくつかのオプションがあります。
- AWS CLI構成(推奨)
aws configure
これにより、以下の情報を入力するように促されます。
- AWSアクセスキーID
- AWSシークレットアクセスキー
- デフォルトのリージョン名
- デフォルトの出力形式
- AWSプロファイル構成
aws configure --profile your-profile-name
- 環境変数(必要な場合)
export AWS_ACCESS_KEY_ID=your_access_key
export AWS_SECRET_ACCESS_KEY=your_secret_key
export AWS_DEFAULT_REGION=us-east-1
- IAMロール(EC2インスタンス上で実行する場合)
サービスは自動的に構成されたAWS資格情報を使用します。.envファイルで使用するプロファイルを指定することができます。
インストール手順
- リポジトリをクローンする
git clone <repository-url>
cd ppt-translator
- uvを使用して依存関係をインストールする(推奨)
uv sync
または、pipを使用する場合
pip install -r requirements.txt
- 環境変数を設定する
cp .env.example .env
.envファイルを編集して、以下のように設定します。
# AWS設定
AWS_REGION=us-east-1
AWS_PROFILE=default
# 翻訳設定
DEFAULT_TARGET_LANGUAGE=ko
BEDROCK_MODEL_ID=us.anthropic.claude-3-7-sonnet-20250219-v1:0
# 翻訳設定
MAX_TOKENS=4000
TEMPERATURE=0.1
ENABLE_POLISHING=true
BATCH_SIZE=20
CONTEXT_THRESHOLD=5
# デバッグ設定
DEBUG=false
注意:aws configureを使用してAWS資格情報(アクセスキーIDとシークレットアクセスキー)をすでに構成している場合は、.envファイルには必要ありません。サービスは自動的にAWS CLIの資格情報を使用します。
🚀 クイックスタート
単独のコマンドラインでの使用
PowerPoint翻訳ツールは、コマンドラインから直接使用することができます。
uv run python server.py --translate --input-file orig.pptx --target-language ko
uv run python server.py --translate-slides "1,3,5" --input-file orig.pptx --target-language ko
uv run python server.py --translate-slides "2-4" --input-file orig.pptx --target-language ko
uv run python server.py --translate-slides "1,3-5,8" --input-file orig.pptx --target-language ko
uv run python server.py --slide-info --input-file orig.pptx
python server.py --translate --input-file orig.pptx --target-language ko
python server.py --translate-slides "1,3" --input-file orig.pptx --target-language ko
FastMCPサーバーモード(AIアシスタントとの統合用)
Amazon Q DeveloperなどのAIアシスタントと統合するために、FastMCPサーバーを起動します。
uv run python server.py --mcp
python server.py --mcp
FastMCPの設定(Amazon Q DeveloperとKiro)
1. インストール
Amazon Q DeveloperまたはKiroをまだインストールしていない場合は、以下を参照してください。
- Amazon Q Developer CLI: https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/command-line-installing.html
- Kiro: https://kiro.dev
2. FastMCPサーバーの構成
Q Developer FastMCP構成ファイルを作成または更新します。
Kiro
ユーザーレベル ~/.kiro/settings/mcp.json
Amazon Q Developer
macOS/Linuxの場合:~/.aws/amazonq/mcp.json
Windowsの場合:%APPDATA%\amazonq\mcp.json
PowerPoint翻訳ツールのFastMCPサーバー構成を追加します。
uvを使用する場合
{
"mcpServers": {
"ppt-translator": {
"command": "uv",
"args": ["run", "/path/to/ppt-translator/fastmcp_server.py"],
"env": {
"AWS_REGION": "us-east-1",
"AWS_PROFILE": "default",
"BEDROCK_MODEL_ID": "us.anthropic.claude-3-7-sonnet-20250219-v1:0"
},
"disabled": false,
"autoApprove": [
"translate_powerpoint",
"get_slide_info",
"get_slide_preview",
"translate_specific_slides"
]
}
}
}
Pythonを直接使用する場合の代替構成
{
"mcpServers": {
"ppt-translator": {
"command": "python",
"args": ["/path/to/ppt-translator/fastmcp_server.py"],
"env": {
"AWS_REGION": "us-east-1",
"AWS_PROFILE": "default",
"BEDROCK_MODEL_ID": "us.anthropic.claude-3-7-sonnet-20250219-v1:0"
},
"disabled": false,
"autoApprove": [
"translate_powerpoint",
"get_slide_info",
"get_slide_preview",
"translate_specific_slides"
]
}
}
}
重要:/path/to/ppt-translator/を実際のクローンしたリポジトリのパスに置き換えてください。
3. FastMCPサーバーの検証
FastMCPサーバーが正常に動作していることをテストします。
cd /path/to/ppt-translator
uv run python server.py --mcp --test
python server.py --mcp --test
4. PowerPoint翻訳の使用
接続が完了したら、以下のようなコマンドを使用できます(ユーザー入力は英語である必要はありません)。
Translate original.pptx to Korean
Please translate slides 10 to 13 of original.pptx into Japanese.
利用可能なFastMCPツール
FastMCPサーバーは以下のツールを提供します。
-
translate_powerpoint:PowerPointプレゼンテーション全体を翻訳します。
- パラメータ:
input_file:入力PowerPointファイルのパス(.pptx)
target_language:ターゲット言語コード(デフォルト:'ko')
output_file:翻訳された出力ファイルのパス(オプション、自動生成)
model_id:Amazon BedrockモデルID(デフォルト:Claude 3.7 Sonnet)
enable_polishing:自然言語のポリッシュを有効にする(デフォルト:true)
-
translate_specific_slides:PowerPointプレゼンテーション内の特定のスライドのみを翻訳します。
- パラメータ:
input_file:入力PowerPointファイルのパス(.pptx)
slide_numbers:翻訳するスライド番号をカンマ区切りで指定(例:"1,3,5"または"2-4,7")
target_language:ターゲット言語コード(デフォルト:'ko')
output_file:翻訳された出力ファイルのパス(オプション、自動生成)
model_id:Amazon BedrockモデルID(デフォルト:Claude 3.7 Sonnet)
enable_polishing:自然言語のポリッシュを有効にする(デフォルト:true)
-
get_slide_info:PowerPointプレゼンテーション内のスライドの情報を取得します。
- パラメータ:
input_file:PowerPointファイルのパス(.pptx)
- 戻り値:スライド数の概要と各スライドの内容のプレビュー
-
get_slide_preview:特定のスライドの内容の詳細なプレビューを取得します。
- パラメータ:
input_file:PowerPointファイルのパス(.pptx)
slide_number:プレビューするスライド番号(1から始まるインデックス)
-
list_supported_languages:翻訳に対応するすべてのターゲット言語をリストします。
-
list_supported_models:サポートされているすべてのAmazon Bedrockモデルをリストします。
-
get_translation_help:翻訳ツールの使用に関するヘルプ情報を取得します。
📚 ドキュメント
環境変数
AWS_REGION:BedrockサービスのAWSリージョン(デフォルト:us-east-1)
AWS_PROFILE:使用するAWSプロファイル(デフォルト:default)
DEFAULT_TARGET_LANGUAGE:翻訳のデフォルトのターゲット言語(デフォルト:ko)
BEDROCK_MODEL_ID:翻訳に使用するBedrockモデルID(デフォルト:us.anthropic.claude-3-7-sonnet-20250219-v1:0)
MAX_TOKENS:翻訳リクエストの最大トークン数(デフォルト:4000)
TEMPERATURE:AIモデルの温度設定(デフォルト:0.1)
ENABLE_POLISHING:翻訳のポリッシュを有効にする(デフォルト:true)
BATCH_SIZE:バッチで処理するテキストの数(デフォルト:20)
CONTEXT_THRESHOLD:コンテキストを考慮した翻訳をトリガーするテキストの数(デフォルト:5)
DEBUG:デバッグログを有効にする(デフォルト:false)
サポートされている言語
このサービスは、以下を含む主要な言語間の翻訳をサポートしています。
- 英語 (en)
- 韓国語 (ko)
- 日本語 (ja)
- 中国語(簡体字)(zh)
- 中国語(繁体字)(zh-tw)
- スペイン語 (es)
- フランス語 (fr)
- ドイツ語 (de)
- イタリア語 (it)
- ポルトガル語 (pt)
- ロシア語 (ru)
- アラビア語 (ar)
- ヒンディー語 (hi)
- その他多数...
トラブルシューティング
一般的な問題
-
AWS資格情報が見つからない場合
- AWS資格情報が正しく構成されていることを確認してください。
- AWS CLI構成を確認します:
aws configure list
-
Bedrockへのアクセスが拒否された場合
- AWSアカウントがBedrockにアクセスできることを確認してください。
- 指定されたモデルがあなたのリージョンで利用可能か確認してください。
-
FastMCP接続問題
- mcp.json内のパスが正しいことを確認してください。
- Pythonと依存関係が正しくインストールされていることを確認してください。
- Q Developerのログを確認してエラーメッセージを確認してください。
- サーバーをテストします:
uv run python server.py --mcp --test
-
PowerPointファイルの問題
- 入力ファイルが有効なPowerPoint(.pptx)ファイルであることを確認してください。
- 入力と出力のパスのファイルパーミッションを確認してください。
-
モジュールインポートエラー
- 適切な仮想環境がアクティブ化されていることを確認するために
uv runを使用してください。
- 依存関係をインストールします:
uv sync
デバッグモード
デバッグログを有効にするには、以下のコマンドを実行します。
uv run python server.py --mcp --debug
開発
プロジェクト構造
ppt-translator/
├── server.py # メインサーバーエントリポイント(単独とMCP)
├── fastmcp_server.py # FastMCPサーバーの実装
├── ppt_handler.py # PowerPoint処理ロジック
├── translation_engine.py # 翻訳サービス
├── bedrock_client.py # Amazon Bedrockクライアント
├── config.py # 構成管理
├── dependencies.py # 依存関係管理
├── text_utils.py # テキスト処理ユーティリティ
├── prompts.py # 翻訳プロンプト
├── requirements.txt # Python依存関係
├── pyproject.toml # プロジェクト構成(uv)
└── imgs/ # 例の画像とスクリーンショット
uvを使用した開発
このプロジェクトは、依存関係管理にuvを使用しています。
uv sync
uv run python server.py --mcp
uv run python server.py --mcp --test
uv add package-name
uv sync --upgrade
📄 ライセンス
このプロジェクトはMITライセンスの下でライセンスされています。詳細については、LICENSEファイルを参照してください。