一个面向 ODM 研发测试场景的智能助手演示项目,结合 RTC 语音交互、RAG 知识检索、LLM 流式生成和 TTS 语音回复,并使用脱敏 mock 数据支持本地运行。

Stars

35

7 天增长

暂无数据

Fork 数

1

开放 Issue

0

开源协议

NOASSERTION

最近更新

2026-07-30

AI 仓库情报摘要
FR-AI / ANALYSIS

为什么值得关注

它展示了从语音输入到 ASR、RAG 检索、LLM 流式生成、TTS 播放的完整链路,专门针对 ODM 测试中的 SOP 查询和问题排查场景,且提供了可本地运行的 mock RAG 知识库。

适合谁使用

  • 需要快速查询 SOP、测试规范和故障处理方法的 ODM 研发测试工程师
  • 希望搭建 RTC + LLM + RAG 语音助手的开发者
  • 评估内部工程知识助手方案的技术负责人
  • 需要集成火山引擎 RTC、Ark LLM、ASR/TTS 的开发者

典型使用场景

  • 工程师通过语音查询 SOP、测试规范和常见问题处理方法
  • 指导新人排查蓝牙、Wi-Fi、ANR、刷机失败、相机黑屏等问题
  • 演示 RAG 先检索 ODM 工程知识、再由 LLM 生成可执行建议的流程
  • 作为生产级内部 RAG 智能助手的可扩展原型模板

项目优势

  • 覆盖语音进房、ASR、RAG、LLM 流式生成、TTS 播放和打断的完整链路
  • mock 知识库涵盖多种真实软硬件问题,便于理解和演示
  • 提供清晰的本地启动步骤和 .env.example,并强调密钥安全保护
  • 预留替换为真实企业知识库(如火山知识库/VikingDB)的演进路径

使用前须知

  • 当前使用轻量关键词检索和 mock 数据,并非生产级 RAG 系统
  • 完整语音助手功能需要配置火山 RTC、ASR/TTS、Ark 等外部服务
  • CustomLLM callback 联调需要公网 HTTPS 回调地址(如 ngrok),增加部署复杂度

README 快速开始

XZY ODM 研发测试助手

本项目演示一个面向 ODM 研发测试场景的智能助手架构,包含 RTC 语音交互、RAG 知识检索、LLM 流式生成和 TTS 语音回复能力。

页面展示名为 XZY 研发测试助手,用于模拟内部工程师查询 SOP、测试规范、软硬件常见问题、历史缺陷和日志分析方法。

业务背景

ODM 研发测试过程中会沉淀大量规范、问题单、调试记录和历史缺陷。

新人排查蓝牙、Wi-Fi、ANR、刷机失败、相机黑屏等问题时,常常需要在多份文档和日志中来回检索。

本项目用脱敏 mock 数据演示一个轻量研发测试助手:先检索工程知识,再生成简洁、可执行的处理建议。

架构流程

用户语音
  ↓
前端 RTC SDK
  ↓
火山 RTC 云端 Agent
  ↓
ASR 语音转文字
  ↓
CustomLLM Callback
  ↓
Python FastAPI /api/chat_callback
  ↓
RAG 检索 ODM 工程知识
  ↓
Ark / Doubao LLM 流式生成
  ↓
SSE 返回 RTC 云端
  ↓
TTS 合成语音
  ↓
前端播放 AI 回复

前端职责

前端展示 RTC 进房、设备控制、字幕展示、打断和通话状态展示能力。 当前改造只使用场景展示和少量样式,使页面呈现为内部工程工作台风格。

默认前端代理地址保持为:

http://localhost:3001

后端职责

项目保留一套 Python 后端:rag_llm_server。 接口路径和端口保持不变,Python 后端负责返回场景配置、代理 RTC OpenAPI 请求,并接收 CustomLLM callback 执行 RAG 检索与 LLM 流式生成。

需要兼容的接口:

/getScenes
/proxy
/api/chat_callback
/debug/chat
/debug/rag

RTC / ASR / LLM / TTS 协作关系

RTC 负责实时音频传输和 Agent 链路编排; ASR 将用户语音转成文本; CustomLLM callback 把文本请求转发到本地 FastAPI; RAG 先检索 ODM 工程知识; LLM 根据知识上下文生成回答; TTS 将回答合成为语音并回传给前端播放。

RAG 知识库说明

当前 GitHub 展示版为了方便本地运行,默认使用 rag_llm_server/data/odm_knowledge.json 中的脱敏 mock ODM 知识数据和轻量关键词检索逻辑模拟 RAG 流程。 真实企业环境可替换为火山知识库 / VikingDB 或企业内部 RAG 检索服务。

mock 数据覆盖:

X100 蓝牙连接失败、Wi-Fi 断连日志抓取、ANR 日志分析、刷机失败、相机预览黑屏、音频无声、测试报告提交规范、Bug 回归验证等。

本地启动方式

1. 准备环境变量

首次运行时,先从模板创建自己的本地环境变量文件:

cp .env.example rag_llm_server/.env

然后编辑 rag_llm_server/.env,填入自己的火山引擎、RTC、Ark、ASR/TTS 和公网回调地址配置。不要把 rag_llm_server/.env 提交到 GitHub。

2. 启动 Python 后端

cd rag_llm_server
python main.py

后端默认监听:

http://localhost:3001

3. 启动公网回调映射

如果要测试完整 RTC 云端 Agent + CustomLLM callback,需要让火山云端能访问本地 Python 后端。可以使用 ngrok:

ngrok http 3001

把 ngrok 输出的 Forwarding HTTPS 地址填到 rag_llm_server/.env

SERVER_URL=https://your-ngrok-domain.ngrok-free.app

注意:SERVER_URL 只填写域名,不要带 /api/chat_callback,代码会自动拼接成:

{SERVER_URL}/api/chat_callback

如果只是查看前端页面或调试本地 mock RAG,可以暂时不启动 ngrok。

4. 启动前端

npm install
npm run dev

前端默认访问:

http://localhost:3000

环境变量说明

rag_llm_server/.env 需要包含:

VOLC_ACCESS_KEY=your_volc_access_key
VOLC_SECRET_KEY=your_volc_secret_key
ARK_API_KEY=your_ark_api_key
ARK_ENDPOINT_ID=your_ark_endpoint_id
RTC_APP_ID=your_rtc_app_id
RTC_APP_KEY=your_rtc_app_key
RTC_TOKEN_MODE=auto
RTC_DEBUG_PRINT_TOKEN=fa

项目描述

精简版demo,仅用于个人技术学习分享,不涉及商业数据,数据已处理脱敏。

相关仓库与替代方案

根据分类、Topic 和编程语言匹配的相似项目。

makecindy
精选
makecindy GitHub avatar

cindy

Cindy is an open-source AI agent that runs locally on your machine, integrates multiple AI harnesses and models, and provides memory, skills, and automation to perform real work in your projects and apps.

AI 与机器学习大语言模型
958
hahhforest
精选
hahhforest GitHub avatar

pi-textbook

A hands-on course that walks through building a Pi-style coding agent from scratch across 15 checkpoints, starting from an offline agent trajectory.

AI 与机器学习大语言模型
625
0xwilliamortiz
精选
0xwilliamortiz GitHub avatar

openclaude-improved

OpenClaude is an open-source CLI coding agent that runs on any platform and supports a wide range of LLM providers, offering the same tools and workflows as Claude Code.

AI 与机器学习大语言模型
577