将学术论文转换为播客的应用。
- 克隆仓库:
git clone <repository-url>
cd paper-podcast- 安装依赖:
pip install -r requirements.txt-
配置:
- 复制
config.ini.example为config.ini - 在
config.ini中填入你的 API keys:- Gemini API key
- OpenAI API key
- 复制
-
运行应用:
python app.pyconfig.ini 文件包含以下配置项:
-
[auth]: 认证相关配置token: 认证令牌
-
[podcast]: 播客生成相关配置llm_model_name: 使用的语言模型名称upload_folder: 上传文件存储目录pdf_folder: PDF 文件存储目录mp3_folder: 生成的 MP3 文件存储目录
-
[gemini]: Gemini API 配置api_key: Gemini API key
-
[openai]: OpenAI API 配置api_key: OpenAI API key
- 不要将包含实际 API keys 的
config.ini提交到版本控制系统 - 保持
config.ini.example作为配置模板 - 确保
.gitignore正确配置,排除config.ini和敏感文件
- Python 3.8+
- Nginx
- 足够的磁盘空间用于存储上传的 PDF 和生成的 MP3 文件
# 安装系统依赖
sudo apt-get update
sudo apt-get install python3-venv nginx
# 创建并激活虚拟环境
python3 -m venv venv
source venv/bin/activate
# 安装 Python 依赖
pip install -r requirements.txt- 复制 Nginx 配置文件:
sudo cp nginx.conf /etc/nginx/sites-available/paper_podcast
sudo ln -s /etc/nginx/sites-available/paper_podcast /etc/nginx/sites-enabled/- 修改配置文件中的域名和路径:
- 将
your_domain.com替换为你的实际域名 - 将
/path/to/your/project/frontend替换为实际的前端文件路径
- 测试并重启 Nginx:
sudo nginx -t
sudo systemctl restart nginx- 创建日志目录:
mkdir logs- 使用 Gunicorn 启动应用:
gunicorn -c gunicorn_config.py app:app创建 systemd 服务文件:
sudo nano /etc/systemd/system/paper_podcast.service添加以下内容:
[Unit]
Description=Paper Podcast Application
After=network.target
[Service]
User=your_user
WorkingDirectory=/path/to/your/project
Environment="PATH=/path/to/your/project/venv/bin"
ExecStart=/path/to/your/project/venv/bin/gunicorn -c gunicorn_config.py app:app
Restart=always
[Install]
WantedBy=multi-user.target启用并启动服务:
sudo systemctl enable paper_podcast
sudo systemctl start paper_podcast- 查看应用日志:
tail -f logs/error.log - 查看 Nginx 日志:
tail -f /var/log/nginx/paper_podcast_error.log - 重启应用:
sudo systemctl restart paper_podcast - 重启 Nginx:
sudo systemctl restart nginx