英伟达:将PDF文档转化为AI音频播客,让知识随时随地陪伴你pdf-to-podcast

项目简介

这个 NVIDIA AI 蓝图展示了开发者如何构建一个将 PDF 转换为引人入胜的音频内容的应用程序。基于 NVIDIA NIM,此蓝图灵活,可以在私有网络上安全运行,提供可操作的见解,而无需共享敏感数据。

蓝图接受一个目标 PDF 文件,并可选项地接受多个上下文 PDF 文件。目标 PDF 文件将是生成转录本的主要信息来源,而上下文 PDF 文件将作为代理使用的额外参考资料。用户还可以可选地指定一个引导提示,这将给代理生成的转录本提供一个焦点(例如:“关注 NVIDIA 第三季度收益报告的关键驱动因素”)。


关于 PDF、代理和 TTS 服务流程的更多信息,请参阅 mermaid 图

硬件要求

以下是硬件要求,这些要求取决于您如何选择部署蓝图。部署此蓝图有两种方式:

  1. 默认 – 使用 NVIDIA API 目录 NIM 端点

    • 8 CPU 核心

    • 64 GB RAM 

    • 100GB 磁盘空间

    • 公共 IP 地址也是必需的

    • 可在任何非 GPU 加速的机器/虚拟机上运行

  2. 本地托管 NVIDIA NIM

    • Meta Llama 3.1 8B 指令支持矩阵

    • Meta Llama 3.1 70B 指令支持矩阵

    • Meta Llama 3.1 405B 指令支持矩阵

注意:为了大规模运行蓝图并加快 PDF 的预处理,建议使用 GPU 运行 PDF 摄取/提取流程。

 

先决条件

  • NVIDIA AI Enterprise 开发者许可证需要本地主机 NVIDIA NIM。

  • API 目录密钥:

    • NVIDIA API 目录或 NGC

    • ElevenLabs 


快速入门指南

  1. Docker Compose


系统要求:基于 Ubuntu 20.04 或 22.04 的机器,具有 sudo 权限


安装软件要求:

  • 安装 Docker 引擎和 Docker Compose。请参考 Ubuntu 的说明。

  • 确保 Docker Compose 插件版本为 2.29.1 或更高。

  • 运行 docker compose 版本以确认。

  • 参考 Docker 文档中安装 Compose 插件的部分以获取更多信息。

  • 配置 Docker 以支持 GPU 加速容器,请安装 NVIDIA 容器工具包。

  • 安装 git

  1. 获取 API 密钥:


NVIDIA 推理微服务(NIM)

  • 有两种方法可以生成 NIM 的 API 密钥:

    • 选择登录后下拉菜单中的您的组织。您必须选择已启用 NVIDIA AI Enterprise (NVAIE) 的组织。

    • 点击右上角的您的账户,从下拉菜单中选择“设置”。

    • 点击“生成个人密钥”选项,然后点击“+ 生成个人密钥”按钮以创建您的 API 密钥。

    • 点击“生成 API 密钥”选项,然后点击“+生成 API 密钥”按钮以创建 API 密钥。

    • 此内容将用于 NVIDIA_API_KEY 环境变量。

    • 点击任何模型,然后点击“获取 API 密钥”,最后点击“生成密钥”。

    • 登录 NVIDIA 构建门户,使用您的电子邮件地址。

    • 登录 NVIDIA NGC 门户,使用您的电子邮件地址。

重要:此内容将在下面的 NVIDIA_API_KEY 环境变量中使用。

  1. Clone the repo  克隆仓库

git clone https://github.com/NVIDIA-AI-Blueprints/pdf-to-podcast

4. 设置环境变量

#Create env file with required variables in /home/<username>/.local/bin/env  echo "ELEVENLABS_API_KEY=your_key" >> .envecho "NVIDIA_API_KEY=your_key" >> .envecho "MAX_CONCURRENT_REQUESTS=1" >> .env
  1. 安装依赖项


我们使用 UV 来管理 Python 依赖项。

make uv

 这将:

  • 安装 UV,如果尚未安装

  • 创建虚拟环境

  • 安装项目依赖项

如果您打开一个新的终端窗口并希望快速重用相同的环境,可以再次运行 make uv。


  1. 启动开发服务器

make all-services

注意:第一次运行 make all-services 时,docling 服务可能需要 10-15 分钟来拉取和构建。后续运行将快得多。

此命令将:

  • 验证环境变量已设置

  • 创建必要的目录

  • 使用 Docker Compose 在–build 模式下启动所有服务。

注意:将 DETACH 设置为 1 以在分离模式下运行服务,以便在服务运行时继续使用您的终端。

  1. 查看 Swagger API 文档

要查看 API 的 Swagger UI,您可以在本地查看它们在 localhost:8002/docs 。如果在虚拟机上运行此程序,您需要在本地上转发 8002 端口或在外部公开该端口。


  1. 生成播客

source .venv/bin/activatepython tests/test.py --target <pdf1.pdf> --context <pdf2.pdf>

默认情况下,此命令将生成一个两人播客。要生成一个单人播客,请添加 –monologue 标志。重要:默认情况下, test.py 预期 pdf 文件位于 samples 目录中。


调试测试中出现的错误,请查看 Docker Compose 日志。

项目链接

https://github.com/NVIDIA-AI-Blueprints/pdf-to-podcast

扫码加入技术交流群,备注开发语言-城市-昵称

(文:GitHubStore)

欢迎分享

发表评论