> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 使用文本审核

> 启用由 Azure AI 内容安全支持的 PlayFab Party 文本审核，以自动检测语言并从游戏中的文本聊天消息中过滤冒犯性词汇。

PlayFab Party 提供与文本聊天集成的文本审核解决方案。可以对文本聊天进行实时审核以过滤掉冒犯性语言。此功能由 Azure AI 内容安全提供支持。有关更多信息，请参见 [Azure AI 内容安全](https://azure.microsoft.com/products/ai-services/ai-content-safety/)。

## 语言支持

支持超过 100 种语言的文本审核。但是，你无需执行任何操作来为文本审核配置语言选择；Azure 会自动检测每条文本消息的语言。有关支持自动检测和亵渎词汇过滤的所有支持语言的完整列表，请参阅 Azure AI 内容安全的[支持语言列表](https://learn.microsoft.com/en-us/azure/ai-services/content-safety/language-support)。

## 启用文本审核

文本审核是按聊天控件配置的。通过使用 `PartyTextChatOptions::FilterOffensiveText` 选项调用 `PartyLocalChatControl::SetTextChatOptions()` 来启用它。启用审核的聊天控件接收的文本聊天将用星号屏蔽冒犯性词汇。由于审核是按聊天控件启用的，你可以创建 UI 以允许用户设置自己的审核选择。或者，你可以对部分或所有用户强制执行审核。

要禁用聊天控件的审核，请使用相同的函数，传入不包含 `FilterOffensiveText` 标志的 `PartyTextChatOptions` 选项。

示例代码：

```cpp theme={null}
// Opt into moderation
myLocalChatControl->SetTextChatOptions(PartyTextChatOptions::FilterOffensiveText, nullptr);

// Opt out of moderation
myLocalChatControl->SetTextChatOptions(PartyTextChatOptions::None, nullptr);
```

## 发送和接收已审核的文本

发送到启用审核的聊天控件的所有文本都将应用审核，无论发件人自己的审核设置如何。启用审核的聊天控件接收的文本消息，其 `PartyChatTextReceivedStateChange` 中的 `chatText` 字段将被替换为经过审核的版本。

`PartyChatTextReceivedStateChange` 上存在更多字段以启用更复杂的场景，如为用户提供查看未过滤版本文本的选项。有关更多信息，请参见 [PartyChatTextReceivedStateChange](/services/playfab/multiplayer/networking/reference/structs/partychattextreceivedstatechange) 参考页面。

如果审核文本消息失败，无论是由于服务错误还是服务认为文本具有冒犯性但无法识别特定词汇，则整个文本消息都将用星号屏蔽。当发生此错误情况时，`PartyChatTextReceivedStateChange` 的 `options` 字段中提供的 `PartyChatTextReceivedOptions` 枚举包含更多信息。

## 调整过滤级别

对于英语，可以使用 `PartyManager::SetOption` 函数调整聊天控件的过滤级别。可用的过滤级别是 Family-Friendly、Medium 和 Mature。默认级别是 Family-Friendly。

示例代码：

```cpp theme={null}
// Set the filter level to Mature
PartyTextChatFilterLevel filterLevel = PartyTextChatFilterLevel::Mature;
PartyOption option = PartyOption::TextChatFilterLevel;
PartyError error = PartyManager::SetOption(nullptr, option, &filterLevel);
```

## 另请参阅

* [了解 PlayFab Party 聊天的工作原理](/services/playfab/community/voice-communications/concepts-chat)
* [PartyLocalChatControl::SetTextChatOptions](/services/playfab/multiplayer/networking/reference/classes/PartyLocalChatControl/methods/partylocalchatcontrol_settextchatoptions)
* [PartyChatTextReceivedOptions](/services/playfab/multiplayer/networking/reference/enums/partychattextreceivedoptions)


## Related topics

- [PlayFab Party 发行说明](/zh-CN/services/playfab/multiplayer/networking/release-notes.md)
- [了解 PlayFab Party 聊天的工作原理](/zh-CN/services/playfab/community/voice-communications/concepts-chat.md)
- [PlayFab Party 功能](/zh-CN/services/playfab/multiplayer/networking/party-features.md)
- [PartyTextChatFilterLevel](/zh-CN/services/playfab/multiplayer/networking/reference/enums/partytextchatfilterlevel.md)
- [使用 Game Chat 2 C++ API](/zh-CN/services/xbox-services/multiplayer/chat/game-chat2/using-game-chat-2.md)
