diff --git a/README.md b/README.md index c90f7a3..2cb00e9 100644 --- a/README.md +++ b/README.md @@ -10,8 +10,8 @@ 1. 需要准备两个 Terminal,分别启动服务端、前端页面。 2. **根据你自定义的 RoomId、UserId 以及申请的 AppID、BusinessID(如有)、Token、ASR AppID、TTS AppID,修改 `src/config/config.ts` 文件中 `ConfigFactory` 中 `BaseConfig` 的配置信息**。 -3. 使用火山引擎控制台账号的 [AK、SK](https://console.volcengine.com/iam/keymanage)、[SessionToken](https://www.volcengine.com/docs/6348/1315561#sub)(临时token, 子账号才需要), 修改 `Server/app.js` 文件中的 `ACCOUNT_INFO`。 -4. 您需要在 [火山方舟-在线推理](https://console.volcengine.com/ark/region:ark+cn-beijing/endpoint?config=%7B%7D) 中创建接入点, 并将模型对应的接入点 ID 填入 `src/config/common.ts` 文件中的 `ARK_V3_MODEL_ID`, 否则无法正常启动智能体。 +3. 使用火山引擎控制台账号的 [AK、SK](https://console.volcengine.com/iam/keymanage?s=g)、[SessionToken](https://www.volcengine.com/docs/6348/1315561#sub?s=g)(临时token, 子账号才需要), 修改 `Server/app.js` 文件中的 `ACCOUNT_INFO`。 +4. 您需要在 [火山方舟-在线推理](https://console.volcengine.com/ark/region:ark+cn-beijing/endpoint?config=%7B%7D&s=g) 中创建接入点, 并将模型对应的接入点 ID 填入 `src/config/common.ts` 文件中的 `ARK_V3_MODEL_ID`, 否则无法正常启动智能体。 5. 如果您已经自行完成了服务端的逻辑,可以不依赖 Demo 中的 Server,直接修改前端代码文件 `src/config/index.ts` 中的 `AIGC_PROXY_HOST` 请求域名和接口,并在 `src/app/api.ts` 中修改接口的参数配置 `APIS_CONFIG`。 ## 快速开始 @@ -42,18 +42,18 @@ yarn dev ### 常见问题 | 问题 | 解决方案 | | :-- | :-- | -| **启动智能体之后, 对话无反馈,或者一直停留在 "AI 准备中, 请稍侯"** |
  • 可能因为控制台中相关权限没有正常授予,请参考[流程](https://www.volcengine.com/docs/6348/1315561)再次确认下是否完成相关操作。此问题的可能性较大,建议仔细对照是否已经将相应的权限开通。
  • 参数传递可能有问题, 例如参数大小写、类型等问题,请再次确认下这类型问题是否存在。
  • 相关资源可能未开通或者用量不足,请再次确认。
  • **请检查当前使用的模型 ID 等内容都是正确且可用的。**
  • | -| `Server/app.js` 中的 `sessionToken` 是什么,该怎么填,为什么要填 | `sessionToken` 是火山引擎子账号发起 OpenAPI 请求时所必须携带的临时 Token,获取方式可参考 [此文章末尾](https://www.volcengine.com/docs/6348/1315561)。 | +| **启动智能体之后, 对话无反馈,或者一直停留在 "AI 准备中, 请稍侯"** |
  • 可能因为控制台中相关权限没有正常授予,请参考[流程](https://www.volcengine.com/docs/6348/1315561?s=g)再次确认下是否完成相关操作。此问题的可能性较大,建议仔细对照是否已经将相应的权限开通。
  • 参数传递可能有问题, 例如参数大小写、类型等问题,请再次确认下这类型问题是否存在。
  • 相关资源可能未开通或者用量不足,请再次确认。
  • **请检查当前使用的模型 ID 等内容都是正确且可用的。**
  • | +| `Server/app.js` 中的 `sessionToken` 是什么,该怎么填,为什么要填 | `sessionToken` 是火山引擎子账号发起 OpenAPI 请求时所必须携带的临时 Token,获取方式可参考 [此文章末尾](https://www.volcengine.com/docs/6348/1315561?s=g)。 | | **浏览器报了 `Uncaught (in promise) r: token_error` 错误** | 请检查您填在项目中的 RTC Token 是否合法,检测用于生成 Token 的 UserId、RoomId 是否与项目中填写的一致。 | | [StartVoiceChat]Failed(Reason: The task has been started. Please do not call the startup task interface repeatedly.) 报错 | 由于目前设置的 RoomId、UserId 为固定值,重复调用 startAudioBot 会导致出错,只需先调用 stopAudioBot 后再重新 startAudioBot 即可。 | -| 为什么我的麦克风正常、摄像头也正常,但是设备没有正常工作? | 可能是设备权限未授予,详情可参考 [Web 排查设备权限获取失败问题](https://www.volcengine.com/docs/6348/1356355)。 | +| 为什么我的麦克风正常、摄像头也正常,但是设备没有正常工作? | 可能是设备权限未授予,详情可参考 [Web 排查设备权限获取失败问题](https://www.volcengine.com/docs/6348/1356355?s=g)。 | | 接口调用时, 返回 "Invalid 'Authorization' header, Pls check your authorization header" 错误 | `Server/app.js` 中的 AK/SK/SessionToken 不正确 | -| 什么是 RTC | **R**eal **T**ime **C**ommunication, RTC 的概念可参考[官网文档](https://www.volcengine.com/docs/6348/66812)。 | -| 不清楚什么是主账号,什么是子账号 | 可以参考[官方概念](https://www.volcengine.com/docs/6257/64963?hyperlink_open_type=lark.open_in_browser) 。| +| 什么是 RTC | **R**eal **T**ime **C**ommunication, RTC 的概念可参考[官网文档](https://www.volcengine.com/docs/6348/66812?s=g)。 | +| 不清楚什么是主账号,什么是子账号 | 可以参考[官方概念](https://www.volcengine.com/docs/6257/64963?hyperlink_open_type=lark.open_in_browser&s=g) 。| 如果有上述以外的问题,欢迎联系我们反馈。 ### 相关文档 -- [场景介绍](https://www.volcengine.com/docs/6348/1310537) -- [Demo 体验](https://www.volcengine.com/docs/6348/1310559) -- [场景搭建方案](https://www.volcengine.com/docs/6348/1310560) +- [场景介绍](https://www.volcengine.com/docs/6348/1310537?s=g) +- [Demo 体验](https://www.volcengine.com/docs/6348/1310559?s=g) +- [场景搭建方案](https://www.volcengine.com/docs/6348/1310560?s=g) diff --git a/src/app/type.ts b/src/app/type.ts index a2ece20..af474a6 100644 --- a/src/app/type.ts +++ b/src/app/type.ts @@ -12,7 +12,7 @@ export enum ACTIONS { /** * @brief 请求参数类型 * @note OpenAPI 接口参数结构可能更新, 请参阅最新文档内容。 - * https://www.volcengine.com/docs/6348/1404673 + * https://www.volcengine.com/docs/6348/1404673?s=g */ export interface RequestParams { /** diff --git a/src/config/common.ts b/src/config/common.ts index af18644..0aeb7fc 100644 --- a/src/config/common.ts +++ b/src/config/common.ts @@ -27,7 +27,7 @@ export enum CustomParamsType { * @brief AI 音色可选值 * @default 通用女声 * @notes 通用女声、通用男声为默认音色, 其它皆为付费音色。 - * 音色 ID 可于 https://console.volcengine.com/speech/service/8 中开通获取。 + * 音色 ID 可于 https://console.volcengine.com/speech/service/8?s=g 中开通获取。 * 对应 "音色详情" 中, "Voice_type" 列的值。 */ export enum VOICE_TYPE { @@ -104,7 +104,7 @@ export const AI_MODE_MAP: Partial> = { /** * @brief 豆包模型的 ID - * @note 具体的模型 ID 请至 https://console.volcengine.com/ark/region:ark+cn-beijing/endpoint?config=%7B%7D 参看/创建 + * @note 具体的模型 ID 请至 https://console.volcengine.com/ark/region:ark+cn-beijing/endpoint?config=%7B%7D&s=g 参看/创建 * 模型 ID 即接入点 ID, 在上述链接中表格内 "接入点名称" 列中, 类似于 "ep-2024xxxxxx-xxx" 格式即是模型 ID。 */ export const ARK_V3_MODEL_ID: Partial> = { diff --git a/src/config/config.ts b/src/config/config.ts index 98ab0b0..a86f642 100644 --- a/src/config/config.ts +++ b/src/config/config.ts @@ -23,12 +23,12 @@ export const CONVERSATION_SIGNATURE = 'conversation'; /** * @brief RTC & AIGC 配置。 * @notes 更多参数请参考 - * https://www.volcengine.com/docs/6348/1404673 + * https://www.volcengine.com/docs/6348/1404673?s=g */ export class ConfigFactory { BaseConfig = { /** - * @note 必填, RTC AppId 可于 https://console.volcengine.com/rtc/listRTC 中获取。 + * @note 必填, RTC AppId 可于 https://console.volcengine.com/rtc/listRTC?s=g 中获取。 */ AppId: 'Your RTC AppId', /** @@ -45,20 +45,20 @@ export class ConfigFactory { UserId: 'User123', /** * @brief 必填, RTC Token, 由 AppId、RoomId、UserId、时间戳等等信息计算得出。 - * 测试跑通时,可于 https://console.volcengine.com/rtc/listRTC 列表中, + * 测试跑通时,可于 https://console.volcengine.com/rtc/listRTC?s=g 列表中, * 找到对应 AppId 行中 "操作" 列的 "临时Token" 按钮点击进行生成, 用于本地 RTC 通信进房鉴权校验。 - * 正式使用时可参考 https://www.volcengine.com/docs/6348/70121 通过代码生成 Token。 + * 正式使用时可参考 https://www.volcengine.com/docs/6348/70121?s=g 通过代码生成 Token。 * 建议先使用临时 Token 尝试跑通。 * @note 生成临时 Token 时, 页面上的 RoomId / UserId 填的与此处的 RoomId / UserId 保持一致。 */ Token: 'Your RTC Token', /** - * @brief 必填, TTS(语音合成) AppId, 可于 https://console.volcengine.com/speech/app 中获取, 若无可先创建应用。 + * @brief 必填, TTS(语音合成) AppId, 可于 https://console.volcengine.com/speech/app?s=g 中获取, 若无可先创建应用。 * @note 创建应用时, 需要选择 "语音合成" 服务, 并选择对应的 App 进行绑定。 */ TTSAppId: 'Your TTS AppId', /** - * @brief 必填, ASR(语音识别) AppId, 可于 https://console.volcengine.com/speech/app 中获取, 若无可先创建应用。 + * @brief 必填, ASR(语音识别) AppId, 可于 https://console.volcengine.com/speech/app?s=g 中获取, 若无可先创建应用。 * @note 创建应用时, 需要按需根据语言选择 "流式语音识别" 服务, 并选择对应的 App 进行绑定。 */ ASRAppId: 'Your ASR AppId', @@ -138,13 +138,13 @@ export class ConfigFactory { ProviderParams: { /** * @note 本示例代码使用的是小模型语音识别, 如感觉 ASR 效果不佳,可尝试使用大模型进行语音识别。 - * 大模型的使用详情可参考 https://www.volcengine.com/docs/6348/1404673#volcanolmasrconfig + * 大模型的使用详情可参考 https://www.volcengine.com/docs/6348/1404673#volcanolmasrconfig?s=g */ Mode: 'smallmodel', AppId: this.BaseConfig.ASRAppId, /** * @note 具体流式语音识别服务对应的 Cluster ID,可在流式语音服务控制台开通对应服务后查询。 - * 具体链接为: https://console.volcengine.com/speech/service/16 + * 具体链接为: https://console.volcengine.com/speech/service/16?s=g */ Cluster: 'volcengine_streaming_common', }, diff --git a/src/utils/handler.ts b/src/utils/handler.ts index 79791c7..ef7fc67 100644 --- a/src/utils/handler.ts +++ b/src/utils/handler.ts @@ -82,7 +82,7 @@ export const useMessageHandler = () => { const maps = { /** * @brief 接收状态变化信息 - * @note https://www.volcengine.com/docs/6348/1415216 + * @note https://www.volcengine.com/docs/6348/1415216?s=g */ [MESSAGE_TYPE.BRIEF]: (parsed: AnyRecord) => { const { Stage } = parsed || {}; @@ -102,7 +102,7 @@ export const useMessageHandler = () => { }, /** * @brief 字幕 - * @note https://www.volcengine.com/docs/6348/1337284 + * @note https://www.volcengine.com/docs/6348/1337284?s=g */ [MESSAGE_TYPE.SUBTITLE]: (parsed: AnyRecord) => { const data = parsed.data?.[0] || {}; @@ -123,7 +123,7 @@ export const useMessageHandler = () => { }, /** * @brief Function calling - * @note https://www.volcengine.com/docs/6348/1359441 + * @note https://www.volcengine.com/docs/6348/1359441?s=g */ [MESSAGE_TYPE.FUNCTION_CALL]: (parsed: AnyRecord) => { const name: string = parsed?.tool_calls?.[0]?.function?.name;