Я использую AWS Lambda, чтобы вызвать функцию InvokeagentCommand; Несмотря на то, что он возвращает ответ, но при настройке StreamfinalResponse True, он не отправляет ответ в несколько кусков. Достаточно смешно, что я сделал версию Python и смог заставить агента транслировать ответы. К сожалению, в среде выполнения Python нет streamifyResponse, поэтому мне пришлось идти с узлом. Я включил код ниже для справки. Спасибо < /p>
import util from 'util';
import stream from 'stream';
const { Readable, Transform } = stream;
const pipeline = util.promisify(stream.pipeline);
import {
BedrockAgentRuntimeClient,
InvokeAgentCommand,
} from "@aws-sdk/client-bedrock-agent-runtime";
export const handler = awslambda.streamifyResponse(
async (event, responseStream, context) => {
console.log(`event: ${JSON.stringify(event)}`)
const client = new BedrockAgentRuntimeClient({ region: "us-east-1" });
const agentId = "xxxxxxxx";
const agentAliasId = "yyyyyyyy";
const sessionId = event['queryStringParameters']['sessionId'];
const prompt = event['queryStringParameters']['prompt'];
const command = new InvokeAgentCommand({
streamingConfigurations: {
streamFinalResponse: true
},
agentId,
agentAliasId,
sessionId,
inputText: prompt,
enableTrace: true,
endSession: false
});
try {
const response = await client.send(command);
console.log(`response: ${JSON.stringify(response)}`)
const processChunk = new Transform({
objectMode: true,
transform(chunk, encoding, callback) {
const chunk_string = JSON.stringify(chunk)
console.log(`transform chunk ${chunk_string}`);
if (chunk.chunk) {
const decodedResponse = new TextDecoder("utf-8").decode(chunk.chunk.bytes);
console.log(decodedResponse);
this.push(decodedResponse);
} else if (chunk.internalServerException) {
this.push(JSON.stringify({ error: 'Internal Server Exception' }) + '\n');
}
callback();
}
});
await pipeline(
response.completion,
processChunk,
responseStream
)
} catch (err) {
console.error(err);
}
}
);
< /code>
Я изначально думал, что это проблема разрешения, поэтому я даю это Amazonbedrockfullaccess, но это не имело значения < /p>
Я прошел через документацию:
https://docs.aws.amazon.com/awsjavascri ... ntcommand/
, чтобы я не пропустил какую-либо конфигурацию, которая требуется для потоковой передачи
Подробнее здесь: https://stackoverflow.com/questions/794 ... after-sett
Агент AWS Bedrock - невозможно получить InvokeAgent для потоковой передачи даже после установки StreamFinalResponse на T ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как вызвать агент с помощью клиента времени выполнения Bedrock Agent в AWS SDK с PHP
Anonymous » » в форуме Php - 0 Ответы
- 29 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как вызвать агент с помощью клиента времени выполнения Bedrock Agent в AWS SDK с PHP
Anonymous » » в форуме Php - 0 Ответы
- 29 Просмотры
-
Последнее сообщение Anonymous
-