From 0a33d4e37af938269a8ef0a1845622148a5444a8 Mon Sep 17 00:00:00 2001 From: Yelin Jeong Date: Mon, 14 Oct 2024 14:14:42 +0900 Subject: [PATCH 1/5] [Tizen/web] Add text generation web application This patch adds tizen web application template from tizen studio. Signed-off-by: Yelin Jeong --- .../WebApplication/.project | 24 ++++++++++++++++++ .../WebApplication/.tproject | 11 ++++++++ .../WebApplication/config.xml | 9 +++++++ .../WebApplication/css/style.css | 24 ++++++++++++++++++ .../WebApplication/icon.png | Bin 0 -> 57662 bytes .../WebApplication/images/tizen_32.png | Bin 0 -> 12848 bytes .../WebApplication/index.html | 23 +++++++++++++++++ .../WebApplication/js/main.js | 21 +++++++++++++++ 8 files changed, 112 insertions(+) create mode 100644 Tizen.web/TextGenerationLlama2/WebApplication/.project create mode 100644 Tizen.web/TextGenerationLlama2/WebApplication/.tproject create mode 100644 Tizen.web/TextGenerationLlama2/WebApplication/config.xml create mode 100644 Tizen.web/TextGenerationLlama2/WebApplication/css/style.css create mode 100644 Tizen.web/TextGenerationLlama2/WebApplication/icon.png create mode 100644 Tizen.web/TextGenerationLlama2/WebApplication/images/tizen_32.png create mode 100644 Tizen.web/TextGenerationLlama2/WebApplication/index.html create mode 100644 Tizen.web/TextGenerationLlama2/WebApplication/js/main.js diff --git a/Tizen.web/TextGenerationLlama2/WebApplication/.project b/Tizen.web/TextGenerationLlama2/WebApplication/.project new file mode 100644 index 00000000..c736f137 --- /dev/null +++ b/Tizen.web/TextGenerationLlama2/WebApplication/.project @@ -0,0 +1,24 @@ + + + Llama2 + + + + + + json.validation.builder + + + + + org.tizen.web.project.builder.WebBuilder + + + + + + json.validation.nature + org.eclipse.wst.jsdt.core.jsNature + org.tizen.web.project.builder.WebNature + + diff --git a/Tizen.web/TextGenerationLlama2/WebApplication/.tproject b/Tizen.web/TextGenerationLlama2/WebApplication/.tproject new file mode 100644 index 00000000..0e708fec --- /dev/null +++ b/Tizen.web/TextGenerationLlama2/WebApplication/.tproject @@ -0,0 +1,11 @@ + + + + + tizen-8.0 + + + + + + diff --git a/Tizen.web/TextGenerationLlama2/WebApplication/config.xml b/Tizen.web/TextGenerationLlama2/WebApplication/config.xml new file mode 100644 index 00000000..bc526d10 --- /dev/null +++ b/Tizen.web/TextGenerationLlama2/WebApplication/config.xml @@ -0,0 +1,9 @@ + + + + + + + Llama2 + + diff --git a/Tizen.web/TextGenerationLlama2/WebApplication/css/style.css b/Tizen.web/TextGenerationLlama2/WebApplication/css/style.css new file mode 100644 index 00000000..3821d78b --- /dev/null +++ b/Tizen.web/TextGenerationLlama2/WebApplication/css/style.css @@ -0,0 +1,24 @@ +html, +body { + width: 100%; + height: 100%; + margin: 0 auto; + padding: 0; + background-color: #222222; + color: #ffffff; +} +.page { + width: 100%; + height: 100%; + display: table; +} +.contents { + display: table-cell; + vertical-align: middle; + text-align: center; + -webkit-tap-highlight-color: transparent; +} +#content-text { + font-weight: bold; + font-size: 5em; +} \ No newline at end of file diff --git a/Tizen.web/TextGenerationLlama2/WebApplication/icon.png b/Tizen.web/TextGenerationLlama2/WebApplication/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..9765b1bda7e5bddf0925555ab204b887a873bf24 GIT binary patch literal 57662 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 O0000 + + + + + + + + Tizen Mobile Web Basic Application + + + + + + +
+
+ Basic +
+
+ + + diff --git a/Tizen.web/TextGenerationLlama2/WebApplication/js/main.js b/Tizen.web/TextGenerationLlama2/WebApplication/js/main.js new file mode 100644 index 00000000..9c1dff6f --- /dev/null +++ b/Tizen.web/TextGenerationLlama2/WebApplication/js/main.js @@ -0,0 +1,21 @@ +window.onload = function() { + // TODO:: Do your initialization job + + // add eventListener for tizenhwkey + document.addEventListener('tizenhwkey', function(e) { + if (e.keyName === "back") { + try { + tizen.application.getCurrentApplication().exit(); + } catch (ignore) {} + } + }); + + // Sample code + var mainPage = document.querySelector('#main'); + + mainPage.addEventListener("click", function() { + var contentText = document.querySelector('#content-text'); + + contentText.innerHTML = (contentText.innerHTML === "Basic") ? "Tizen" : "Basic"; + }); +}; \ No newline at end of file From 3a3502942d1e69787fe0fda9fcd74cc87dd48a98 Mon Sep 17 00:00:00 2001 From: Yelin Jeong Date: Fri, 18 Oct 2024 15:46:21 +0900 Subject: [PATCH 2/5] [Tizen/web] Add pipeline for query client This patch adds pipeline for query client. Also, buttons and input box are added. Signed-off-by: Yelin Jeong --- .../WebApplication/config.xml | 4 + .../WebApplication/css/style.css | 19 ++- .../WebApplication/index.html | 12 +- .../WebApplication/js/main.js | 118 ++++++++++++++---- .../WebApplication/js/utils.js | 36 ++++++ 5 files changed, 160 insertions(+), 29 deletions(-) create mode 100644 Tizen.web/TextGenerationLlama2/WebApplication/js/utils.js diff --git a/Tizen.web/TextGenerationLlama2/WebApplication/config.xml b/Tizen.web/TextGenerationLlama2/WebApplication/config.xml index bc526d10..d80455c5 100644 --- a/Tizen.web/TextGenerationLlama2/WebApplication/config.xml +++ b/Tizen.web/TextGenerationLlama2/WebApplication/config.xml @@ -5,5 +5,9 @@ Llama2 + + + + diff --git a/Tizen.web/TextGenerationLlama2/WebApplication/css/style.css b/Tizen.web/TextGenerationLlama2/WebApplication/css/style.css index 3821d78b..9943dfb0 100644 --- a/Tizen.web/TextGenerationLlama2/WebApplication/css/style.css +++ b/Tizen.web/TextGenerationLlama2/WebApplication/css/style.css @@ -2,15 +2,14 @@ html, body { width: 100%; height: 100%; - margin: 0 auto; - padding: 0; + margin: auto; + padding: 10px 10px 10px 10px; background-color: #222222; color: #ffffff; } .page { width: 100%; height: 100%; - display: table; } .contents { display: table-cell; @@ -18,6 +17,20 @@ body { text-align: center; -webkit-tap-highlight-color: transparent; } +.button { + padding: 20px 100px; + font-size: 30px; + margin: auto; +} +.input { + padding: 20px 2px; + font-size: 30px; + margin: auto; +} +.output { + width: 80%; + font-size: 30px; +} #content-text { font-weight: bold; font-size: 5em; diff --git a/Tizen.web/TextGenerationLlama2/WebApplication/index.html b/Tizen.web/TextGenerationLlama2/WebApplication/index.html index 71ca8f01..f2508c50 100644 --- a/Tizen.web/TextGenerationLlama2/WebApplication/index.html +++ b/Tizen.web/TextGenerationLlama2/WebApplication/index.html @@ -6,17 +6,19 @@ - Tizen Mobile Web Basic Application + Tizen Text Generation Offloading Example - + +
-
- Basic -
+ +

+

+
diff --git a/Tizen.web/TextGenerationLlama2/WebApplication/js/main.js b/Tizen.web/TextGenerationLlama2/WebApplication/js/main.js index 9c1dff6f..f4731444 100644 --- a/Tizen.web/TextGenerationLlama2/WebApplication/js/main.js +++ b/Tizen.web/TextGenerationLlama2/WebApplication/js/main.js @@ -1,21 +1,97 @@ -window.onload = function() { - // TODO:: Do your initialization job - - // add eventListener for tizenhwkey - document.addEventListener('tizenhwkey', function(e) { - if (e.keyName === "back") { - try { - tizen.application.getCurrentApplication().exit(); - } catch (ignore) {} - } - }); - - // Sample code - var mainPage = document.querySelector('#main'); - - mainPage.addEventListener("click", function() { - var contentText = document.querySelector('#content-text'); - - contentText.innerHTML = (contentText.innerHTML === "Basic") ? "Tizen" : "Basic"; - }); -}; \ No newline at end of file +/* SPDX-License-Identifier: Apache-2.0 */ + +/** + * @file main.js + * @date 18 October 2024 + * @brief Text Generation Offloading example + * @author Yelin Jeong + */ + +import { getNetworkType, getIpAddress } from "./utils.js"; + +let serviceHandle = null; +let tensorsData = null; +let tensorsInfo = null; +let ip = null; + +function disposeData() { + if (tensorsData != null) { + tensorsData.dispose(); + } + + if (tensorsInfo != null) { + tensorsInfo.dispose(); + } +} + +/** + * Callback function for pipeline sink listener + */ +function sinkListenerCallback(sinkName, data) { + const tensorsRetData = data.getTensorRawData(0); + const decoder = new TextDecoder(); + const output = decoder.decode(tensorsRetData.data); + const label = document.getElementById("output"); + label.innerText = output; +} + +/** + * Run a pipeline that uses other device's resources + */ +function runClient() { + /* ToDo : Use NsdService to find port and ip */ + + const filter = "tensor_query_client"; + + const pipelineDescription = + "appsrc name=srcx ! application/octet-stream ! tensor_converter ! other/tensors,format=flexible,num_tensors=1,types=uint8,framerate=0/1 ! " + + filter + + " ! appsink name=sinkx"; + + serviceHandle = tizen.ml.pipeline.createPipeline(pipelineDescription); + serviceHandle.start(); + serviceHandle.registerSinkListener("sinkx", sinkListenerCallback); +} + +/** + * Run a pipeline that uses other device's resources + */ +function inference(input) { + const encoder = new TextEncoder(); + const inputBuffer = encoder.encode(input); + + tensorsInfo = new tizen.ml.TensorsInfo(); + tensorsInfo.addTensorInfo("tensor", "UINT8", [input.length, 1, 1, 1]); + tensorsData = tensorsInfo.getTensorsData(); + tensorsData.setTensorRawData(0, inputBuffer); + serviceHandle.getSource("srcx").inputData(tensorsData); +} + +window.onload = async function () { + const networkType = await getNetworkType(); + ip = await getIpAddress(networkType); + + document.getElementById("start").addEventListener("click", function () { + runClient(); + }); + + document.getElementById("run").addEventListener("click", function () { + inference(document.getElementById("prompt").value); + }); + + // add eventListener for tizenhwkey + document.addEventListener("tizenhwkey", function (e) { + if (e.keyName === "back") { + try { + console.log("Pipeline is disposed!!"); + serviceHandle.stop(); + serviceHandle.dispose(); + + disposeData(); + tizen.application.getCurrentApplication().exit(); + } catch (ignore) { + console.log("error " + ignore); + } + } + }); +}; diff --git a/Tizen.web/TextGenerationLlama2/WebApplication/js/utils.js b/Tizen.web/TextGenerationLlama2/WebApplication/js/utils.js new file mode 100644 index 00000000..7d768ac1 --- /dev/null +++ b/Tizen.web/TextGenerationLlama2/WebApplication/js/utils.js @@ -0,0 +1,36 @@ +/* SPDX-License-Identifier: Apache-2.0 */ + +/** + * @file utils.js + * @date 18 October 2024 + * @brief Utility function for Image Classification Offloading + * @author Yelin Jeong + */ + +/** + * Get currently used network type + * @returns the network type + */ +export async function getNetworkType() { + return new Promise((resolve) => { + tizen.systeminfo.getPropertyValue("NETWORK", function (data) { + resolve(data.networkType); + }); + }); +} + +/** + * Get IP address of the given network type + * @param networkType the network type used + * @returns ip address of the network type + */ +export async function getIpAddress(networkType) { + return new Promise((resolve) => { + tizen.systeminfo.getPropertyValue( + networkType + "_NETWORK", + function (property) { + resolve(property.ipAddress); + }, + ); + }); +} From 8ace4d9a5e788528953c9f85097a61a2e6c12f8f Mon Sep 17 00:00:00 2001 From: Yelin Jeong Date: Fri, 18 Oct 2024 15:58:04 +0900 Subject: [PATCH 3/5] [Tizen/native] Add nsd service for text offloading This patch adds nsd service. Tizen only has native nsd related api, so native service is needed to find ip and port. Signed-off-by: Yelin Jeong --- .../TextGenerationLlama2/NsdService/.cproject | 658 ++++++++++++++++++ .../NsdService/.exportMap | 5 + .../TextGenerationLlama2/NsdService/.project | 46 ++ .../TextGenerationLlama2/NsdService/.tproject | 12 + .../NsdService/inc/nsdservice.h | 21 + .../NsdService/project_def.prop | 11 + .../NsdService/shared/res/nsdservice.png | Bin 0 -> 57662 bytes .../NsdService/src/nsdservice.c | 170 +++++ .../NsdService/tizen-manifest.xml | 11 + 9 files changed, 934 insertions(+) create mode 100644 Tizen.web/TextGenerationLlama2/NsdService/.cproject create mode 100644 Tizen.web/TextGenerationLlama2/NsdService/.exportMap create mode 100644 Tizen.web/TextGenerationLlama2/NsdService/.project create mode 100644 Tizen.web/TextGenerationLlama2/NsdService/.tproject create mode 100644 Tizen.web/TextGenerationLlama2/NsdService/inc/nsdservice.h create mode 100644 Tizen.web/TextGenerationLlama2/NsdService/project_def.prop create mode 100644 Tizen.web/TextGenerationLlama2/NsdService/shared/res/nsdservice.png create mode 100644 Tizen.web/TextGenerationLlama2/NsdService/src/nsdservice.c create mode 100644 Tizen.web/TextGenerationLlama2/NsdService/tizen-manifest.xml diff --git a/Tizen.web/TextGenerationLlama2/NsdService/.cproject b/Tizen.web/TextGenerationLlama2/NsdService/.cproject new file mode 100644 index 00000000..cf005731 --- /dev/null +++ b/Tizen.web/TextGenerationLlama2/NsdService/.cproject @@ -0,0 +1,658 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Tizen.web/TextGenerationLlama2/NsdService/.exportMap b/Tizen.web/TextGenerationLlama2/NsdService/.exportMap new file mode 100644 index 00000000..de305161 --- /dev/null +++ b/Tizen.web/TextGenerationLlama2/NsdService/.exportMap @@ -0,0 +1,5 @@ +{ + global: main; + _IO_*; + local: *; +}; diff --git a/Tizen.web/TextGenerationLlama2/NsdService/.project b/Tizen.web/TextGenerationLlama2/NsdService/.project new file mode 100644 index 00000000..09323794 --- /dev/null +++ b/Tizen.web/TextGenerationLlama2/NsdService/.project @@ -0,0 +1,46 @@ + + + NsdService + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.core.ccnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + + 1729128501799 + + 26 + + org.eclipse.ui.ide.multiFilter + 1.0-projectRelativePath-matches-false-false-*/.tpk + + + + 1729128501802 + + 6 + + org.eclipse.ui.ide.multiFilter + 1.0-name-matches-false-false-project_def.prop + + + + diff --git a/Tizen.web/TextGenerationLlama2/NsdService/.tproject b/Tizen.web/TextGenerationLlama2/NsdService/.tproject new file mode 100644 index 00000000..3d473b57 --- /dev/null +++ b/Tizen.web/TextGenerationLlama2/NsdService/.tproject @@ -0,0 +1,12 @@ + + + + + tizen-8.0 + + + + + + + diff --git a/Tizen.web/TextGenerationLlama2/NsdService/inc/nsdservice.h b/Tizen.web/TextGenerationLlama2/NsdService/inc/nsdservice.h new file mode 100644 index 00000000..baec0f31 --- /dev/null +++ b/Tizen.web/TextGenerationLlama2/NsdService/inc/nsdservice.h @@ -0,0 +1,21 @@ +/** + * @file main.h + * @date 04 Jul 2024 + * @brief Tizen native service for hybrid application + * @author Yelin Jeong + * @bug No known bugs. + */ + +#ifndef __NSD_SERVICE_H__ +#define __NSD_SERVICE_H__ + +#include + +#ifdef LOG_TAG +#undef LOG_TAG +#endif +#define LOG_TAG "nsd_service" + +#define REMOTE_APP_ID "lfebC6UrMY.Llama2" + +#endif /* __NSD_SERVICE_H__ */ diff --git a/Tizen.web/TextGenerationLlama2/NsdService/project_def.prop b/Tizen.web/TextGenerationLlama2/NsdService/project_def.prop new file mode 100644 index 00000000..b07939a3 --- /dev/null +++ b/Tizen.web/TextGenerationLlama2/NsdService/project_def.prop @@ -0,0 +1,11 @@ +APPNAME = nsdservice + +type = app +profile = tizen-8.0 + +USER_SRCS = src/nsdservice.c +USER_DEFS = +USER_INC_DIRS = inc +USER_OBJS = +USER_LIBS = +USER_EDCS = diff --git a/Tizen.web/TextGenerationLlama2/NsdService/shared/res/nsdservice.png b/Tizen.web/TextGenerationLlama2/NsdService/shared/res/nsdservice.png new file mode 100644 index 0000000000000000000000000000000000000000..9765b1bda7e5bddf0925555ab204b887a873bf24 GIT binary patch literal 57662 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 kZ}gYfNaCF}xV$|1>H6z0+kD + * @bug No known bugs. + */ + +#include "nsdservice.h" +#include +#include +#include +#include +#include +#include +#include +#include + +/** + * @brief Service app create callback + */ +static bool _create_cb(void *user_data) { + dlog_print(DLOG_INFO, LOG_TAG, "Callback create\n"); + return true; +} + +/** + * @brief Service app terminate callback + */ +static void _terminate_cb(void *user_data) { + dlog_print(DLOG_INFO, LOG_TAG, "Callback terminate\n"); +} + +/** + * @brief Service app app control callback + */ +static void _app_control_cb(app_control_h app_control, void *user_data) { + dlog_print(DLOG_INFO, LOG_TAG, "Callback app_control\n"); +} + +/** + * @brief Send dnssd remote service information + */ +void _dnssd_send_found(dnssd_service_h dnssd_remote_service, bool is_available) { + char *service_name = NULL; + char *service_type = NULL; + char *ip_v4_address = NULL; + char *ip_v6_address = NULL; + int ret, port = 0; + + ret = dnssd_service_get_type(dnssd_remote_service, &service_type); + if (ret != DNSSD_ERROR_NONE || service_type == NULL) { + dlog_print(DLOG_ERROR, LOG_TAG, "Failed to get service type (%d)", ret); + return; + } + + ret = dnssd_service_get_name(dnssd_remote_service, &service_name); + if (ret != DNSSD_ERROR_NONE || service_name == NULL) { + dlog_print(DLOG_ERROR, LOG_TAG, "Failed to get service name (%d)", ret); + return; + } + + ret = dnssd_service_get_ip(dnssd_remote_service, &ip_v4_address, + &ip_v6_address); + if (ret != DNSSD_ERROR_NONE || ip_v4_address == NULL) { + dlog_print(DLOG_ERROR, LOG_TAG, "Failed to get IP address (%d)", ret); + return; + } + + ret = dnssd_service_get_port(dnssd_remote_service, &port); + if (ret != DNSSD_ERROR_NONE) { + dlog_print(DLOG_ERROR, LOG_TAG, "Failed to get port number (%d)", ret); + return; + } + + char port_buffer[CHAR_BIT]; + snprintf(port_buffer, CHAR_BIT, "%d", port); + + bundle *b = bundle_create(); + bundle_add_str(b, "name", service_name); + bundle_add_str(b, "ip", ip_v4_address); + bundle_add_str(b, "port", port_buffer); + + if (is_available) + ret = message_port_send_message(REMOTE_APP_ID, "STATE_AVAILABLE", b); + else + ret = message_port_send_message(REMOTE_APP_ID, "STATE_UNAVAILABLE", b); + + if (ret != MESSAGE_PORT_ERROR_NONE) { + dlog_print(DLOG_ERROR, LOG_TAG, "Failed to send message to %s", + REMOTE_APP_ID); + } + bundle_free(b); + + if (service_name) + free(service_name); + if (service_type) + free(service_type); + if (ip_v4_address) + free(ip_v4_address); + if (ip_v6_address) + free(ip_v6_address); +} + +/** + * @brief dnssd found callback + */ +void _found_cb(dnssd_service_state_e state, + dnssd_service_h dnssd_remote_service, void *user_data) { + switch (state) { + case DNSSD_SERVICE_STATE_AVAILABLE: + /* DNS-SD service found */ + _dnssd_send_found(dnssd_remote_service, true); + break; + case DNSSD_SERVICE_STATE_UNAVAILABLE: + /* DNS-SD service becomes unavailable */ + _dnssd_send_found(dnssd_remote_service, false); + break; + case DNSSD_SERVICE_STATE_NAME_LOOKUP_FAILED: + /* Browsing failed */ + dlog_print(DLOG_ERROR, LOG_TAG, "Browse Failure\n"); + break; + case DNSSD_SERVICE_STATE_HOST_NAME_LOOKUP_FAILED: + /* Resolving service name failed */ + dlog_print(DLOG_ERROR, LOG_TAG, "Resolve Service Name Failure\n"); + break; + case DNSSD_SERVICE_STATE_ADDRESS_LOOKUP_FAILED: + /* Resolving service address failed */ + dlog_print(DLOG_ERROR, LOG_TAG, "Resolve Service Address\n"); + break; + default: + dlog_print(DLOG_ERROR, LOG_TAG, "Unknown Browse State\n"); + break; + } +} + +/** + * @brief Main function. + */ +int main(int argc, char *argv[]) { + dnssd_browser_h browser_handle; + char *target = "_nsd_offloading._tcp"; + int ret; + bool found; + + service_app_lifecycle_callback_s event_callback = {.create = _create_cb, + .terminate = _terminate_cb, + .app_control = + _app_control_cb}; + + ret = dnssd_initialize(); + if (ret != DNSSD_ERROR_NONE) + dlog_print(DLOG_ERROR, LOG_TAG, "Dnssd initialize failed"); + + ret = dnssd_start_browsing_service(target, &browser_handle, _found_cb, NULL); + if (ret == DNSSD_ERROR_NONE) + dlog_print(DLOG_DEBUG, LOG_TAG, "Start browsing"); + + ret = message_port_check_remote_port(REMOTE_APP_ID, "STATE_AVAILABLE", &found); + if (ret != MESSAGE_PORT_ERROR_NONE || !found) { + dlog_print(DLOG_ERROR, LOG_TAG, "Failed to check remote port"); + } + + ret = message_port_check_remote_port(REMOTE_APP_ID, "STATE_UNAVAILABLE", &found); + if (ret != MESSAGE_PORT_ERROR_NONE || !found) { + dlog_print(DLOG_ERROR, LOG_TAG, "Failed to check remote port"); + } + + return service_app_main(argc, argv, &event_callback, NULL); +} diff --git a/Tizen.web/TextGenerationLlama2/NsdService/tizen-manifest.xml b/Tizen.web/TextGenerationLlama2/NsdService/tizen-manifest.xml new file mode 100644 index 00000000..10a8ef53 --- /dev/null +++ b/Tizen.web/TextGenerationLlama2/NsdService/tizen-manifest.xml @@ -0,0 +1,11 @@ + + + + + nsdservice.png + + + + http://tizen.org/privilege/internet + + From 605f158c28e35751772ed200592b3f698796492d Mon Sep 17 00:00:00 2001 From: Yelin Jeong Date: Mon, 21 Oct 2024 13:37:11 +0900 Subject: [PATCH 4/5] [Tizen/web] Use nsd to find service This patch uses nsd to find llama service provided by android device. Signed-off-by: Yelin Jeong --- .../WebApplication/js/main.js | 40 +++++++- .../WebApplication/js/utils.js | 97 +++++++++++++++++++ 2 files changed, 133 insertions(+), 4 deletions(-) diff --git a/Tizen.web/TextGenerationLlama2/WebApplication/js/main.js b/Tizen.web/TextGenerationLlama2/WebApplication/js/main.js index f4731444..418b5725 100644 --- a/Tizen.web/TextGenerationLlama2/WebApplication/js/main.js +++ b/Tizen.web/TextGenerationLlama2/WebApplication/js/main.js @@ -7,8 +7,15 @@ * @author Yelin Jeong */ -import { getNetworkType, getIpAddress } from "./utils.js"; - +import { + getNetworkType, + getIpAddress, + startHybridService, + startMessagePort, + gRemoteServices, +} from "./utils.js"; + +const serviceName = "llama2c"; let serviceHandle = null; let tensorsData = null; let tensorsInfo = null; @@ -39,9 +46,26 @@ function sinkListenerCallback(sinkName, data) { * Run a pipeline that uses other device's resources */ function runClient() { - /* ToDo : Use NsdService to find port and ip */ + const remoteService = gRemoteServices.get(serviceName); + if ( + !gRemoteServices.has(serviceName) || + !Object.prototype.hasOwnProperty.call(remoteService, "ip") || + !Object.prototype.hasOwnProperty.call(remoteService, "port") + ) { + console.log("No remote service available"); + return; + } - const filter = "tensor_query_client"; + const filter = + "tensor_query_client host=" + + ip + + " port=" + + remoteService["port"] + + " dest-host=" + + remoteService["ip"] + + " dest-port=" + + remoteService["port"] + + " timeout=100000"; const pipelineDescription = "appsrc name=srcx ! application/octet-stream ! tensor_converter ! other/tensors,format=flexible,num_tensors=1,types=uint8,framerate=0/1 ! " + @@ -57,6 +81,11 @@ function runClient() { * Run a pipeline that uses other device's resources */ function inference(input) { + if (!gRemoteServices.has(serviceName)) { + console.log("Offloading service is disappeared"); + return; + } + const encoder = new TextEncoder(); const inputBuffer = encoder.encode(input); @@ -71,6 +100,9 @@ window.onload = async function () { const networkType = await getNetworkType(); ip = await getIpAddress(networkType); + startMessagePort(); + startHybridService(); + document.getElementById("start").addEventListener("click", function () { runClient(); }); diff --git a/Tizen.web/TextGenerationLlama2/WebApplication/js/utils.js b/Tizen.web/TextGenerationLlama2/WebApplication/js/utils.js index 7d768ac1..d0503e74 100644 --- a/Tizen.web/TextGenerationLlama2/WebApplication/js/utils.js +++ b/Tizen.web/TextGenerationLlama2/WebApplication/js/utils.js @@ -7,6 +7,9 @@ * @author Yelin Jeong */ +let gServiceAppId = "lfebC6UrMY.nsdservice"; +export let gRemoteServices = new Map(); + /** * Get currently used network type * @returns the network type @@ -34,3 +37,97 @@ export async function getIpAddress(networkType) { ); }); } + +function launchServiceApp() { + function onSuccess() { + console.log("Service App launched successfully"); + } + + function onError(err) { + console.error("Service App launch failed", err); + } + + try { + console.log("Launching [" + gServiceAppId + "] ..."); + tizen.application.launch(gServiceAppId, onSuccess, onError); + } catch (exc) { + console.error("Exception while launching HybridServiceApp: " + exc.message); + } +} + +function onGetAppsContextSuccess(contexts) { + let i = 0; + let appInfo = null; + + for (i = 0; i < contexts.length; i = i + 1) { + try { + appInfo = tizen.application.getAppInfo(contexts[i].appId); + } catch (exc) { + console.error("Exception while getting application info " + exc.message); + } + + if (appInfo.id === gServiceAppId) { + break; + } + } + + if (i >= contexts.length) { + console.log("Service App not found, Trying to launch service app"); + launchServiceApp(); + } +} + +function onGetAppsContextError(err) { + console.error("getAppsContext exc", err); +} + +/** + * Starts obtaining information about applications + * that are currently running on a device. + */ +export function startHybridService() { + try { + tizen.application.getAppsContext( + onGetAppsContextSuccess, + onGetAppsContextError, + ); + } catch (e) { + console.log("Get AppContext failed, " + e); + } +} + +export function startMessagePort() { + try { + const addService = + tizen.messageport.requestLocalMessagePort("STATE_AVAILABLE"); + addService.addMessagePortListener(function (data) { + let remoteService = new Object(); + let serviceName = ""; + for (var i = 0; i < data.length; i++) { + if (data[i].key == "name") { + var name = data[i].value.split(" ")[0]; + serviceName = name; + } else remoteService[data[i].key] = data[i].value; + } + if (gRemoteServices.has(serviceName)) { + gRemoteServices.delete(serviceName); + } + gRemoteServices.set(serviceName, remoteService); + }); + + const removeService = + tizen.messageport.requestLocalMessagePort("STATE_UNAVAILABLE"); + removeService.addMessagePortListener(function (data) { + let serviceName = ""; + for (var i = 0; i < data.length; i++) { + if (data[i].key == "name") { + var name = data[i].value.split("(")[0]; + serviceName = name; + } + } + gRemoteServices.delete(serviceName); + }); + } catch (e) { + console.log("Failed to create local message port " + e.name); + } +} From a8764205cbbccc397281227f3f770e6a5592adb3 Mon Sep 17 00:00:00 2001 From: Yelin Jeong Date: Mon, 21 Oct 2024 13:50:46 +0900 Subject: [PATCH 5/5] Add README of text generation example This patch adds README of text generation tizen web example. Signed-off-by: Yelin Jeong --- Tizen.web/TextGenerationLlama2/README.md | 19 ++++++++++++++++++ .../TextGenerationLlama2/text_generation.png | Bin 0 -> 166096 bytes 2 files changed, 19 insertions(+) create mode 100644 Tizen.web/TextGenerationLlama2/README.md create mode 100644 Tizen.web/TextGenerationLlama2/text_generation.png diff --git a/Tizen.web/TextGenerationLlama2/README.md b/Tizen.web/TextGenerationLlama2/README.md new file mode 100644 index 00000000..83814ed0 --- /dev/null +++ b/Tizen.web/TextGenerationLlama2/README.md @@ -0,0 +1,19 @@ +# Text Generation Sample App +## Description +* This is a sample application of Tizen ML offloading. +* If you want to run it on your device, Tizen 8.0 or higher is required. +* `appsrc` and `tensor_query_client` element are used. + +## How to build and run +```sh +$ tizen build-web -- WebApplication +$ tizen package -t wgt -- WebApplication/.buildResult/ +$ tizen build-native -a arm -c llvm -C Debug -- NsdService/ +$ tizen package -t tpk -- NsdService/Debug/ +$ tizen package -t wgt -r NsdService/Debug/lfebC6UrMY.nsdservice-1.0.0-arm.tpk -- WebApplication/.buildResult/Llama2.wgt +$ tizen install -n WebApplication/.buildResult/Llama2.wgt -t rpi4 +$ tizen run -p lfebC6UrMY -t rpi4 +``` + +## Demo +![Alt demo](./text_generation.png) diff --git a/Tizen.web/TextGenerationLlama2/text_generation.png b/Tizen.web/TextGenerationLlama2/text_generation.png new file mode 100644 index 0000000000000000000000000000000000000000..fc5d5fd07dacfd56862d4d69d1f99671bf94a12e GIT binary patch literal 166096 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 literal 0 HcmV?d00001