Jockey: A Conversational Video Agent Powered by Twelve Labs APIs and LangGraph

Jockey:由 Twelve Labs API 和 LangGraph 驱动的对话式视频代理

客座博客文章,介绍对话式视频代理 Jockey 如何使用 LangGraph 和 Twelve Labs API 进行更智能的视频处理。

6 分钟阅读

这是一篇由 Twelve Labs 的 James Le 和 Travis Couture 撰写的客座博客文章。您也可以在 Twelve Labs 博客上阅读此博文。

1 - Twelve Labs API 概述

Twelve Labs 提供最先进的 视频理解 API,可从视频内容中提取丰富的洞察和信息。这些 API 由先进的视频基础模型 (VFMs) 驱动,原生处理视频,无需依赖预生成的字幕等中间表示。这可以更准确、更 contextual 地理解完整的视频,包括视觉效果、音频、屏幕文本和时间关系。

Twelve Labs API 的主要功能包括视频搜索、分类、摘要、问答等。开发人员可以轻松集成这些 API,以构建用于内容发现、视频编辑自动化、交互式视频 FAQ 和 AI 生成的精彩片段等用例的应用程序。凭借企业级的安全性和扩展能力,即使是最大的视频档案也能处理,Twelve Labs API 为视频驱动的应用程序开辟了令人兴奋的新可能性。

2 - LangGraph v0.1 和 LangGraph Cloud 发布

LangChain 最近发布了 LangGraph v0.1,这是一个用于构建具有更强控制和精确度的代理和多代理应用程序的框架。与传统的 LangChain AgentExecutor 不同,LangGraph 为自定义认知架构提供了灵活的 API,允许开发人员控制代码流、提示和 LLM 调用。LangGraph 还通过其内置的持久层促进人机代理协作,从而在任务执行前实现人工批准,并实现“时间旅行”以编辑和恢复代理操作。LangGraph 的灵活性和低级别控制允许单代理和多代理设置,同时还提高了代理的可靠性——这对于 Replit、Norwegian Cruise Line 和 Elastic 等公司至关重要。

为了补充 LangGraph 框架,LangChain 还推出了 LangGraph Cloud,目前正在进行封闭测试。LangGraph Cloud 提供可扩展的基础设施,专门用于部署 LangGraph 代理,管理水平扩展服务器和任务队列,以高效处理大量并发用户并存储大型状态。该服务支持真实的交互模式,包括双重文本处理当前运行线程上的新用户输入,以及用于长时间运行任务的异步后台作业。LangGraph Cloud 与 LangGraph Studio 集成,LangGraph Studio 是一款用于可视化和调试代理轨迹的工具,可为构建代理应用程序的开发人员实现快速迭代和反馈。

3 - Jockey 如何利用 LangGraph 和 Twelve Labs API

Jockey,一个开源对话式视频代理,在其最新的 v1.1 版本中得到了显著发展。Jockey 最初在 v1.0 中基于 LangChain 构建,现在利用 LangGraph 的强大功能,为前端和后端操作提供增强的可扩展性和改进的功能。这种转变标志着 Jockey 架构的关键进步,使其能够更高效、更精确地控制复杂的视频工作流程。

Jockey 的核心是将大型语言模型 (LLM) 的优势与 Twelve Labs 专门的视频 API 通过 LangGraph 的灵活框架相结合。如上图所示,LangGraph UI 展示了构成 Jockey 决策过程的复杂节点网络。这包括诸如主管、规划器、视频编辑、视频搜索和视频文本生成节点等关键组件,每个组件都在处理用户查询和执行视频相关任务中发挥着至关重要的作用。

采用 LangGraph 的主要优势之一是它为工作流程的每个步骤提供了精细的控制。这使 Jockey 能够精确管理在节点之间传递哪些信息,以及它们的响应如何为整体状态做出贡献。这种精细的控制不仅优化了 token 的使用,而且还可以更准确地指导节点响应,从而实现更高效、更有效的视频处理。

