[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"tool-NVIDIA-AI-Blueprints--pdf-to-podcast":3,"similar-NVIDIA-AI-Blueprints--pdf-to-podcast":80},{"id":4,"github_repo":5,"name":6,"description_en":7,"description_zh":8,"ai_summary_zh":8,"readme_en":9,"readme_zh":10,"quickstart_zh":11,"use_case_zh":12,"hero_image_url":13,"owner_login":14,"owner_name":15,"owner_avatar_url":16,"owner_bio":17,"owner_company":18,"owner_location":18,"owner_email":18,"owner_twitter":18,"owner_website":19,"owner_url":20,"languages":21,"stars":42,"forks":43,"last_commit_at":44,"license":45,"difficulty_score":46,"env_os":47,"env_gpu":48,"env_ram":49,"env_deps":50,"category_tags":64,"github_topics":67,"view_count":70,"oss_zip_url":18,"oss_zip_packed_at":18,"status":71,"created_at":72,"updated_at":73,"faqs":74,"releases":75},5432,"NVIDIA-AI-Blueprints\u002Fpdf-to-podcast","pdf-to-podcast","Transform PDFs into AI podcasts for engaging on-the-go audio content.","pdf-to-podcast 是一款由 NVIDIA 推出的开源项目，旨在将枯燥的 PDF 文档自动转化为生动有趣的播客音频。它主要解决了用户在通勤、运动等移动场景下难以高效吸收长篇书面报告或学术文献的痛点，让“阅读”变为轻松的“聆听”。\n\n这款工具特别适合开发者及企业技术团队使用。用户只需提供一份核心 PDF（目标文档）和若干参考 PDF（背景资料），甚至可以通过提示词指定关注重点（如“聚焦季度财报的关键驱动因素”），系统便能生成逻辑清晰、内容精准的对话式脚本，并利用高质量的语音合成技术输出音频。\n\n其技术亮点在于基于 NVIDIA NIM 微服务架构构建，支持灵活部署。既可以直接调用云端 API 在普通服务器上运行，也能在本地私有网络中部署，确保敏感数据不出内网，满足企业对数据隐私的高要求。底层集成了 Meta Llama 3.1 系列大模型进行智能内容提炼，配合 Docling 进行文档解析以及 ElevenLabs 的自然语音合成，实现了从文档摄入到音频生成的全自动化流程。对于希望构建定制化知识音频应用或探索 AI 多模态转化的技术人员而言，这是一个极具参考价值的蓝图。","\u003Ch2>\u003Cimg align=\"center\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA-AI-Blueprints_pdf-to-podcast_readme_3f967783bf73.png\">NVIDIA AI Blueprint: PDF to Podcast\u003C\u002Fh2>\n\n## Overview\n\nThis NVIDIA AI blueprint shows developers how to build an application that transforms PDFs into engaging audio content. Built on NVIDIA NIM, this blueprint is flexible, and can run securely on a private network, delivering actionable insight without sharing sensitive data.\n\n\u003Cimg width=\"1021\" alt=\"Architecture Diagram\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA-AI-Blueprints_pdf-to-podcast_readme_c96ed22c665e.png\"\u002F>\n\nThe blueprint accepts a Target PDF and optionally multiple Context PDFs. The Target PDF will be the main source of information for the generated transcript while Context PDFs will be used as additional reference for the agent to use. The user can also optionally specify a guide prompt that will give a focus for the agent generated transcript (i.e. “Focus on the key drivers for NVIDIA’s Q3 earnings report”).\n\nFor more information about the PDF, Agent and TTS service flows, please refer to the mermaid [diagram](docs\u002FREADME.md)\n\n| :exclamation: Important |\n| :-----------------------|\n| Users running this blueprint with [NVIDIA AI Workbench](https:\u002F\u002Fwww.nvidia.com\u002Fen-us\u002Fdeep-learning-ai\u002Fsolutions\u002Fdata-science\u002Fworkbench\u002F) should skip to the quickstart section [here](https:\u002F\u002Fgithub.com\u002FNVIDIA-AI-Blueprints\u002Fpdf-to-podcast\u002Ftree\u002Fmain\u002Fworkbench#quickstart)! |\n\n## Software Components\n- NVIDIA NIM microservices\n   - Response generation (Inference)\n      - [NIM for meta\u002Fllama-3.1-8b-instruct](https:\u002F\u002Fbuild.nvidia.com\u002Fmeta\u002Fllama-3_1-8b-instruct)\n      - [NIM for meta\u002Fllama-3.1-70b-instruct](https:\u002F\u002Fbuild.nvidia.com\u002Fmeta\u002Fllama-3_1-70b-instruct)\n      - [NIM for meta\u002Fllama-3.1-405B-instruct](https:\u002F\u002Fbuild.nvidia.com\u002Fmeta\u002Fllama-3_1-405b-instruct)\n- Document ingest and extraction - [Docling](https:\u002F\u002Fgithub.com\u002FDS4SD\u002Fdocling)\n- Text-to-speech - [ElevenLabs](https:\u002F\u002Felevenlabs.io\u002F)\n- Redis - [Redis](https:\u002F\u002Fredis.io\u002F)\n- Storage - [MinIO](https:\u002F\u002Fminio.io\u002F)\n\n> **Note:** Since NVIDIA blueprints are adaptable to your specific business use case and\u002For infrastructure, the above software components are configurable. For example, to decrease the amount of GPU memory required, you can leverage a smaller Llama 3.1-8B NIM and disable GPU usage for Docling in docker-compose.yaml.\n\nDocker Compose scripts are provided which spin up the microservices on a single node.  The Blueprint contains sample use-case PDFs but Developers can build upon this blueprint, by using their own PDFs based upon their specific use case.\n\n## Hardware Requirements\nBelow are the hardware requirements, these are dependent on how you choose to deploy the blueprint. There are 2 ways to deploy this blueprint:\n\n1. Default - Use NVIDIA API catalog NIM endpoints\n   - Can run on any non-gpu accelerated machine\u002FVM\n      - 8 CPU cores\n      - 64 GB RAM\n      - 100GB disk space\n      - A public IP address is also required\n\n2. Locally host NVIDIA NIM\n   - [Meta Llama 3.1 8B Instruct Support Matrix](https:\u002F\u002Fdocs.nvidia.com\u002Fnim\u002Flarge-language-models\u002Flatest\u002Fsupport-matrix.html#llama-3-1-8b-instruct)\n   - [Meta Llama 3.1 70B Instruct Support Matrix](https:\u002F\u002Fdocs.nvidia.com\u002Fnim\u002Flarge-language-models\u002Flatest\u002Fsupport-matrix.html#llama-3-1-70b-instruct)\n   - [Meta Llama 3.1 405B Instruct Support Matrix](https:\u002F\u002Fdocs.nvidia.com\u002Fnim\u002Flarge-language-models\u002Flatest\u002Fsupport-matrix.html#llama-3-1-405b-instruct)\n\n> **Note:** To run the blueprint at scale and for faster preprocessing of PDFs, it is recommended to use GPU for running the PDF ingest\u002Fextraction pipeline.\n\n## Prerequisites\n- NVIDIA AI Enterprise developer licence required to local host NVIDIA NIM.\n- API catalog keys:\n   - NVIDIA [API catalog](https:\u002F\u002Fbuild.nvidia.com\u002F) or [NGC](https:\u002F\u002Forg.ngc.nvidia.com\u002Fsetup\u002Fpersonal-keys)\n   - [ElevenLabs](https:\u002F\u002Felevenlabs.io\u002Fdocs\u002Fapi-reference\u002Fauthentication)\n\n## Quick Start Guide\n1. **Docker Compose**\n\nSystem requirements:  Ubuntu 20.04 or 22.04 based machine, with sudo privileges\n\nInstall software requirements:\n- Install Docker Engine and Docker Compose. Refer to the instructions for [Ubuntu](https:\u002F\u002Fdocs.docker.com\u002Fengine\u002Finstall\u002Fubuntu\u002F).\n- Ensure the Docker Compose plugin version is 2.29.1 or higher.\n- Run docker compose version to confirm.\n- Refer to [Install the Compose plugin](https:\u002F\u002Fdocs.docker.com\u002Fcompose\u002Finstall\u002Flinux\u002F) in the Docker documentation for more information.\n- To configure Docker for GPU-accelerated containers, install the [NVIDIA Container Toolkit](https:\u002F\u002Fdocs.nvidia.com\u002Fdatacenter\u002Fcloud-native\u002Fcontainer-toolkit\u002Flatest\u002Finstall-guide.html).\n- Install git\n\n2. **Obtain API keys:**\n\nNVIDIA Inference Microservices (NIM)\n- There are two possible methods to generate an API key for NIM:\n   - Sign in to the [NVIDIA Build](https:\u002F\u002Fbuild.nvidia.com\u002Fexplore\u002Fdiscover?signin=true) portal with your email.\n      - Click on any [model](https:\u002F\u002Fbuild.nvidia.com\u002Fmeta\u002Fllama-3_1-70b-instruct), then click \"Get API Key\", and finally click \"Generate Key\".\n   - Sign in to the [NVIDIA NGC](https:\u002F\u002Fngc.nvidia.com\u002F) portal with your email.\n      - Select your organization from the dropdown menu after logging in. You must select an organization which has NVIDIA AI Enterprise (NVAIE) enabled.\n      - Click on your account in the top right, select \"Setup\" from the dropdown.\n      - Click the \"Generate Personal Key\" option and then the \"+ Generate Personal Key\" button to create your API key.\n         - This will be used in the NVIDIA_API_KEY environment variable.\n      - Click the \"Generate API Key\" option and then the \"+ Generate API Key\" button to create the API key.\n\nIMPORTANT:  This will be used in the NVIDIA_API_KEY environment variable below.\n\n[ElevenLabs](https:\u002F\u002Felevenlabs.io\u002Fdocs\u002Fapi-reference\u002Fauthentication)\n\n3. **Clone the repo**\n\n   ```bash\n   git clone https:\u002F\u002Fgithub.com\u002FNVIDIA-AI-Blueprints\u002Fpdf-to-podcast\n   ```\n\n4. **Set environment variables**\n\n   ```bash\n   #Create env file with required variables in \u002Fhome\u002F\u003Cusername>\u002F.local\u002Fbin\u002Fenv  \n   echo \"ELEVENLABS_API_KEY=your_key\" >> .env\n   echo \"NVIDIA_API_KEY=your_key\" >> .env\n   echo \"MAX_CONCURRENT_REQUESTS=1\" >> .env\n   ```\n> **Note:** the ElevenLabs API key can handle concurrent requests. For local development, set MAX_CONCURRENT_REQUESTS=1 to avoid rate-limiting issues.\n\n5. **Install dependencies**\n\nWe use UV to manage Python dependencies.\n   ```bash\n   make uv\n   ```\nThis will:\n- Install UV if not present\n- Create virtual environment\n- Install project dependencies\n\nIf you open up a new terminal window and want to quickly re-use the same environment, you can run make uv again.\n\n6. ** Start the development server**\n\n   ```bash\n   make all-services\n   ```\n> **Note:** The first time you run make all-services, the docling service may take 10-15 minutes to pull and build. Subsequent runs will be much faster.\n\nThis command will:\n- Verify environment variables are set\n- Create necessary directories\n- Start all services using Docker Compose in --build mode.\n\n> **Note:** Set DETACH=1 to run the services in detached mode to continue using your terminal while the services are running.\n\n7. View Swagger API documentation\n\nTo view the Swagger UI for the API, you can view them locally at `localhost:8002\u002Fdocs`. If running this on a VM, you will need to port forward 8002 locally or expose the port on your VM. \n\n8. Generate the Podcast\n\n   ```bash\n   source .venv\u002Fbin\u002Factivate\n   python tests\u002Ftest.py --target \u003Cpdf1.pdf> --context \u003Cpdf2.pdf>\n   ```\nBy default, this command will generate a 2-person podcast. To generate a 1-person podcast, add the --monologue flag. \nIMPORTANT:  By default `test.py` expects pdfs to be in the `samples` directory.\n\nFor debugging an error that occurs in the test, view the docker compose logs.\n\n## Customization\n1. **Host the PDF service on a separate machine.**\n\nThis blueprint uses docling as the default PDF extraction service.\n\nTo run the PDF extraction service on a separate machine, add the following to your .env file:\n\n   ```bash\n   echo \"MODEL_API_URL=\u003Cpdf-model-service-url\" >> .env\n   ```\nThe make `model-dev` target will let you spin up only the docling service.\n\n2. **Use Self-hosted NIM**\n\nBy default this blueprint uses an ensemble of 3 LLMs to generate podcasts. The example uses the Llama 3.1-8B, Llama 3.1-70B, & Llama 3.1-405B NIMs for balanced performance and accuracy. To use a different model, update the models.json file with the desired model. The default models.json calls an NVIDIA-hosted API Catalog endpoints. This is the default configuration and is recommended for most users getting started with the blueprint but once you want to adapt the blueprint, locally hosted NIM endpoints are required.\n\n3. **Change the Default Models and GPU Assignments**\n\nIt is easy to swap out different pieces of the stack to optimize GPU usage for available hardware. For example, minimize GPU usage by swapping in the smaller Llama 3.1-8B NIM and disabling GPU usage for docling in docker-compose.yaml.\n\n4. **Enable Tracing**\n\nWe expose a Jaeger instance at http:\u002F\u002Flocalhost:16686\u002F for tracing. This is useful for debugging and monitoring the system.\n\n## Contributing\n\n1. **Fork the repository**\n2. **Create a feature branch**\n3. **Make your changes**\n4. **Run tests:** python tests\u002Ftest.py \u003Cpdf1> \u003Cpdf2>\n5. **Run linting:** make ruff\n6. **Submit a pull request**\n\n## Code Quality\n\nThe project uses ruff for linting and formatting. You must run make ruff before your PR can be merged:\n\n   ```bash\n   make ruff  # Runs both lint and format\n   ```\n\n## CI\u002FCD\n\nWe use GitHub Actions for CI\u002FCD. We run the following actions:\n\n- `ruff`: Runs linting and formatting\n- `pr-test`: Runs an end-to-end podcast test on the PR\n- `build-and-push`: Builds and pushes a new container image to the remote repo. This is used to update production deployments\n\n## Security Considerations\n\n**Important** : This setup uses HTTP and is not intended for production deployments. For production deployments, consider implementing the following security measures:\n\n- Add SSL\u002FTLS encryption by either:\n   - Configuring uvicorn with SSL certificates\n   - Setting up a reverse proxy (like Nginx) to handle SSL termination\n   - Implement proper certificate management\n   - Configure appropriate security headers\n- Follow other web security best practices\n","\u003Ch2>\u003Cimg align=\"center\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA-AI-Blueprints_pdf-to-podcast_readme_3f967783bf73.png\">NVIDIA AI 蓝图：PDF 转播客\u003C\u002Fh2>\n\n## 概述\n\n本 NVIDIA AI 蓝图向开发者展示了如何构建一款将 PDF 文件转换为引人入胜的音频内容的应用程序。该蓝图基于 NVIDIA NIM 构建，具有高度灵活性，可在私有网络中安全运行，在不共享敏感数据的情况下提供可操作的洞察。\n\n\u003Cimg width=\"1021\" alt=\"架构图\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA-AI-Blueprints_pdf-to-podcast_readme_c96ed22c665e.png\"\u002F>\n\n该蓝图接受一个目标 PDF 文件，并可选择性地上传多个上下文 PDF 文件。目标 PDF 将作为生成转录文本的主要信息来源，而上下文 PDF 则用作智能体的额外参考材料。用户还可以选择性地指定引导提示，以帮助智能体生成有针对性的转录文本（例如：“重点关注英伟达第三季度财报的关键驱动因素”）。\n\n有关 PDF、智能体和 TTS 服务流程的更多信息，请参阅 Mermaid [图表](docs\u002FREADME.md)。\n\n| :exclamation: 重要 |\n| :-----------------------|\n| 使用 [NVIDIA AI Workbench](https:\u002F\u002Fwww.nvidia.com\u002Fen-us\u002Fdeep-learning-ai\u002Fsolutions\u002Fdata-science\u002Fworkbench\u002F) 运行此蓝图的用户，请直接跳转至快速入门部分 [此处](https:\u002F\u002Fgithub.com\u002FNVIDIA-AI-Blueprints\u002Fpdf-to-podcast\u002Ftree\u002Fmain\u002Fworkbench#quickstart)! |\n\n## 软件组件\n- NVIDIA NIM 微服务\n   - 响应生成（推理）\n      - [NIM for meta\u002Fllama-3.1-8b-instruct](https:\u002F\u002Fbuild.nvidia.com\u002Fmeta\u002Fllama-3_1-8b-instruct)\n      - [NIM for meta\u002Fllama-3.1-70b-instruct](https:\u002F\u002Fbuild.nvidia.com\u002Fmeta\u002Fllama-3_1-70b-instruct)\n      - [NIM for meta\u002Fllama-3.1-405B-instruct](https:\u002F\u002Fbuild.nvidia.com\u002Fmeta\u002Fllama-3_1-405b-instruct)\n- 文档摄取与提取 - [Docling](https:\u002F\u002Fgithub.com\u002FDS4SD\u002Fdocling)\n- 文本转语音 - [ElevenLabs](https:\u002F\u002Felevenlabs.io\u002F)\n- Redis - [Redis](https:\u002F\u002Fredis.io\u002F)\n- 存储 - [MinIO](https:\u002F\u002Fminio.io\u002F)\n\n> **注意:** 由于 NVIDIA 蓝图可根据您的具体业务场景和\u002F或基础设施进行调整，上述软件组件均可配置。例如，为了减少所需的 GPU 显存，您可以使用较小的 Llama 3.1-8B NIM，并在 docker-compose.yaml 中禁用 Docling 的 GPU 使用。\n\n我们提供了 Docker Compose 脚本，可在单个节点上启动这些微服务。该蓝图包含示例用例 PDF 文件，但开发者可以根据自身特定用例，使用自己的 PDF 文件在此基础上进行扩展。\n\n## 硬件要求\n以下是硬件要求，具体取决于您选择的部署方式。部署此蓝图有两种方法：\n\n1. 默认方式 - 使用 NVIDIA API 目录中的 NIM 端点\n   - 可在任何非 GPU 加速的机器或虚拟机上运行\n      - 8 核 CPU\n      - 64 GB 内存\n      - 100 GB 磁盘空间\n      - 需要一个公网 IP 地址\n\n2. 在本地托管 NVIDIA NIM\n   - [Meta Llama 3.1 8B Instruct 支持矩阵](https:\u002F\u002Fdocs.nvidia.com\u002Fnim\u002Flarge-language-models\u002Flatest\u002Fsupport-matrix.html#llama-3-1-8b-instruct)\n   - [Meta Llama 3.1 70B Instruct 支持矩阵](https:\u002F\u002Fdocs.nvidia.com\u002Fnim\u002Flarge-language-models\u002Flatest\u002Fsupport-matrix.html#llama-3-1-70b-instruct)\n   - [Meta Llama 3.1 405B Instruct 支持矩阵](https:\u002F\u002Fdocs.nvidia.com\u002Fnim\u002Flarge-language-models\u002Flatest\u002Fsupport-matrix.html#llama-3-1-405b-instruct)\n\n> **注意:** 若要大规模运行该蓝图并加快 PDF 的预处理速度，建议使用 GPU 来运行 PDF 摄取\u002F提取管道。\n\n## 先决条件\n- 需要 NVIDIA AI Enterprise 开发者许可证才能在本地托管 NVIDIA NIM。\n- API 目录密钥：\n   - NVIDIA [API 目录](https:\u002F\u002Fbuild.nvidia.com\u002F) 或 [NGC](https:\u002F\u002Forg.ngc.nvidia.com\u002Fsetup\u002Fpersonal-keys)\n   - [ElevenLabs](https:\u002F\u002Felevenlabs.io\u002Fdocs\u002Fapi-reference\u002Fauthentication)\n\n## 快速入门指南\n1. **Docker Compose**\n\n系统要求：基于 Ubuntu 20.04 或 22.04 的机器，具备 sudo 权限\n\n安装软件要求：\n- 安装 Docker 引擎和 Docker Compose。请参考 [Ubuntu](https:\u002F\u002Fdocs.docker.com\u002Fengine\u002Finstall\u002Fubuntu\u002F) 的安装说明。\n- 确保 Docker Compose 插件版本为 2.29.1 或更高。\n- 运行 `docker compose version` 进行确认。\n- 更多信息请参阅 Docker 文档中的 [安装 Compose 插件](https:\u002F\u002Fdocs.docker.com\u002Fcompose\u002Finstall\u002Flinux\u002F)。\n- 若要配置 Docker 以支持 GPU 加速容器，请安装 [NVIDIA Container Toolkit](https:\u002F\u002Fdocs.nvidia.com\u002Fdatacenter\u002Fcloud-native\u002Fcontainer-toolkit\u002Flatest\u002Finstall-guide.html)。\n- 安装 git\n\n2. **获取 API 密钥：**\n\nNVIDIA 推理微服务 (NIM)\n- 有两种方法可以为 NIM 生成 API 密钥：\n   - 使用您的电子邮件登录 [NVIDIA Build](https:\u002F\u002Fbuild.nvidia.com\u002Fexplore\u002Fdiscover?signin=true) 门户。\n      - 点击任意一个 [模型](https:\u002F\u002Fbuild.nvidia.com\u002Fmeta\u002Fllama-3_1-70b-instruct)，然后点击“获取 API 密钥”，最后点击“生成密钥”。\n   - 使用您的电子邮件登录 [NVIDIA NGC](https:\u002F\u002Fngc.nvidia.com\u002F) 门户。\n      - 登录后从下拉菜单中选择您的组织。您必须选择已启用 NVIDIA AI Enterprise (NVAIE) 的组织。\n      - 点击右上角的账户，在下拉菜单中选择“设置”。\n      - 点击“生成个人密钥”选项，然后点击“+ 生成个人密钥”按钮以创建您的 API 密钥。\n         - 此密钥将用于 NVIDIA_API_KEY 环境变量。\n      - 点击“生成 API 密钥”选项，然后点击“+ 生成 API 密钥”按钮以创建 API 密钥。\n\n重要提示：此密钥将用于下方的 NVIDIA_API_KEY 环境变量。\n\n[ElevenLabs](https:\u002F\u002Felevenlabs.io\u002Fdocs\u002Fapi-reference\u002Fauthentication)\n\n3. **克隆仓库**\n\n   ```bash\n   git clone https:\u002F\u002Fgithub.com\u002FNVIDIA-AI-Blueprints\u002Fpdf-to-podcast\n   ```\n\n4. **设置环境变量**\n\n   ```bash\n   # 在 \u002Fhome\u002F\u003Cusername>\u002F.local\u002Fbin\u002Fenv 中创建包含所需变量的 .env 文件\n   echo \"ELEVENLABS_API_KEY=your_key\" >> .env\n   echo \"NVIDIA_API_KEY=your_key\" >> .env\n   echo \"MAX_CONCURRENT_REQUESTS=1\" >> .env\n   ```\n> **注意：** ElevenLabs API 密钥可以处理并发请求。对于本地开发，建议将 MAX_CONCURRENT_REQUESTS 设置为 1，以避免速率限制问题。\n\n5. **安装依赖项**\n\n我们使用 UV 来管理 Python 依赖项。\n   ```bash\n   make uv\n   ```\n这将：\n- 如果未安装 UV，则进行安装\n- 创建虚拟环境\n- 安装项目依赖项\n\n如果您打开一个新的终端窗口并希望快速重新使用相同的环境，可以再次运行 `make uv`。\n\n6. **启动开发服务器**\n\n   ```bash\n   make all-services\n   ```\n> **注意：** 首次运行 `make all-services` 时，docling 服务可能需要 10-15 分钟来拉取和构建镜像。后续运行会快得多。\n\n该命令将：\n- 验证环境变量是否已设置\n- 创建必要的目录\n- 使用 Docker Compose 以 --build 模式启动所有服务。\n\n> **注意：** 设置 DETACH=1 可以使服务在分离模式下运行，以便在服务运行时继续使用您的终端。\n\n7. 查看 Swagger API 文档\n\n要查看 API 的 Swagger UI，您可以本地访问 `localhost:8002\u002Fdocs`。如果在虚拟机上运行，您需要将 8002 端口进行端口转发，或将该端口暴露在您的虚拟机上。\n\n8. 生成播客\n\n   ```bash\n   source .venv\u002Fbin\u002Factivate\n   python tests\u002Ftest.py --target \u003Cpdf1.pdf> --context \u003Cpdf2.pdf>\n   ```\n默认情况下，此命令会生成一个双人播客。若要生成单人播客，请添加 --monologue 标志。重要提示：默认情况下，`test.py` 假设 PDF 文件位于 `samples` 目录中。\n\n若测试过程中出现错误，可查看 Docker Compose 的日志以进行调试。\n\n## 自定义\n1. **将 PDF 服务托管在独立机器上。**\n\n本蓝图默认使用 docling 作为 PDF 提取服务。\n\n若要在独立机器上运行 PDF 提取服务，请在 .env 文件中添加以下内容：\n\n   ```bash\n   echo \"MODEL_API_URL=\u003Cpdf-model-service-url\" >> .env\n   ```\n`make model-dev` 目标将仅启动 docling 服务。\n\n2. **使用自托管的 NIM**\n\n默认情况下，本蓝图使用由 3 个 LLM 组成的集成模型来生成播客。示例中使用了 Llama 3.1-8B、Llama 3.1-70B 和 Llama 3.1-405B NIM，以实现性能与准确性的平衡。若要使用其他模型，请更新 models.json 文件以包含所需的模型。默认的 models.json 会调用 NVIDIA 托管的 API 目录端点。这是默认配置，推荐给刚开始使用本蓝图的用户；但当您希望对蓝图进行调整时，则需要使用本地托管的 NIM 端点。\n\n3. **更改默认模型和 GPU 分配**\n\n您可以轻松替换堆栈中的不同组件，以优化现有硬件上的 GPU 使用情况。例如，通过替换为较小的 Llama 3.1-8B NIM，并在 docker-compose.yaml 中禁用 docling 的 GPU 使用，从而减少 GPU 资源占用。\n\n4. **启用追踪功能**\n\n我们在 http:\u002F\u002Flocalhost:16686\u002F 上公开了一个 Jaeger 实例，用于系统追踪。这对于调试和监控系统非常有用。\n\n## 贡献\n1. **fork 仓库**\n2. **创建功能分支**\n3. **进行更改**\n4. **运行测试：** python tests\u002Ftest.py \u003Cpdf1> \u003Cpdf2>\n5. **运行代码检查：** make ruff\n6. **提交拉取请求**\n\n## 代码质量\n该项目使用 ruff 进行代码检查和格式化。在合并您的 PR 之前，必须运行 `make ruff`：\n\n   ```bash\n   make ruff  # 同时运行检查和格式化\n   ```\n\n## CI\u002FCD\n我们使用 GitHub Actions 进行 CI\u002FCD。我们执行以下操作：\n\n- `ruff`：运行代码检查和格式化\n- `pr-test`：在 PR 上运行端到端播客测试\n- `build-and-push`：构建并将新的容器镜像推送到远程仓库。此操作用于更新生产部署。\n\n## 安全注意事项\n\n**重要提示**：此设置使用 HTTP 协议，不适用于生产环境部署。对于生产环境部署，建议实施以下安全措施：\n\n- 添加 SSL\u002FTLS 加密，方法如下：\n   - 使用 SSL 证书配置 uvicorn\n   - 设置反向代理（如 Nginx）以处理 SSL 终止\n   - 实施适当的证书管理\n   - 配置合适的安全头信息\n- 遵循其他 Web 安全最佳实践","# PDF 转播客 (pdf-to-podcast) 快速上手指南\n\n本指南帮助开发者快速部署 NVIDIA AI Blueprint: PDF to Podcast，将 PDF 文档转换为生动的双人或单人播客音频。该工具基于 NVIDIA NIM 构建，支持私有网络部署，保障数据安全。\n\n## 环境准备\n\n### 系统要求\n- **操作系统**: Ubuntu 20.04 或 22.04\n- **权限**: 需要 `sudo` 权限\n- **硬件配置** (取决于部署方式):\n  - **方案 A (默认，调用云端 API)**: 适用于无 GPU 机器\n    - 8 CPU 核心\n    - 64 GB 内存\n    - 100 GB 磁盘空间\n    - 需具备公网 IP\n  - **方案 B (本地托管 NIM)**: 需配备相应规格的 NVIDIA GPU (参考 Llama 3.1 8B\u002F70B\u002F405B 支持矩阵)\n  - *建议*: 若需大规模运行或加速 PDF 预处理，推荐使用 GPU 运行 Docling 服务。\n\n### 前置依赖\n1. **Docker 环境**:\n   - 安装 Docker Engine 和 Docker Compose (插件版本需 ≥ 2.29.1)。\n   - 若使用 GPU，需安装 [NVIDIA Container Toolkit](https:\u002F\u002Fdocs.nvidia.com\u002Fdatacenter\u002Fcloud-native\u002Fcontainer-toolkit\u002Flatest\u002Finstall-guide.html)。\n   - 安装 `git`。\n2. **API 密钥**:\n   - **NVIDIA API Key**: 用于推理服务 (Llama 3.1)。\n     - 访问 [NVIDIA Build](https:\u002F\u002Fbuild.nvidia.com\u002F) 或 [NGC](https:\u002F\u002Forg.ngc.nvidia.com\u002Fsetup\u002Fpersonal-keys) 生成。\n   - **ElevenLabs API Key**: 用于文本转语音 (TTS)。\n     - 访问 [ElevenLabs](https:\u002F\u002Felevenlabs.io\u002Fdocs\u002Fapi-reference\u002Fauthentication) 获取。\n   - *注意*: 本地托管 NVIDIA NIM 需要 NVIDIA AI Enterprise 开发者许可证。\n\n## 安装步骤\n\n### 1. 克隆项目\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FNVIDIA-AI-Blueprints\u002Fpdf-to-podcast\ncd pdf-to-podcast\n```\n\n### 2. 配置环境变量\n在项目根目录下创建 `.env` 文件并填入您的 API 密钥。\n*注：本地开发建议将并发请求数设为 1 以避免速率限制。*\n\n```bash\necho \"ELEVENLABS_API_KEY=your_elevenlabs_key\" >> .env\necho \"NVIDIA_API_KEY=your_nvidia_key\" >> .env\necho \"MAX_CONCURRENT_REQUESTS=1\" >> .env\n```\n*(请将 `your_elevenlabs_key` 和 `your_nvidia_key` 替换为实际密钥)*\n\n### 3. 安装依赖\n本项目使用 `uv` 管理 Python 依赖。运行以下命令自动安装 uv、创建虚拟环境并安装项目依赖：\n\n```bash\nmake uv\n```\n\n### 4. 启动服务\n启动所有微服务（包括 Docling、Redis、MinIO 等）。\n*首次运行可能需要 10-15 分钟拉取和构建 Docling 镜像，后续启动将更快。*\n\n```bash\nmake all-services\n```\n*提示：若希望后台运行以便继续使用终端，可添加 `DETACH=1` 参数：`DETACH=1 make all-services`*\n\n## 基本使用\n\n服务启动后，您可以通过命令行脚本生成播客。默认情况下，脚本会读取 `samples` 目录下的 PDF 文件。\n\n### 生成双人播客\n激活虚拟环境并运行测试脚本，指定目标 PDF (`--target`) 和可选的上下文 PDF (`--context`)：\n\n```bash\nsource .venv\u002Fbin\u002Factivate\npython tests\u002Ftest.py --target samples\u002Ftarget.pdf --context samples\u002Fcontext.pdf\n```\n\n### 生成单人播客\n添加 `--monologue` 标志即可生成单人讲述模式：\n\n```bash\npython tests\u002Ftest.py --target samples\u002Ftarget.pdf --monologue\n```\n\n### 查看 API 文档\n如需查看详细的 Swagger API 文档，请在浏览器访问：\n- 本地访问: `http:\u002F\u002Flocalhost:8002\u002Fdocs`\n- 若在虚拟机运行，请确保端口 8002 已映射或转发。\n\n### 调试与监控\n- **查看日志**: 若运行出错，请检查 Docker Compose 日志。\n- **链路追踪**: 系统内置 Jaeger 实例，访问 `http:\u002F\u002Flocalhost:16686\u002F` 可进行调试和监控。","某金融分析师团队需要在通勤途中快速消化数十页的季度财报和竞品分析 PDF，以便在晨会中即时输出洞察。\n\n### 没有 pdf-to-podcast 时\n- **阅读效率低下**：面对上百页的密集文档，必须在电脑前逐字阅读，无法利用通勤或运动等碎片时间。\n- **关键信息遗漏**：人工速读容易忽略隐藏在长文本中的细微数据变化或上下文关联，导致分析不够全面。\n- **协作成本高昂**：团队成员需各自阅读后开会同步，若有人未读完，会议效率将大打折扣，且难以统一关注焦点。\n- **数据安全风险**：若使用公共在线转换工具，敏感的财务数据可能泄露，不符合企业合规要求。\n\n### 使用 pdf-to-podcast 后\n- **随时随地聆听**：pdf-to-podcast 将枯燥的财报自动转化为生动的双人对话播客，分析师可在地铁上轻松“听”完报告。\n- **智能提炼重点**：基于 Llama 3.1 模型，工具能结合背景文档自动识别并强调关键驱动因素（如\"Q3 营收增长主因”），避免信息过载。\n- **定制化内容聚焦**：团队可输入特定指引（如“重点关注现金流风险”），让生成的音频内容直接服务于晨会讨论主题。\n- **私有化安全部署**：依托 NVIDIA NIM 架构，整个处理流程可在内网运行，确保敏感财务数据不出域，满足严格的安全合规标准。\n\n核心价值在于将静态、耗时的文档阅读转变为动态、高效的听觉学习，同时兼顾了企业级的数据安全与内容定制需求。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA-AI-Blueprints_pdf-to-podcast_1d10ef50.png","NVIDIA-AI-Blueprints","NVIDIA AI Blueprints","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FNVIDIA-AI-Blueprints_ef2128b9.png","NVIDIA AI Blueprints are reference examples that illustrate how NVIDIA NIM can be leveraged to build innovative solutions.",null,"https:\u002F\u002Fbuild.nvidia.com\u002Fnim\u002Fagent-blueprints","https:\u002F\u002Fgithub.com\u002FNVIDIA-AI-Blueprints",[22,26,30,34,38],{"name":23,"color":24,"percentage":25},"Python","#3572A5",58.6,{"name":27,"color":28,"percentage":29},"Jupyter Notebook","#DA5B0B",40.1,{"name":31,"color":32,"percentage":33},"Dockerfile","#384d54",0.6,{"name":35,"color":36,"percentage":37},"Makefile","#427819",0.5,{"name":39,"color":40,"percentage":41},"Shell","#89e051",0.2,817,209,"2026-04-07T17:29:13","Apache-2.0",3,"Linux (Ubuntu 20.04 或 22.04)","非必需（若使用云端 NVIDIA NIM API 则无需 GPU）；若本地部署 NIM，需支持 Llama 3.1 系列模型的 NVIDIA GPU（具体型号和显存需参考官方支持矩阵），建议启用 GPU 加速 PDF 处理以提升速度","最低 64GB",{"notes":51,"python":52,"dependencies":53},"1. 默认模式调用云端 API，可在无 GPU 机器运行，但需公网 IP；2. 本地部署需 NVIDIA AI Enterprise 许可证及 API Key；3. 首次启动 Docling 服务可能耗时 10-15 分钟拉取镜像；4. 生产环境需自行配置 SSL\u002FTLS 加密，默认仅为 HTTP；5. 可通过修改配置切换模型大小以优化显存占用。","未说明（项目使用 UV 管理依赖，隐含支持主流 Python 3.x 版本）",[54,55,56,57,58,59,60,61,62,63],"NVIDIA NIM (Llama 3.1 系列)","Docling","ElevenLabs API","Redis","MinIO","Docker Compose (>=2.29.1)","NVIDIA Container Toolkit","UV (Python 包管理器)","Ruff (代码检查)","Git",[65,66],"音频","视频",[68,6,69],"nim","tts",2,"ready","2026-03-27T02:49:30.150509","2026-04-08T17:21:27.477960",[],[76],{"id":77,"version":78,"summary_zh":18,"released_at":79},154213,"1.0.0","2025-01-15T19:50:45",[81,92,104,112,120,128],{"id":82,"name":83,"github_repo":84,"description_zh":85,"stars":86,"difficulty_score":46,"last_commit_at":87,"category_tags":88,"status":71},4292,"Deep-Live-Cam","hacksider\u002FDeep-Live-Cam","Deep-Live-Cam 是一款专注于实时换脸与视频生成的开源工具，用户仅需一张静态照片，即可通过“一键操作”实现摄像头画面的即时变脸或制作深度伪造视频。它有效解决了传统换脸技术流程繁琐、对硬件配置要求极高以及难以实时预览的痛点，让高质量的数字内容创作变得触手可及。\n\n这款工具不仅适合开发者和技术研究人员探索算法边界，更因其极简的操作逻辑（仅需三步：选脸、选摄像头、启动），广泛适用于普通用户、内容创作者、设计师及直播主播。无论是为了动画角色定制、服装展示模特替换，还是制作趣味短视频和直播互动，Deep-Live-Cam 都能提供流畅的支持。\n\n其核心技术亮点在于强大的实时处理能力，支持口型遮罩（Mouth Mask）以保留使用者原始的嘴部动作，确保表情自然精准；同时具备“人脸映射”功能，可同时对画面中的多个主体应用不同面孔。此外，项目内置了严格的内容安全过滤机制，自动拦截涉及裸露、暴力等不当素材，并倡导用户在获得授权及明确标注的前提下合规使用，体现了技术发展与伦理责任的平衡。",88924,"2026-04-06T03:28:53",[89,90,91,66],"开发框架","图像","Agent",{"id":93,"name":94,"github_repo":95,"description_zh":96,"stars":97,"difficulty_score":70,"last_commit_at":98,"category_tags":99,"status":71},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",85013,"2026-04-06T11:09:19",[90,100,66,101,91,102,103,89,65],"数据工具","插件","其他","语言模型",{"id":105,"name":106,"github_repo":107,"description_zh":108,"stars":109,"difficulty_score":46,"last_commit_at":110,"category_tags":111,"status":71},4128,"GPT-SoVITS","RVC-Boss\u002FGPT-SoVITS","GPT-SoVITS 是一款强大的开源语音合成与声音克隆工具，旨在让用户仅需极少量的音频数据即可训练出高质量的个性化语音模型。它核心解决了传统语音合成技术依赖海量录音数据、门槛高且成本大的痛点，实现了“零样本”和“少样本”的快速建模：用户只需提供 5 秒参考音频即可即时生成语音，或使用 1 分钟数据进行微调，从而获得高度逼真且相似度极佳的声音效果。\n\n该工具特别适合内容创作者、独立开发者、研究人员以及希望为角色配音的普通用户使用。其内置的友好 WebUI 界面集成了人声伴奏分离、自动数据集切片、中文语音识别及文本标注等辅助功能，极大地降低了数据准备和模型训练的技术门槛，让非专业人士也能轻松上手。\n\n在技术亮点方面，GPT-SoVITS 不仅支持中、英、日、韩、粤语等多语言跨语种合成，还具备卓越的推理速度，在主流显卡上可实现实时甚至超实时的生成效率。无论是需要快速制作视频配音，还是进行多语言语音交互研究，GPT-SoVITS 都能以极低的数据成本提供专业级的语音合成体验。",56375,"2026-04-05T22:15:46",[65],{"id":113,"name":114,"github_repo":115,"description_zh":116,"stars":117,"difficulty_score":46,"last_commit_at":118,"category_tags":119,"status":71},3833,"MoneyPrinterTurbo","harry0703\u002FMoneyPrinterTurbo","MoneyPrinterTurbo 是一款利用 AI 大模型技术，帮助用户一键生成高清短视频的开源工具。只需输入一个视频主题或关键词，它就能全自动完成从文案创作、素材匹配、字幕合成到背景音乐搭配的全过程，最终输出完整的竖屏或横屏短视频。\n\n这款工具主要解决了传统视频制作流程繁琐、门槛高以及素材版权复杂等痛点。无论是需要快速产出内容的自媒体创作者，还是希望尝试视频生成的普通用户，无需具备专业的剪辑技能或昂贵的硬件配置（普通电脑即可运行），都能轻松上手。同时，其清晰的 MVC 架构和对多种主流大模型（如 DeepSeek、Moonshot、通义千问等）的广泛支持，也使其成为开发者进行二次开发或技术研究的理想底座。\n\nMoneyPrinterTurbo 的独特亮点在于其高度的灵活性与本地化友好性。它不仅支持中英文双语及多种语音合成，允许用户精细调整字幕样式和画面比例，还特别优化了国内网络环境下的模型接入方案，让用户无需依赖 VPN 即可使用高性能国产大模型。此外，工具提供批量生成模式，可一次性产出多个版本供用户择优，极大地提升了内容创作的效率与质量。",54991,"2026-04-05T12:23:02",[89,103,91,66,90],{"id":121,"name":122,"github_repo":123,"description_zh":124,"stars":125,"difficulty_score":70,"last_commit_at":126,"category_tags":127,"status":71},2179,"oh-my-openagent","code-yeongyu\u002Foh-my-openagent","oh-my-openagent（简称 omo）是一款强大的开源智能体编排框架，前身名为 oh-my-opencode。它致力于打破单一模型供应商的生态壁垒，解决开发者在构建 AI 应用时面临的“厂商锁定”难题。不同于仅依赖特定模型的封闭方案，omo 倡导开放市场理念，支持灵活调度多种主流大模型：利用 Claude、Kimi 或 GLM 进行任务编排，调用 GPT 处理复杂推理，借助 Minimax 提升响应速度，或发挥 Gemini 的创意优势。\n\n这款工具特别适合希望摆脱平台限制、追求极致性能与成本平衡的开发者及研究人员使用。通过统一接口，用户可以轻松组合不同模型的长处，构建更高效、更具适应性的智能体系统。其独特的技术亮点在于“全模型兼容”架构，让用户不再受制于某一家公司的策略变动或定价调整，真正实现对前沿模型资源的自由驾驭。无论是构建自动化编码助手，还是开发多步骤任务处理流程，oh-my-openagent 都能提供灵活且稳健的基础设施支持，助力用户在快速演进的 AI 生态中保持技术主动权。",49285,"2026-04-07T23:38:42",[66,103,89,90,91],{"id":129,"name":130,"github_repo":131,"description_zh":132,"stars":133,"difficulty_score":46,"last_commit_at":134,"category_tags":135,"status":71},2863,"TTS","coqui-ai\u002FTTS","🐸TTS 是一款功能强大的深度学习文本转语音（Text-to-Speech）开源库，旨在将文字自然流畅地转化为逼真的人声。它解决了传统语音合成技术中声音机械生硬、多语言支持不足以及定制门槛高等痛点，让高质量的语音生成变得触手可及。\n\n无论是希望快速集成语音功能的开发者，还是致力于探索前沿算法的研究人员，亦或是需要定制专属声音的数据科学家，🐸TTS 都能提供得力支持。它不仅预置了覆盖全球 1100 多种语言的训练模型，让用户能够即刻上手，还提供了完善的工具链，支持用户利用自有数据训练新模型或对现有模型进行微调，轻松实现特定风格的声音克隆。\n\n在技术亮点方面，🐸TTS 表现卓越。其最新的 ⓍTTSv2 模型支持 16 种语言，并在整体性能上大幅提升，实现了低于 200 毫秒的超低延迟流式输出，极大提升了实时交互体验。此外，它还无缝集成了 🐶Bark、🐢Tortoise 等社区热门模型，并支持调用上千个 Fairseq 模型，展现了极强的兼容性与扩展性。配合丰富的数据集分析与整理工具，🐸TTS 已成为科研与生产环境中备受信赖的语音合成解决方案。",44971,"2026-04-03T14:47:02",[65,89,90]]