You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET中如何处理Azure OpenAIClient.GetChatCompletionsAsync内容过滤异常?

捕获Azure OpenAI内容过滤的特定异常类型

在使用Azure.AI.OpenAI SDK的GetChatCompletionsAsync方法时,无需通过通用Exception捕获后解析字符串,可通过以下方式直接获取结构化的内容过滤异常信息:

步骤说明

  1. 确保使用最新版SDK
    确认项目引用Azure.AI.OpenAI NuGet包(版本1.0.0及以上),该版本开始提供结构化的异常及错误模型。

  2. 捕获特定异常类型
    内容过滤触发的异常属于Azure SDK通用的RequestFailedException类型,直接捕获该异常而非通用Exception。

  3. 解析结构化错误信息
    RequestFailedException的Content属性包含序列化的错误响应,可反序列化为SDK内置的ChatCompletionsErrorResponse对象,从中提取内容过滤的具体细节(类别、等级、是否过滤等)。

代码示例

using Azure;
using Azure.AI.OpenAI;
using System.Text.Json;

try
{
    // 初始化客户端
    var client = new OpenAIClient(
        new Uri("你的Azure OpenAI端点"), 
        new AzureKeyCredential("你的API密钥")
    );

    // 构建请求参数
    var chatOptions = new ChatCompletionsOptions
    {
        DeploymentName = "你的部署名称",
        Messages = { new ChatMessage(ChatRole.User, "违反内容政策的提示词") }
    };

    // 调用接口
    var response = await client.GetChatCompletionsAsync(chatOptions);
}
catch (RequestFailedException ex)
{
    // 基础错误信息
    Console.WriteLine($"HTTP状态码: {ex.Status}");
    Console.WriteLine($"错误摘要: {ex.Message}");

    // 解析结构化内容过滤信息
    if (!string.IsNullOrWhiteSpace(ex.Content))
    {
        var errorResponse = JsonSerializer.Deserialize<ChatCompletionsErrorResponse>(ex.Content);
        if (errorResponse?.Error?.Details != null)
        {
            foreach (var detail in errorResponse.Error.Details)
            {
                if (detail is ContentFilterResult filterResult)
                {
                    Console.WriteLine($"过滤类别: {filterResult.Category}");
                    Console.WriteLine($"过滤等级: {filterResult.Severity}");
                    Console.WriteLine($"是否被过滤: {filterResult.Filtered}");
                }
            }
        }
    }
}

关键说明

  • ChatCompletionsErrorResponse和ContentFilterResult都是Azure.AI.OpenAI命名空间下的内置类,无需自定义。
  • 如果错误详情未自动强转为ContentFilterResult,也可直接解析JSON对象的category、severity等键值对获取信息。

内容的提问来源于stack exchange,提问作者ms3300

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 15:26:02