Код: Выделить всё
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;
}
}
}
Содержимое ответа агента: Amazon.BedrockAgentRuntime.Model.ResponseStream
Что я пробовал:
Я использую Amazon Bedrock SDK для запроса агента с помощью InvokeAgentAsync. Я успешно отправил запрос и получил ответ. Однако когда я пытаюсь получить доступ к ответу агента, я получаю объект типа Amazon.BedrockAgentRuntime.Model.ResponseStream вместо обычного текста или читаемого вывода.
Вот соответствующая часть моего кода:
Код: Выделить всё
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();
Код: Выделить всё
Agent Response Content: Amazon.BedrockAgentRuntime.Model.ResponseStreamЧего я ожидал:
Я ожидал, что у AgentResponse.Completion будет свойство или метод, возвращающий ответ агента в виде обычного текста (например, Текст или Сообщение). В качестве альтернативы, если задействован ResponseStream, я ожидал документации или четкого метода для его обработки и извлечения текстового содержимого.
Подробнее здесь: https://stackoverflow.com/questions/792 ... onsestream
Мобильная версия