🚀 使用亚马逊Bedrock的PowerPoint翻译器
这是一款强大的PowerPoint翻译工具,借助亚马逊Bedrock模型实现高质量翻译。该服务既可以作为独立的命令行工具使用,也能作为FastMCP(快速模型上下文协议)服务,与像Amazon Q Developer这样的AI助手集成。它在翻译PowerPoint演示文稿时,能保留其格式和结构。
✨ 主要特性
- PowerPoint翻译:翻译PowerPoint演示文稿中的文本内容。
- 亚马逊Bedrock集成:利用亚马逊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
高级用法
独立命令行使用
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助手集成)
启动FastMCP服务器,以便与像Amazon Q Developer这样的AI助手集成:
uv run python server.py --mcp
python server.py --mcp
📦 安装指南
前提条件
- Python 3.11或更高版本
- 具有Bedrock访问权限的AWS账户
- 配置了适当凭证的AWS CLI
- 访问亚马逊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凭证,则.env
文件中不需要AWS凭证(访问密钥ID和秘密访问密钥)。该服务将自动使用您的AWS CLI凭证。
📚 详细文档
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翻译
连接成功后,您可以使用以下命令(用户输入不必为英语):
将original.pptx翻译成韩语
请将original.pptx的第10到13张幻灯片翻译成日语。
可用的FastMCP工具
FastMCP服务器提供以下工具:
-
translate_powerpoint
:翻译整个PowerPoint演示文稿
- 参数:
input_file
:输入PowerPoint文件的路径(.pptx)
target_language
:目标语言代码(默认:'ko')
output_file
:翻译输出文件的路径(可选,自动生成)
model_id
:亚马逊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
:亚马逊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
:列出所有支持的亚马逊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 # 亚马逊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文件。