public void handleRequest()

in djl-object-detection-inference-docker-lambda/src/main/java/com/example/App.java [39:78]


    public void handleRequest(InputStream is, OutputStream os, Context context) throws IOException {
        LambdaLogger logger = context.getLogger();
        String input = Utils.toString(is);

        Request request = GSON.fromJson(input, Request.class);
        String inputImageUrl = request.getInputImageUrl();
        logger.log("inputImageUrl: " + inputImageUrl);


        String backbone;
        if ("TensorFlow".equals(Engine.getInstance().getEngineName())) {
            backbone = "mobilenet_v2";
        } else {
            backbone = "resnet50";
        }
        logger.log("backbone: " + backbone);

        Criteria<Image, DetectedObjects> criteria =
                Criteria.builder()
                        .optApplication(Application.CV.OBJECT_DETECTION)
                        .setTypes(Image.class, DetectedObjects.class)
                        .optFilter("backbone", backbone)
                        .build();

        try {
            try (ZooModel<Image, DetectedObjects> model = ModelZoo.loadModel(criteria)) {
                try (Predictor<Image, DetectedObjects> predictor = model.newPredictor()) {
                    Image image = ImageFactory.getInstance().fromUrl(inputImageUrl);
                    DetectedObjects detection = predictor.predict(image);
                    logger.log("detection: " + detection);
                    os.write(GSON.toJson(detection).getBytes(StandardCharsets.UTF_8));
                }
            }
        } catch (RuntimeException | ModelException | TranslateException e) {
            logger.log("Failed handle input: " + input);
            logger.log(e.toString());
            String msg = "{\"status\": \"invoke failed: " + e.toString() + "\"}";
            os.write(msg.getBytes(StandardCharsets.UTF_8));
        }
    }