先决条件该应用程序是一个聊天机器人,可以回答视频中的问题。此外,它还提供视频中的时间戳,可以帮助您找到用于回答问题的来源。
克隆示例应用程序的仓库。在终端中,运行以下命令。
该项目包含以下目录和文件。
指定您的 API 密钥。在 docker-genai
目录中,创建一个名为 .env
的文本文件,并在其中指定您的 API 密钥。以下是 .env.example
文件的内容,您可以将其作为示例参考。
构建并运行应用程序。在终端中,将目录更改为您的 docker-genai
目录并运行以下命令。
Docker Compose 将根据 docker-compose.yaml
文件中定义的服务构建并运行应用程序。当应用程序运行时,您将在终端中看到 2 个服务的日志。
在日志中,您将看到服务暴露在端口 8503
和 8504
上。这两个服务相辅相成。
yt-whisper
服务正在端口 8503
上运行。此服务将您想要存档到知识数据库中的视频提供给 Pinecone 数据库。以下部分将探讨此服务。
yt-whisper 服务是一个 YouTube 视频处理服务,它使用 OpenAI Whisper 模型生成视频转录,并将其存储在 Pinecone 数据库中。以下步骤展示了如何使用该服务。
打开浏览器并访问位于 http://localhost:8503
dockerbot 服务是一个问答服务,它利用 Pinecone 数据库和 AI 模型来提供 پاسخ. 以下步骤展示了如何使用该服务。
注意
在使用 dockerbot 服务之前,您必须通过 yt-whisper 服务 处理至少一个视频。
打开浏览器并访问位于 http://localhost:8504https://www.youtube.com/watch?v=yaQZFhrW0fU
在本例中,Dockerbot 回答了问题,并提供了带有时间戳的视频链接,其中可能包含有关答案的更多信息。
dockerbot 服务接收问题,使用 text-embedding-3-small 模型将其转换为嵌入,查询 Pinecone 数据库以查找类似的嵌入,然后将该上下文传递到 gpt-4-turbo-preview 以生成答案。
选择第一个链接以查看它提供的信息。根据前面的示例,选择 https://www.youtube.com/watch?v=yaQZFhrW0fU&t=553s。
在示例链接中,您可以看到该视频片段完美地回答了“什么是糖曲奇?”这个问题。
下图显示了应用程序的高级服务架构,其中包括
- yt-whisper:一个本地服务,由 Docker Compose 运行,与远程 OpenAI 和 Pinecone 服务交互。
- dockerbot:一个本地服务,由 Docker Compose 运行,与远程 OpenAI 和 Pinecone 服务交互。
- OpenAI:远程第三方服务。
- Pinecone:远程第三方服务。
该应用程序使用 Docker 在容器中运行应用程序,为运行应用程序提供一致且隔离的环境。这意味着无论底层系统差异如何,应用程序都将在其 Docker 容器中按预期运行。要了解有关 Docker 的更多信息,请参阅入门概述。
Docker Compose 是一个用于定义和运行多容器应用程序的工具。Compose 可以轻松地使用单个命令 docker compose up
运行此应用程序。有关更多详细信息,请参阅Compose 概述。
OpenAI API 提供了一种以其尖端人工智能和机器学习技术而闻名的 LLM 服务。在此应用程序中,OpenAI 的技术用于从音频(使用 Whisper 模型)生成转录,为文本数据创建嵌入,以及生成对用户查询的响应(使用 GPT 和聊天补全)。有关更多详细信息,请参阅openai.com。
Whisper 是 OpenAI 开发的自动语音识别系统,旨在将口语转录成文本。在此应用程序中,Whisper 用于将 YouTube 视频中的音频转录成文本,从而能够进一步处理和分析视频内容。有关更多详细信息,请参阅Whisper 介绍。
嵌入是文本或其他数据类型的数字表示形式,它以机器学习算法可以处理的方式捕获其含义。在此应用程序中,嵌入用于将视频转录转换为可以查询和分析与用户输入相关性的向量格式,从而促进应用程序中高效的搜索和响应生成。有关更多详细信息,请参阅 OpenAI 的嵌入文档。
此应用程序中通过 OpenAI 的 API 使用的聊天补全是指根据给定的上下文或提示生成对话响应。在应用程序中,它用于通过处理和整合来自视频转录和其他输入的信息,提供对用户查询的智能、上下文感知答案,增强聊天机器人的交互能力。有关更多详细信息,请参阅 OpenAI 的聊天补全 APIPineconePinecone 是一种针对相似性搜索进行优化的向量数据库服务,用于构建和部署大规模向量搜索应用程序。在此应用程序中,Pinecone 用于存储和检索视频转录的嵌入,从而能够根据用户查询在应用程序内进行高效且相关的搜索。有关更多详细信息,请参阅pincone.io。
检索增强生成 (RAG) 是一种将信息检索与语言模型相结合的技术,以根据检索到的文档或数据生成响应。在 RAG 中,系统检索相关信息(在本例中,通过视频转录中的嵌入),然后使用语言模型根据此检索到的数据生成响应。有关更多详细信息,请参阅 OpenAI 的使用 Pinecone 进行检索增强生成式问答的教程。
探索如何创建 PDF 机器人应用程序使用生成式 AI,或在GenAI Stack存储库中查看更多 GenAI 示例。