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;
}
}
}
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();
Code: Select all
Agent Response Content: Amazon.BedrockAgentRuntime.Model.ResponseStreamWas 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.
Mobile version