Wie kann man „Amazon.BedrockAgentRuntime.Model.ResponseStream“ in InvokeAgentResponse richtig lesen und verarbeiten?C#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Wie kann man „Amazon.BedrockAgentRuntime.Model.ResponseStream“ in InvokeAgentResponse richtig lesen und verarbeiten?

Post by Anonymous »

Aktuelle Implementierung

Code: Select all

    public class AgentClient : IAgentClient
{
private readonly AmazonBedrockAgentRuntimeClient _client;
private readonly BedrockSettings _settings;

public AgentClient()
{

_settings = new BedrockSettings();

var credentials = new BasicAWSCredentials(_settings.AccessKeyId, _settings.SecretAccessKey);

var config = new AmazonBedrockAgentRuntimeConfig
{
RegionEndpoint = Amazon.RegionEndpoint.GetBySystemName(_settings.Region)
};

_client = new AmazonBedrockAgentRuntimeClient(credentials, config);
}

public async Task QueryAgentAsync(string sessionId, string inputText)
{
try
{
var request = new InvokeAgentRequest
{
SessionId = sessionId,
AgentId = _settings.AgentId,
AgentAliasId = _settings.AgentAliasId,
InputText = inputText,
EnableTrace = true
};

var agentResponse = await _client.InvokeAgentAsync(request);

if (agentResponse.Completion == null)
{
throw new Exception("Completion is undefined in the response.");
}

var responseContent = agentResponse.Completion;
Console.WriteLine("Agent Response Content: " + responseContent);

return responseContent;
}
catch (Exception ex)
{
Console.WriteLine($"Error invoking agent: {ex.Message}");
return null;
}
}
}
Ausgabe
Agent-Antwortinhalt: Amazon.BedrockAgentRuntime.Model.ResponseStream
Was ich versucht habe:

Ich verwende das Amazon Bedrock SDK, um einen Agent mit InvokeAgentAsync abzufragen. Ich habe die Anfrage erfolgreich gesendet und eine Antwort erhalten. Wenn ich jedoch versuche, auf die Antwort des Agenten zuzugreifen, erhalte ich ein Objekt vom Typ Amazon.BedrockAgentRuntime.Model.ResponseStream anstelle eines einfachen Texts oder einer lesbaren Ausgabe.
Hier ist der relevante Teil meines Codes:

Code: Select all

var agentResponse = await _client.InvokeAgentAsync(request);

if (agentResponse.Completion == null)
{
throw new Exception("Completion is undefined.");
}

// Attempting to retrieve response content
return agentResponse.Completion.ToString();
Dies führt zu einer Ausgabe wie:

Code: Select all

Agent Response Content: Amazon.BedrockAgentRuntime.Model.ResponseStream
Ich habe auch agentResponse.Completion untersucht, konnte aber keine Eigenschaft wie Text oder Message finden, die den Antwortinhalt enthält.

Was ich erwartet habe:

Ich hatte erwartet, dass agentResponse.Completion eine Eigenschaft oder Methode hat, die die Antwort des Agenten als Klartext zurückgibt (z. B. Text oder Nachricht). Alternativ, wenn ResponseStream beteiligt ist, erwarte ich eine Dokumentation oder eine klare Methode, um es zu verarbeiten und den Textinhalt zu extrahieren.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post