in jbang/aws-bedrock-ingestion/BedrockPrompt.java [33:65]
public void configure() throws Exception {
Counter counter = new Counter();
rest("/bedrock")
.get("/prompt").to("direct:invoke-bedrock")
.get("/ingestion_status/{id}").param().name("id").type(RestParamType.path).description("The ingestion job id").dataType("string").endParam().to("direct:invoke-ingestion-status");
from("direct:invoke-bedrock")
.setBody(constant("{{prompt}}"))
.to("aws-bedrock-agent-runtime:label?useDefaultCredentialsProvider=true®ion=us-east-1&operation=retrieveAndGenerate&knowledgeBaseId={{knowledgeBaseId}}&modelId="
+ BedrockModels.ANTROPHIC_CLAUDE_INSTANT_V1.model);
from("direct:invoke-ingestion-status")
.toD("aws-bedrock-agent:label?useDefaultCredentialsProvider=true®ion=us-east-1&operation=getIngestionJob&knowledgeBaseId={{knowledgeBaseId}}&dataSourceId={{dataSourceId}}&ingestionJobId=${header.id}").setBody(simple("${body.status.name}"));
from("aws2-sqs:{{sqsArn}}?deleteAfterRead=true&useDefaultCredentialsProvider=true")
.unmarshal().json()
.setProperty("s3-event-name", jsonpath("$.detail.reason"))
.choice()
.when(simple("${exchangeProperty.s3-event-name} == 'PutObject'"))
.bean(counter, "getCount()")
.end()
.choice()
.when(simple("${bean:counter?method=getCount} == 11"))
.log("Detected file upload in AWS S3. Starting ingestion process to AWS Bedrock Knowledge Base.")
.setHeader(BedrockAgentConstants.KNOWLEDGE_BASE_ID, constant("{{knowledgeBaseId}}"))
.setHeader(BedrockAgentConstants.DATASOURCE_ID, constant("{{dataSourceId}}"))
.to("aws-bedrock-agent:label?useDefaultCredentialsProvider=true®ion=us-east-1&operation=startIngestionJob")
.log("The Ingestion Job Id is ${body}")
.end();
}