AWS.BedrockAgentRuntime — AWS SDK for JavaScript (original) (raw)
Examples:
Node.js EventStream Example
// In Node.js, events are streamed and can be read as they arrive.
bedrockagentruntime.invokeAgent({/** params **/}, function(err, data) {
if (err) {
// handle error
return console.error(err);
}
var eventStream = data.completion;
eventStream.on('data', function(event) {
// Check the top-level field to determine which event this is.
if (event.accessDeniedException) {
// handle accessDeniedException event
} else if (event.badGatewayException) {
// handle badGatewayException event
} else if (event.chunk) {
// handle chunk event
} else if (event.conflictException) {
// handle conflictException event
} else if (event.dependencyFailedException) {
// handle dependencyFailedException event
} else if (event.files) {
// handle files event
} else if (event.internalServerException) {
// handle internalServerException event
} else if (event.resourceNotFoundException) {
// handle resourceNotFoundException event
} else if (event.returnControl) {
// handle returnControl event
} else if (event.serviceQuotaExceededException) {
// handle serviceQuotaExceededException event
} else if (event.throttlingException) {
// handle throttlingException event
} else if (event.trace) {
// handle trace event
} else if (event.validationException) {
// handle validationException event
}
});
eventStream.on('error', function(err) { /** Handle error events **/});
eventStream.on('end', function() { /** Finished reading all events **/});
});
Browser EventStream Example
// In browsers, events aren't processed until the response is fully buffered.
// Events will be accessible as an array.
bedrockagentruntime.invokeAgent({/** params **/}, function(err, data) {
if (err) {
// handle error
return console.error(err);
}
var events = data.completion;
for (var event of events) {
// Check the top-level field to determine which event this is.
if (event.accessDeniedException) {
// handle accessDeniedException event
} else if (event.badGatewayException) {
// handle badGatewayException event
} else if (event.chunk) {
// handle chunk event
} else if (event.conflictException) {
// handle conflictException event
} else if (event.dependencyFailedException) {
// handle dependencyFailedException event
} else if (event.files) {
// handle files event
} else if (event.internalServerException) {
// handle internalServerException event
} else if (event.resourceNotFoundException) {
// handle resourceNotFoundException event
} else if (event.returnControl) {
// handle returnControl event
} else if (event.serviceQuotaExceededException) {
// handle serviceQuotaExceededException event
} else if (event.throttlingException) {
// handle throttlingException event
} else if (event.trace) {
// handle trace event
} else if (event.validationException) {
// handle validationException event
}
}
});
Async Iterator EventStream Example (Experimental)
// In Node.js v10.x, Readable streams have experimental support for async iteration.
// Instead of listening to the event stream's 'data' event, you can use a for...await loop.
async function example() {
try {
const result = await bedrockagentruntime.invokeAgent({/** params **/}).promise();
const events = result.completion;
for await (const event of events) {
// Check the top-level field to determine which event this is.
if (event.accessDeniedException) {
// handle accessDeniedException event
} else if (event.badGatewayException) {
// handle badGatewayException event
} else if (event.chunk) {
// handle chunk event
} else if (event.conflictException) {
// handle conflictException event
} else if (event.dependencyFailedException) {
// handle dependencyFailedException event
} else if (event.files) {
// handle files event
} else if (event.internalServerException) {
// handle internalServerException event
} else if (event.resourceNotFoundException) {
// handle resourceNotFoundException event
} else if (event.returnControl) {
// handle returnControl event
} else if (event.serviceQuotaExceededException) {
// handle serviceQuotaExceededException event
} else if (event.throttlingException) {
// handle throttlingException event
} else if (event.trace) {
// handle trace event
} else if (event.validationException) {
// handle validationException event
}
}
} catch (err) {
// handle error
}
}
Calling the invokeAgent operation
var params = {
agentAliasId: 'STRING_VALUE', /* required */
agentId: 'STRING_VALUE', /* required */
sessionId: 'STRING_VALUE', /* required */
enableTrace: true || false,
endSession: true || false,
inputText: 'STRING_VALUE',
memoryId: 'STRING_VALUE',
sessionState: {
files: [
{
name: 'STRING_VALUE', /* required */
source: { /* required */
sourceType: S3 | BYTE_CONTENT, /* required */
byteContent: {
data: Buffer.from('...') || 'STRING_VALUE' /* Strings will be Base-64 encoded on your behalf */, /* required */
mediaType: 'STRING_VALUE' /* required */
},
s3Location: {
uri: 'STRING_VALUE' /* required */
}
},
useCase: CODE_INTERPRETER | CHAT /* required */
},
/* more items */
],
invocationId: 'STRING_VALUE',
knowledgeBaseConfigurations: [
{
knowledgeBaseId: 'STRING_VALUE', /* required */
retrievalConfiguration: { /* required */
vectorSearchConfiguration: { /* required */
filter: { /* RetrievalFilter */
andAll: [
/* recursive RetrievalFilter */,
/* more items */
],
equals: {
key: 'STRING_VALUE', /* required */
value: { /* required */
}
},
greaterThan: {
key: 'STRING_VALUE', /* required */
value: { /* required */
}
},
greaterThanOrEquals: {
key: 'STRING_VALUE', /* required */
value: { /* required */
}
},
in: {
key: 'STRING_VALUE', /* required */
value: { /* required */
}
},
lessThan: {
key: 'STRING_VALUE', /* required */
value: { /* required */
}
},
lessThanOrEquals: {
key: 'STRING_VALUE', /* required */
value: { /* required */
}
},
listContains: {
key: 'STRING_VALUE', /* required */
value: { /* required */
}
},
notEquals: {
key: 'STRING_VALUE', /* required */
value: { /* required */
}
},
notIn: {
key: 'STRING_VALUE', /* required */
value: { /* required */
}
},
orAll: [
/* recursive RetrievalFilter */,
/* more items */
],
startsWith: {
key: 'STRING_VALUE', /* required */
value: { /* required */
}
},
stringContains: {
key: 'STRING_VALUE', /* required */
value: { /* required */
}
}
},
numberOfResults: 'NUMBER_VALUE',
overrideSearchType: HYBRID | SEMANTIC
}
}
},
/* more items */
],
promptSessionAttributes: {
'<String>': 'STRING_VALUE',
/* '<String>': ... */
},
returnControlInvocationResults: [
{
apiResult: {
actionGroup: 'STRING_VALUE', /* required */
apiPath: 'STRING_VALUE',
confirmationState: CONFIRM | DENY,
httpMethod: 'STRING_VALUE',
httpStatusCode: 'NUMBER_VALUE',
responseBody: {
'<String>': {
body: 'STRING_VALUE'
},
/* '<String>': ... */
},
responseState: FAILURE | REPROMPT
},
functionResult: {
actionGroup: 'STRING_VALUE', /* required */
confirmationState: CONFIRM | DENY,
function: 'STRING_VALUE',
responseBody: {
'<String>': {
body: 'STRING_VALUE'
},
/* '<String>': ... */
},
responseState: FAILURE | REPROMPT
}
},
/* more items */
],
sessionAttributes: {
'<String>': 'STRING_VALUE',
/* '<String>': ... */
}
}
};
bedrockagentruntime.invokeAgent(params, function(err, data) {
if (err) console.log(err, err.stack); // an error occurred
else console.log(data); // successful response
});