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

如何在.NET(C#)中实现Python等效的Bedrock Agent调用逻辑

实现与Python等效的AWS Bedrock Agent调用逻辑(C#)

以下是修改后的C#代码,实现与你提供的Python代码完全一致的逻辑,返回completion文本和traces列表:

using Amazon.BedrockAgentRuntime;
using Amazon.BedrockAgentRuntime.Model;
using System.Collections.Generic;
using System.Text;

public static async Task<(string Completion, List<string> Traces)> InvokeBedrockAgentAsync(string prompt)
{
    var completion = new StringBuilder();
    var traces = new List<string>();
    
    using var client = new AmazonBedrockAgentRuntimeClient(RegionEndpoint.USEast1);
    
    try
    {
        var response = await client.InvokeAgentAsync(new InvokeAgentRequest
        {
            AgentId = "******",
            AgentAliasId = "****",
            SessionId = Guid.NewGuid().ToString(),
            InputText = prompt
        });

        if (response.HttpStatusCode == System.Net.HttpStatusCode.OK)
        {
            foreach (var completionEvent in response.CompletionEvents)
            {
                try
                {
                    // 处理追踪事件
                    if (completionEvent.Trace != null)
                    {
                        traces.Add(completionEvent.Trace.TraceContent);
                    }
                    // 处理内容分片
                    else if (completionEvent.Chunk != null)
                    {
                        var chunkText = Encoding.UTF8.GetString(completionEvent.Chunk.Bytes);
                        completion.Append(chunkText);
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine($"处理事件时出错: {ex.Message}");
                }
            }
        }
        else
        {
            Console.WriteLine($"InvokeAgentAsync 调用失败,状态码: {response.HttpStatusCode}");
        }
    }
    catch (AmazonServiceException ex)
    {
        Console.WriteLine($"AWS服务调用异常: {ex.Message}");
    }

    return (completion.ToString(), traces);
}

关键逻辑说明

  1. 返回类型调整:将方法返回类型改为Task<(string Completion, List<string> Traces)>,同时返回完成文本和追踪信息列表
  2. 事件遍历:response.CompletionEvents对应Python代码中response.get("completion")的迭代结果,逐个处理每个事件
  3. 事件区分:
    • 若事件包含Trace属性,则提取TraceContent(对应Python里的trace['trace'])添加到追踪列表
    • 若事件包含Chunk属性,则将字节数组解码为UTF-8字符串,拼接至完成文本
  4. 异常处理:捕获AWS服务调用异常(AmazonServiceException)以及单个事件处理时的异常,避免程序崩溃

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 09:58:13