Files

93 lines
2.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Realtime Dialog External RAG Test
一个新的独立测试项目,参考 `realtime_dialog/java` 的实现方式,直接通过 WebSocket 接入实时对话服务,验证 `external_rag` 外接知识库输入是否能稳定产生音频回复。
## 能力
- 文本模式测试
- 麦克风模式测试
- 音频文件模式测试
- 原始音频播放
- 通过 `external_rag` 注入外接知识库内容
- 将服务端返回音频保存为 `output.pcm`
## 环境要求
- Java 8+
- Maven 3.8+
## 运行前准备
准备一个 JSON 文件,内容是数组,例如:
```json
[
{
"title": "公司介绍",
"content": "我们是一家专注于企业数字化服务的公司。"
},
{
"title": "核心产品",
"content": "核心产品包括智能客服平台、知识库系统和企业自动化工具。"
}
]
```
默认情况下,程序会自动尝试读取 `../../test2/server/.env`,并复用其中的:
- `VOLC_S2S_APP_ID`
- `VOLC_S2S_TOKEN`
也可以通过 `--test2-env` 显式指定路径。
## 常用命令
编译:
```bash
mvn clean package
```
文本模式:
```bash
mvn exec:java -Dexec.args="--mod=text --app_id=你的AppId --access_key=你的AccessKey --rag-file=sample_rag.json"
```
文本模式(直接复用 `test2/server/.env`
```bash
mvn exec:java -Dexec.args="--mod=text --rag-file=sample_rag.json"
```
麦克风模式:
```bash
mvn exec:java -Dexec.args="--app_id=你的AppId --access_key=你的AccessKey --rag-file=sample_rag.json"
```
音频文件模式:
```bash
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`:音频文件路径
- `--mod``audio``text`
- `--format``pcm``pcm_s16le`
- `--rag-file`:外接知识库 JSON 文件路径
- `--rag-delay-ms`:发送 external_rag 前延迟,默认 3000ms
- `--test2-env`:显式指定 `test2/server/.env` 路径
## 说明
这个项目保留了 `realtime_dialog` 的核心思路:
- 用真实音频包判断回复是否发生
-`external_rag` 验证外接知识库是否能直接进入主回复链路
- 不依赖 RTC 字幕判断是否有音频返回