上面 Jockey 的数据流图清晰地可视化了信息如何在系统中流动。它展示了从初始查询输入到 LangGraph 分析以确定查询复杂性的决策过程,以及随后路由到简单的文本响应或更复杂的视频处理步骤链。这包括从 Twelve Labs API 检索视频、根据需要组合或分割视频内容,并将最终结果呈现给用户。

通过利用 LangGraph 的可扩展架构和 Twelve Labs 强大的视频 API,Jockey 展示了一种用于视频理解和操作的复杂方法。这种组合允许无缝处理从视频搜索和编辑到基于视频内容生成文本的任务,所有这些都通过智能对话界面进行协调。

4 - Jockey 架构概述

Jockey 的架构旨在通过复杂的多代理系统高效处理复杂的视频相关任务。如上图所示,该系统包含三个主要组件:主管规划器工作者,每个组件都在处理用户请求和执行视频相关任务中发挥着至关重要的作用。

主管充当中央协调员,负责在不同节点之间路由任务并管理整体工作流程。它接收用户输入并确定下一步操作,无论是让规划器处理复杂请求还是将任务定向到特定的工作者。主管还处理错误恢复,并确保系统遵守当前计划或在必要时启动重新规划。

规划器由主管调用,为复杂的用户请求创建详细的、逐步的计划。此组件对于将复杂的任务分解为可由工作者执行的可管理步骤至关重要。当处理需要战略方法的多步骤视频处理工作流程时,规划器的作用尤为重要。

工作者部分包含两个关键组件

  1. 指导员,根据规划器的策略为各个工作者生成精确而完整的任务指令。
  2. 实际工作者,即使用可用工具执行指令的专门代理。这些工具包括 视频搜索视频文本生成视频编辑 功能。

这种架构使 Jockey 能够灵活而精确地处理各种视频相关任务。系统可以动态适应不同类型的查询,从简单的文本响应到复杂的视频操作任务。通过利用 LangGraph 的框架,Jockey 可以有效地管理节点之间的状态,优化 token 的使用,并提供对视频处理工作流程中每个步骤执行的精细控制。

0:00
/1:19

5 - 自定义 Jockey

Jockey 的模块化设计还有助于自定义和扩展。开发人员可以修改提示,扩展状态以处理更复杂的情况,或添加新的工作者来解决特定的用例,使 Jockey 成为构建高级视频 AI 应用程序的多功能基础。

提示即功能

这种方法利用 Jockey 的语言模型功能来引入新功能,而无需修改底层代码。例如,您可以创建一个提示,指示 Jockey 识别和提取视频中的特定类型的场景,例如动作序列或情感时刻,而无需更改核心系统。

扩展或修改 Jockey

对于更实质性的自定义,开发人员可以直接修改 Jockey 的组件

  1. 修改提示:您可以编辑 Jockey 各个组件(如主管、规划器或工作者)使用的现有提示。这允许微调系统的决策过程和输出生成。
  2. 扩展或修改状态:可以扩展 Jockey 中的状态管理以包含其他信息,或进行修改以处理新型数据。当将 Jockey 与其他系统集成或处理专门的视频元数据时,这尤其有用。您可以向状态对象添加新字段,或修改现有状态信息的处理方式以及在组件之间的传递方式。
  3. 添加或修改工作者:您可以为高级视频效果或视频生成等任务创建新的专门工作者,修改现有工作者以增强其功能或与新的 API 集成,并为指导员实施自定义逻辑以处理新型任务。

6 - 结论

Jockey 代表了 LangGraph 灵活的代理框架和 Twelve Labs 先进的视频理解 API 的强大融合,为智能视频处理和交互开辟了新的可能性。要开始使用,请访问 Jockey GitHub 存储库,并查看 LangGraph 文档以访问源代码和文档。Twelve Labs API 还可以帮助您在应用程序中释放视频 AI 的全部潜力。您可以本地部署 Jockey 进行开发和测试,或利用 LangGraph Cloud 进行可扩展的生产部署。