区域访问限制

更新时间不可用

了解如何在对话式 AI 引擎中区域访问限制,包括适用场景、配置步骤、实现要点和注意事项。

为适应不同国家或地区的法律法规,声网对话式 AI 引擎支持区域访问限制功能。

开启区域访问限制后,不论用户在哪个区域使用你的 App,对话式 AI 引擎都只会访问指定区域的声网服务器。

例如你指定了北美为访问区域,假设有两位用户分别从北美和新加坡发起通话:

指定访问区域用户所在区域实际访问区域连接后的用户体验
北美北美北美正常
北美新加坡北美

可能受到较大影响。由于指定区域与 App 用户所在区域之间存在跨区域公共互联网,公共互联网网络质量较差会导致音视频体验受到影响。如果指定区域的服务器都不可用,服务会直接报错。

表格内容超出当前宽度,可横向滚动查看更多列。

默认行为

在未开启区域访问限制或使用 GLOBAL 区域访问限制时,对话式 AI 引擎会根据 LLM URL 的 IP 地址自动选择最近的服务器启动对话式 AI 引擎服务,并支持故障转移 (failover):

  1. 智能部署: 系统会根据你配置的 LLM URL 对应的 IP 地址,自动在相应区域启动对话式 AI 引擎服务。
  2. 就近选择: 如果对应区域没有可用服务器,系统会自动选择最近的可用区域。
  3. 故障转移: 当某个区域的服务不可用时,系统会自动切换到其他可用区域。

注意

开启区域访问限制后,上述默认行为将不再适用。系统会严格限制在指定区域内访问,不会进行跨区域的故障转移。

实现方法

配置对话式 AI 引擎区域访问限制

在调用创建对话式智能体 API 时,通过 properties.geofence 字段配置区域访问限制。

参数说明

下表说明 properties.geofence 中各字段的含义。

字段类型必填描述
areaString是

允许访问的区域。可选以下值:

  • GLOBAL:全球
  • NORTH_AMERICA:北美
  • EUROPE:欧洲
  • ASIA:亚洲
  • INDIA:印度
  • JAPAN:日本
exclude_areaString否

排除的区域。仅当 area 为 GLOBAL 时可用。可选以下值:

  • NORTH_AMERICA:北美
  • EUROPE:欧洲
  • ASIA:亚洲
  • INDIA:印度
  • JAPAN:日本
表格内容超出当前宽度,可横向滚动查看更多列。

配置示例

示例 1: 限制仅访问北美区域

JSON
{
  "name": "customer_service",
  "properties": {
    "channel": "test_channel",
    "token": "your_rtc_token",
    "agent_rtc_uid": "123",
    "remote_rtc_uids": ["456"],
    "geofence": {
      "area": "NORTH_AMERICA"
    },
    "llm": {
      // ... LLM 配置
    },
    "tts": {
      // ... TTS 配置
    }
  }
}

示例 2: 全球访问但排除印度

JSON
{
  "name": "customer_service",
  "properties": {
    "channel": "test_channel",
    "token": "your_rtc_token",
    "agent_rtc_uid": "123",
    "remote_rtc_uids": ["456"],
    "geofence": {
      "area": "GLOBAL",
      "exclude_area": "INDIA"
    },
    "llm": {
      // ... LLM 配置
    },
    "tts": {
      // ... TTS 配置
    }
  }
}

配置 RTC 区域访问限制

声网对话式 AI 引擎服务和声网 RTC 服务的区域访问限制配置是相互独立的。如果你需要实现完整的端到端区域访问限制,确保和智能体互动的整个音视频通话链路都限定在指定区域内,你还需要参考 RTC 区域访问限制进行配置。

数据驻留 (Data Residency)

除了配置对话式 AI 引擎的区域访问限制外,部分 LLM、TTS、ASR 供应商也提供了不同区域的数据驻留服务。你可以通过配置 LLM、TTS、ASR 模块使用的 URL 来确保数据不会跨区域传输。

例如,ElevenLabs 支持通过不同的 URL 端点选择数据处理区域,详见 ElevenLabs 文档。

以下示例代码展示了如何配置 ElevenLabs 的 TTS 服务,使用欧洲区域的 URL 端点:

JSON
{
  "properties": {
    "tts": {
      "vendor": {
        "name": "elevenlabs"
      },
      "url": "wss://api.eu.elevenlabs.io/v1/text-to-speech/{voice_id}/stream-input"
    }
  }
}

最佳实践建议

为了确保数据完全驻留在指定区域,建议采取以下措施:

  1. 配置对话式 AI 引擎区域限制: 使用 geofence 参数限制对话式 AI 引擎服务器的访问区域。

  2. 配置 RTC 区域限制: 在 RTC SDK 中配置相应的区域访问限制。

  3. 选择区域化的 AI 服务: 在配置 LLM、TTS、ASR 时,选择支持区域数据驻留的供应商,并使用对应区域的 URL 端点。

  4. 验证配置: 在生产环境部署前,充分测试区域访问限制是否生效,确保数据不会意外跨区域传输。

注意事项

  1. 性能影响: 区域访问限制可能会影响用户体验。如果用户所在区域与指定区域相距较远,可能会出现较高的网络延迟。

  2. 服务可用性: 开启区域访问限制后,如果指定区域的服务器不可用或资源不足,服务将直接报错,不会自动切换到其他区域。

  3. 配置一致性: 确保对话式 AI 引擎、RTC SDK 和 LLM、TTS、ASR 供应商的区域配置保持一致,避免数据跨区域传输。

  4. 合规要求: 在配置区域访问限制前,请充分了解目标区域的法律法规要求,确保配置符合当地的数据保护和隐私法规。