InstaPPT
InstaPPT 是一款由 AI 驱动的 PowerPoint 翻译工具,旨在提供高质量翻译的同时,完美保留幻灯片的原始视觉效果。
项目地址 : https://github.com/twwch/InstaPPT

演示
以下是原始幻灯片与翻译后幻灯片的视觉对比:

主要功能
- AI 智能翻译: 利用先进的大语言模型(如 GPT-4, DeepSeek)进行准确、上下文感知的翻译。
- 视觉保真: 自动保留字体、颜色、大小和排版布局。
- 视觉对照报告: 生成左右对照的 PDF 报告,以图片形式展示翻译前后的幻灯片,确保"所见即所得",避免字体渲染问题。
- 智能缓存: 自动缓存翻译结果,重复运行时节省成本和时间。
- 跨平台支持: 支持 macOS(已优化)和 Windows。
系统架构
graph TD
User([用户]) -->|输入| Interface
subgraph Interface ["用户界面"]
CLI["命令行工具"]
UI["Web 界面 (Gradio)"]
end
Interface --> Controller["核心控制器"]
subgraph Pipeline ["处理流水线"]
Parser["PPTX 解析器"] -->|提取文本| Segments["文本片段"]
subgraph Translation ["LLM 翻译循环"]
Step1[翻译] --> Step2[评估]
Step2 -- "分数低" --> Step3[优化]
Step2 -- "分数高" --> Ready[就绪]
Step3 --> Ready
end
Segments -->|并发处理| Translation
Translation <-->|API 调用| LLM[("LLM 提供商")]
Ready --> Assembler["PPTX 组装器"]
Assembler -->|生成| Artifacts
end
Controller --> Pipeline
subgraph Artifacts ["输出文件"]
File1["翻译后的 PPTX"]
File2["视觉对比 PDF"]
File3["评估报告"]
end
环境要求
- Python 3.10+
- LibreOffice: 用于将 PPTX 转换为 PDF。
- macOS:
brew install --cask libreoffice - Windows: 请从官网下载安装。
- macOS:
- Poppler: 用于生成基于图片的视觉对照报告。
- macOS:
brew install poppler - Windows: 下载二进制文件并添加到 PATH。
- macOS:
安装
通过 Pip 安装
bash
uv pip install instappt
开发环境设置
bash
# 创建虚拟环境
uv venv
# 激活虚拟环境
source .venv/bin/activate
# 安装依赖
uv sync
使用方法
命令行使用 (安装后)
如果你通过 pip 安装了本包,可以直接使用 instappt 命令:
bash
instappt --input input.pptx --output output_dir --lang English --config model_info.json
开发模式使用
如果你是直接运行源码:
bash
python main.py --input input.pptx --output output_dir --lang English
使用配置文件
创建一个 model_info.json 文件来配置 LLM 设置:
json
{
"translator": {
"model": "gpt-4o",
"api_key": "sk-...",
"base_url": "https://api.openai.com/v1"
}
}
运行命令:
bash
python main.py --input input.pptx --output output_dir --lang English --config model_info.json
强制重新翻译 (禁用缓存)
如果你想忽略缓存并强制重新翻译:
bash
python main.py --input input.pptx --output output_dir --lang English --config model_info.json --no-cache
SDK 使用 (Python)
你也可以将 InstaPPT 作为 Python 库集成到你自己的项目中。
python
from instappt.core import PPTTranslator
from instappt.models import SDKConfig, ModelConfig
# 1. 配置模型
config = SDKConfig(
translator_config=ModelConfig(
model="gpt-4o",
api_key="sk-...",
base_url="https://api.openai.com/v1"
),
optimizer_config=ModelConfig(
model="gpt-4o",
api_key="sk-...",
base_url="https://api.openai.com/v1"
),
evaluator_config=ModelConfig(
model="gpt-4o",
api_key="sk-...",
base_url="https://api.openai.com/v1"
),
enable_cache=True # 设置为 False 可禁用缓存
)
# 2. 初始化翻译器
translator = PPTTranslator(config, concurrency=32)
# 3. 处理 PPTX
input_file = "presentation.pptx"
output_file = "presentation_translated.pptx"
target_language = "English"
translator.process_ppt(input_file, output_file, target_language)
# 4. 生成报告 (可选)
translator.generate_reports(
output_dir="output_folder",
report_prefix="my_report_",
original_pptx=input_file,
translated_pptx=output_file
)
输出文件
工具将在指定的输出目录中生成:
- 翻译后的 PPTX:
[文件名]_translated.pptx - 视觉对照报告:
[文件名]_comparison.pdf(左右对照的图片版 PDF) - 评估报告:
[文件名]_assessment_report.pdf(质量评分) - Token 使用统计:
token_usage.json(成本追踪)