Gabber

4个月前发布 174 00

Gabber 不只是一个工具,更是一种构建实时 AI 系统的新方式:以图为中心,以流为驱动,以模态融合为目标。如果你正在开发语音助手、虚拟主播、智能客服或多模态交互系统,Gabber 可能正是你需要的那个“胶水层”——把分散的技术模块,真正串联成一个活的系统。

所在地:
美国
收录时间:
2025-08-15
其他站点:

在语音、文本、视频融合交互日益普遍的当下,开发者面临一个共同挑战:如何高效构建低延迟、多参与者、跨模态协同的实时 AI 系统?

Gabber 是一个开源的实时 AI 引擎,支持语音、文本、视频等多种模态的并行处理,采用基于图(graph-based)的编程模型,允许开发者通过可视化连接节点的方式,快速搭建复杂的多模态 AI 流程。

Gabber

它的核心目标很明确:让开发者能像搭积木一样,构建高复杂度、低延迟的实时 AI 应用。

快速上手:三步启动本地环境

Gabber 采用模块化架构,本地运行依赖几个关键组件。以下是快速部署流程:

1. 安装依赖

  • LiveKit(用于 WebRTC 媒体传输)
brew install livekit
  • uv(Python 依赖管理工具)
curl -LsSf https://astral.sh/uv/install.sh | sh

2. 启动所有服务

make all

该命令将自动启动前端、引擎、编辑器和存储服务。

3. 访问前端界面

打开浏览器访问:http://localhost:3000

你将看到 Gabber 的可视化编辑界面,可以开始创建或加载应用。

Gabber

密钥管理:安全且灵活

某些节点(如调用大模型 API 的 OpenAICompatibleLLM)需要外部服务密钥。Gabber 提供了安全的密钥管理机制:

  • 将密钥写入项目根目录下的 .secret 文件;
  • 系统会在需要密钥的节点下拉菜单中自动列出可用密钥;
  • 关键设计:密钥值不会存储在图结构数据中,确保你在分享应用或子图时不会泄露敏感信息。

这一机制兼顾了便利性与安全性,特别适合团队协作与开源共享。

核心概念:图式编程模型详解

Gabber 的编程模型基于“图”(Graph),其核心由四个层次构成:应用、节点、Pad、子图,外加状态机实现流程控制。

1. 应用(Application)

“应用”是 Gabber 中的最高层级对象,代表一个完整的可执行图。它由多个节点通过 Pad 连接而成,定义了从输入到输出的完整数据流。

例如:一个语音助手应用可能包含“音频输入 → 语音识别 → 意图理解 → 大模型响应 → 语音合成 → 输出”这一整条链路。

2. 节点(Node)

节点是图中的功能单元,每个节点执行特定任务,例如:

  • 摄取音频/视频流
  • 实时转录语音(ASR)
  • 情感分析
  • 调用 LLM API
  • 生成语音(TTS)
  • 发送 WebSocket 消息

每个节点有输入和输出端口,称为 Pad

3. Pad:数据流动的连接点

Pad 是节点之间的连接接口,分为两种类型:

类型说明
接收 Pad(Sink Pad)接收上游数据
发送 Pad(Source Pad)向下游发送数据

以及两种“模式”:

  • 属性型(Property):始终持有一个值(如配置参数或最新状态)
  • 无状态型(Stateless):按事件顺序流式传输数据(如逐条文本、帧级视频)

Pad 具有明确的数据类型(如 textaudiojson),只有类型兼容的 Pad 才能连接,确保数据流的正确性。

4. 子图(Subgraph):复用与封装

子图本质上是一个“可嵌入的图”,它可以被当作一个普通节点插入到其他应用中,实现逻辑复用。

通过代理节点(Proxy Node),你可以定义子图的输入和输出接口,使其在父图中表现为一个黑盒组件。

✅ 示例:将“语音识别 + 意图解析 + 回应生成”封装为一个“对话模块”,在多个项目中重复使用。

这种设计极大提升了开发效率和架构清晰度。

5. 状态机(State Machine):控制应用流程

对于需要条件分支或状态切换的应用(如客服机器人、游戏对话系统),Gabber 提供了内置的状态机系统。

状态机包含:

  • 参数(Parameters):监听的变量(如用户情绪、对话轮次)
  • 状态(States):应用所处的不同阶段(如“欢迎”、“提问”、“结束”)
  • 状态转换(Transitions):基于参数变化触发状态跳转
  • 转换逻辑:支持 AND 逻辑(多个条件同时满足),多个转换并行可实现 OR 效果

状态机与图式流程结合,使 Gabber 不仅能处理数据流,还能实现行为逻辑的动态控制

系统架构:前后端协同运行

Gabber 由四个核心服务组成,协同完成应用的构建、运行与存储。

服务作用默认端口
前端(Frontend)Next.js 构建的可视化编辑器,供用户交互3000
编辑器(Editor)前端的后端服务,处理图结构操作3001
引擎(Engine)核心运行时,负责执行图中节点的数据流转8000
存储库(Repository)轻量级本地 HTTP 服务,管理应用与子图的持久化8001

所有应用数据保存在本地 .gabber 目录中,便于版本控制与迁移。

SDK 支持:多语言集成

Gabber 提供多种 SDK,帮助开发者将引擎能力集成到自己的项目中:

SDK适用场景
JavaScript/TypeScript SDK适用于 Node.js、浏览器、Bun、Deno,不依赖框架
React SDK提供 Hooks、Provider 和 UI 组件,快速构建 React/React Native 应用
Python SDK用于后端服务集成、脚本开发与原型验证

所有 SDK 均支持与 Gabber 引擎通信,实现远程控制、状态监听与自定义节点扩展。

示例应用:从入门到实战

Gabber 仓库内置多个示例应用,涵盖典型使用场景:

  • 实时语音转录与情感分析
  • 多人会议中的角色识别与摘要生成
  • 视频流中的对象检测与语音反馈
  • 基于大模型的交互式语音助手

使用方法:

  1. 启动服务(make all
  2. 打开前端 → 进入“示例”选项卡
  3. 选择任一示例,点击加载并运行
  4. 查看节点连接与数据流动

这些示例不仅展示了 Gabber 的能力边界,也为开发者提供了可复用的模板。

数据统计

相关导航

暂无评论

none
暂无评论...