Files

2.2 KiB
Raw Permalink Blame History

Realtime Dialog External RAG Test

一个新的独立测试项目,参考 realtime_dialog/java 的实现方式,直接通过 WebSocket 接入实时对话服务,验证 external_rag 外接知识库输入是否能稳定产生音频回复。

能力

  • 文本模式测试
  • 麦克风模式测试
  • 音频文件模式测试
  • 原始音频播放
  • 通过 external_rag 注入外接知识库内容
  • 将服务端返回音频保存为 output.pcm

环境要求

  • Java 8+
  • Maven 3.8+

运行前准备

准备一个 JSON 文件,内容是数组,例如:

[
  {
    "title": "公司介绍",
    "content": "我们是一家专注于企业数字化服务的公司。"
  },
  {
    "title": "核心产品",
    "content": "核心产品包括智能客服平台、知识库系统和企业自动化工具。"
  }
]

默认情况下,程序会自动尝试读取 ../../test2/server/.env,并复用其中的:

  • VOLC_S2S_APP_ID
  • VOLC_S2S_TOKEN

也可以通过 --test2-env 显式指定路径。

常用命令

编译:

mvn clean package

文本模式:

mvn exec:java -Dexec.args="--mod=text --app_id=你的AppId --access_key=你的AccessKey --rag-file=sample_rag.json"

文本模式(直接复用 test2/server/.env

mvn exec:java -Dexec.args="--mod=text --rag-file=sample_rag.json"

麦克风模式:

mvn exec:java -Dexec.args="--app_id=你的AppId --access_key=你的AccessKey --rag-file=sample_rag.json"

音频文件模式:

mvn exec:java -Dexec.args="--audio=whoareyou.wav --app_id=你的AppId --access_key=你的AccessKey --rag-file=sample_rag.json"

参数

  • --app_id:实时对话应用 ID
  • --access_key:实时对话 Access Key
  • --audio:音频文件路径
  • --modaudiotext
  • --formatpcmpcm_s16le
  • --rag-file:外接知识库 JSON 文件路径
  • --rag-delay-ms:发送 external_rag 前延迟,默认 3000ms
  • --test2-env:显式指定 test2/server/.env 路径

说明

这个项目保留了 realtime_dialog 的核心思路:

  • 用真实音频包判断回复是否发生
  • external_rag 验证外接知识库是否能直接进入主回复链路
  • 不依赖 RTC 字幕判断是否有音频返回