From 88bdc0147ada15c850f85ed628f277a866f4b267 Mon Sep 17 00:00:00 2001 From: "fiona.bos" Date: Tue, 13 Aug 2024 14:34:13 -0700 Subject: [PATCH] edward changes from phi-3 app --- .../genai/vision/demo/MainActivity.java | 28 +++++++++++++++---- 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/mobile/examples/phi-3-vision/android/android/app/src/main/java/ai/onnxruntime/genai/vision/demo/MainActivity.java b/mobile/examples/phi-3-vision/android/android/app/src/main/java/ai/onnxruntime/genai/vision/demo/MainActivity.java index 3d4e804d0..000365d07 100644 --- a/mobile/examples/phi-3-vision/android/android/app/src/main/java/ai/onnxruntime/genai/vision/demo/MainActivity.java +++ b/mobile/examples/phi-3-vision/android/android/app/src/main/java/ai/onnxruntime/genai/vision/demo/MainActivity.java @@ -183,24 +183,29 @@ public void onClick(View v) { new Thread(new Runnable() { @Override public void run() { + TokenizerStream stream = null; + GeneratorParams generatorParams = null; + Generator generator = null; + Sequences encodedPrompt = null; + Images images = null; + NamedTensors inputTensors = null; try { - TokenizerStream stream = multiModalProcessor.createStream(); + stream = multiModalProcessor.createStream(); - GeneratorParams generatorParams = model.createGeneratorParams(); + generatorParams = model.createGeneratorParams(); //examples for optional parameters to format AI response //generatorParams.setSearchOption("length_penalty", 1000); //generatorParams.setSearchOption("max_length", 500); - Images images = null; if (inputImage != null) { images = inputImage.getImages(); } - NamedTensors inputTensors = multiModalProcessor.processImages(promptQuestion_formatted, images); + inputTensors = multiModalProcessor.processImages(promptQuestion_formatted, images); generatorParams.setInput(inputTensors); - Generator generator = new Generator(model, generatorParams); + generator = new Generator(model, generatorParams); while (!generator.isDone()) { generator.computeLogits(); @@ -210,10 +215,21 @@ public void run() { tokenListener.accept(stream.decode(token)); } - generator.close(); + encodedPrompt.close(); + stream.close(); + generatorParams.close(); + images.close(); + inputTensors.close(); } catch (GenAIException e) { + Log.e(TAG, "Exception occurred during model query: " + e.getMessage()); + if (generator != null) generator.close(); + if (encodedPrompt != null) encodedPrompt.close(); + if (stream != null) stream.close(); + if (generatorParams != null) generatorParams.close(); + if (images != null) images.close(); + if (inputTensors != null) inputTensors.close(); throw new RuntimeException(e); }