一个使用LangGraph和多模态LLM的智能Jupyter Notebook翻译器,可以将Jupyter Notebook中的文本翻译成多种语言,并为图片生成描述,为代码添加注释。
- 🌍 多语言翻译支持: 支持中文、英文、西班牙语、法语、德语、日语、韩语、俄语、葡萄牙语、意大利语等
- 📝 Markdown单元格处理: 翻译文本内容,保持Markdown格式
- 🖼️ 图片描述生成: 为图片自动生成目标语言的详细描述
- 💻 代码单元格增强: 添加详细注释,翻译现有注释
- 🔄 LangGraph工作流: 使用状态机管理整个翻译流程
- 🤖 多模态AI: 通过OpenRouter使用Gemini 2.5 Flash模型
- 克隆项目:
git clone <repository-url>
cd nb-translate-commit- 安装依赖:
pip install -r requirements.txt- 配置环境变量:
创建
.env文件并添加以下配置:
API_KEY=
MODEL_NAME=google/gemini-2.5-flash-preview-05-20
MODEL_BASE_URL=https://openrouter.ai/api/v1python main.py notebook.ipynb --target-language Chinesepython main.py input.ipynb [选项]
参数:
input.ipynb 输入的Jupyter Notebook文件路径
选项:
--target-language, -t 目标翻译语言 (默认: Chinese)
--check-config, -c 检查配置后退出
--version, -v 显示版本信息
--help, -h 显示帮助信息# 翻译成中文
python main.py example.ipynb --target-language Chinese
# 翻译成西班牙语
python main.py notebook.ipynb --target-language Spanish
# 翻译成法语
python main.py /path/to/notebook.ipynb --target-language French
# 检查配置
python main.py --check-config- Chinese (中文)
- English (英语)
- Spanish (西班牙语)
- French (法语)
- German (德语)
- Japanese (日语)
- Korean (韩语)
- Russian (俄语)
- Portuguese (葡萄牙语)
- Italian (意大利语)
翻译后的notebook文件将保存为 原文件名_translated.ipynb
原始内容:
# Data Analysis
This is a sample data analysis notebook.
翻译后内容:
# Data Analysis
**翻译:** 数据分析
This is a sample data analysis notebook.
**翻译:** 这是一个示例数据分析笔记本。

**图片说明:** 这是一个显示数据趋势的图表,包含了多个数据系列...原始代码:
import pandas as pd
df = pd.read_csv('data.csv')增强后代码:
# 导入pandas库用于数据处理
import pandas as pd
# 从CSV文件读取数据到DataFrame中
df = pd.read_csv('data.csv')nb-translate-commit/
├── main.py # 命令行入口
├── workflow.py # LangGraph工作流定义
├── state.py # 状态数据结构
├── config.py # 配置管理
├── llm_client.py # OpenRouter API客户端
├── notebook_io.py # Notebook读写操作
├── cell_processors.py # 单元格处理逻辑
├── requirements.txt # 依赖列表
├── development_plan.md # 开发计划
└── README.md # 项目说明
- LangGraph: 状态机工作流管理
- OpenRouter: 统一的LLM API接口
- Gemini 2.5 Flash: 多模态AI模型
- nbformat: Jupyter Notebook文件处理
项目使用LangGraph构建状态机工作流:
load_and_parse_notebook: 加载并解析notebookroute_cell_processing: 路由到相应的处理节点process_markdown_cell: 处理Markdown单元格process_code_cell: 处理代码单元格rebuild_notebook: 重建并保存notebook
-
API密钥错误
❌ Configuration error: API_KEY is required解决方案:检查
.env文件中的API密钥配置 -
网络连接问题
❌ Translation failed: Connection error解决方案:检查网络连接和API服务状态
-
图片加载失败
⚠️ Could not process image: Image file not found解决方案:确保图片路径正确或图片文件存在
使用 --check-config 参数检查配置:
python main.py --check-config欢迎提交Issue和Pull Request来改进这个项目!
MIT License