[ml service] Add Flare as a new nnfw type - #638

Open
songgot wants to merge 1 commit into
nnstreamer:mainfrom
songgot:dev_support_flare
Open

[ml service] Add Flare as a new nnfw type#638
songgot wants to merge 1 commit into
nnstreamer:mainfrom
songgot:dev_support_flare

Conversation

@songgot

Copy link
Copy Markdown
Contributor
  • Implemented support for 'flare' nnfw type in ML service API
  • Included test cases to validate flare functionality

@myungjoo

Copy link
Copy Markdown
Member

Remove unrelated commits. Make it possible to be reviewed and merged independently from other topics

@songgot
songgotforce-pushed the dev_support_flare branch 3 times, most recently from 3dbf288 to 027d334CompareJuly 29, 2025 08:23
@songgot

Copy link
Copy Markdown
ContributorAuthor

Remove unrelated commits. Make it possible to be reviewed and merged independently from other topics

Thank you for taking the time to review.
I've updated.

@songgot
songgotforce-pushed the dev_support_flare branch 3 times, most recently from 5eb5c42 to 21b0002CompareJuly 30, 2025 00:10
Comment threadc/src/ml-api-inference-single.c Outdated
@songgot
songgotforce-pushed the dev_support_flare branch 4 times, most recently from 65bad43 to 2515cccCompareJuly 31, 2025 07:15
Comment threadtests/capi/unittest_capi_service_extension.cc Outdated
Comment threadtests/capi/unittest_capi_service_extension.cc Outdated
@songgot
songgotforce-pushed the dev_support_flare branch 4 times, most recently from bbda0b6 to 13ee0d7CompareAugust 26, 2025 04:54
Comment threadc/include/nnstreamer-tizen-internal.h Outdated
- Implemented support for 'flare' nnfw type in ML service API
- Included test cases to validate flare functionality
Signed-off-by: hyunil park <hyunil46.park@samsung.com>

@hj210hj210 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The commit purpose and changes are clearly described, and the test code appears to be well-written. Here are a few suggestions to improve maintainability and code quality:

Comment threadc/src/ml-api-inference-single.c
Comment threadtests/capi/unittest_capi_service_extension.cc
Comment threadtests/capi/unittest_capi_service_extension.cc
Comment threadtests/capi/unittest_capi_service_extension.cc

@myungjoo-botmyungjoo-bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated review (transcribed from an AI review agent's report; please verify before acting).

Summary: The PR adds a temporary Tizen-internal #define ML_NNFW_TYPE_FLARE 23, registers "flare" in ml_nnfw_subplugin_name[], special-cases fw_name == "flare" in ml_single_open_custom(), adds a pre-switch .bin extension check in _ml_validate_model_file(), and generalizes the llama.cpp ml-service scenario test. I checked the diff against current main, merge-ability, CI status, and whether main already has an equivalent type (it does not: no FLARE / QUICKAI in main).

  1. [High] Merge conflict / stale basegh reports CONFLICTING; git merge-tree conflicts in c/src/ml-api-inference-single.c (PR ~2083-2097) and tests/capi/unittest_capi_service_extension.cc (PR ~394-541). main has since introduced _is_valid_extension() and switch ((int) *nnfw) (2a038f8), and replaced the llama.cpp test macro with LLAMACPP_TEST_MODEL / skip_llamacpp_tc (acb6d92). Since main's switch ((int) *nnfw) already removes the -Werror=switch obstacle, the FLARE check should now be a normal case ML_NNFW_TYPE_FLARE: using _is_valid_extension (model[0], { ".bin", NULL }), as @jaeyun-jung requested, instead of the pre-switch block and its @todo.
  2. [High] Android CI is red for this PR only — all four build (arm64-v8a / armeabi-v7a / x86 / x86_64) jobs failed while neighbouring PRs passed. Logs have expired so I could not confirm the cause; the prime suspect is strcasecmp at c/src/ml-api-inference-single.c:1065 — use g_ascii_strcasecmp like the rest of the file. Please rebase and get CI green.
  3. [Medium] Flare-specific hack instead of generic resolutionml-api-inference-single.c:1062-1067 hard-codes "flare" before validation. _ml_get_nnfw_type_by_subplugin_name ("flare") already returns 23, so the generic fix is if (nnfw == ML_NNFW_TYPE_ANY && info->fw_name) nnfw = _ml_get_nnfw_type_by_subplugin_name (info->fw_name);, which also helps any other framework whose model extension is not auto-detectable.
  4. [Medium] Temporary API placementc/include/nnstreamer-tizen-internal.h:22: a bare #define shadows the ml_nnfw_type_e namespace and has no (Since X.0) Doxygen; the stated migration condition (after Tizen 10.0 M2) has passed and @myungjoo already asked for this to be moved into ml_nnfw_type_e in ml-api-common.h with ACR. Please do that in this PR (public API doc change included), or document who/when removes the define.
  5. [Medium] Tests never run in CI and are mis-gatedscenarioConfigFlare is inside #if defined(ENABLE_LLAMACPP), and there is no Flare subplugin in CI, so the new validation/open path has zero coverage. skip_llm_tc only checks sflare_if_4bit_3b.bin but the config also needs history_lora.bin and data/tokenizer.json (partial assets fail instead of skip), and its skip message still points to the Llama-2 URL. Please add model-free unit tests that do run in CI: _ml_get_nnfw_type_by_subplugin_name ("flare") == ML_NNFW_TYPE_FLARE, its reverse, and _ml_validate_model_file with ML_NNFW_TYPE_FLARE rejecting non-.bin files with ML_ERROR_INVALID_PARAMETER; gate the scenario test on its own condition and check all three asset files.
  6. [Low] Malformed test prompttests/test_models/data/flare_input.txt contains literal two-character \n sequences, a stray trailing ", and no trailing newline.
  7. [Low] Styleml-api-inference-single.c:2097@todo comment is indented ~40 spaces; unittest_capi_service_extension.cc adds <iostream> / std::cout.write where the file uses g_print (use g_print ("%.*s", ...)); gchar *input_file should be const gchar *; the g_strdup ("flare_input.txt") is unnecessary; stray blank lines at ~409/474/542; the 40 s blocking g_usleep should be a bounded poll on tdata->received.

No back-door or suspicious behavior found.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@songgot@myungjoo@jaeyun-jung@hj210@myungjoo-bot
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

[ml service] Add Flare as a new nnfw type - #638

Open
songgot wants to merge 1 commit into
nnstreamer:mainfrom
songgot:dev_support_flare
Open

[ml service] Add Flare as a new nnfw type#638
songgot wants to merge 1 commit into
nnstreamer:mainfrom
songgot:dev_support_flare

Conversation

@songgot

Copy link
Copy Markdown
Contributor
  • Implemented support for 'flare' nnfw type in ML service API
  • Included test cases to validate flare functionality

@myungjoo

Copy link
Copy Markdown
Member

Remove unrelated commits. Make it possible to be reviewed and merged independently from other topics

@songgot
songgotforce-pushed the dev_support_flare branch 3 times, most recently from 3dbf288 to 027d334CompareJuly 29, 2025 08:23
@songgot

Copy link
Copy Markdown
ContributorAuthor

Remove unrelated commits. Make it possible to be reviewed and merged independently from other topics

Thank you for taking the time to review.
I've updated.

@songgot
songgotforce-pushed the dev_support_flare branch 3 times, most recently from 5eb5c42 to 21b0002CompareJuly 30, 2025 00:10
Comment threadc/src/ml-api-inference-single.c Outdated
@songgot
songgotforce-pushed the dev_support_flare branch 4 times, most recently from 65bad43 to 2515cccCompareJuly 31, 2025 07:15
Comment threadtests/capi/unittest_capi_service_extension.cc Outdated
Comment threadtests/capi/unittest_capi_service_extension.cc Outdated
@songgot
songgotforce-pushed the dev_support_flare branch 4 times, most recently from bbda0b6 to 13ee0d7CompareAugust 26, 2025 04:54
Comment threadc/include/nnstreamer-tizen-internal.h Outdated
- Implemented support for 'flare' nnfw type in ML service API
- Included test cases to validate flare functionality
Signed-off-by: hyunil park <hyunil46.park@samsung.com>

@hj210hj210 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The commit purpose and changes are clearly described, and the test code appears to be well-written. Here are a few suggestions to improve maintainability and code quality:

Comment threadc/src/ml-api-inference-single.c
Comment threadtests/capi/unittest_capi_service_extension.cc
Comment threadtests/capi/unittest_capi_service_extension.cc
Comment threadtests/capi/unittest_capi_service_extension.cc

@myungjoo-botmyungjoo-bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated review (transcribed from an AI review agent's report; please verify before acting).

Summary: The PR adds a temporary Tizen-internal #define ML_NNFW_TYPE_FLARE 23, registers "flare" in ml_nnfw_subplugin_name[], special-cases fw_name == "flare" in ml_single_open_custom(), adds a pre-switch .bin extension check in _ml_validate_model_file(), and generalizes the llama.cpp ml-service scenario test. I checked the diff against current main, merge-ability, CI status, and whether main already has an equivalent type (it does not: no FLARE / QUICKAI in main).

  1. [High] Merge conflict / stale basegh reports CONFLICTING; git merge-tree conflicts in c/src/ml-api-inference-single.c (PR ~2083-2097) and tests/capi/unittest_capi_service_extension.cc (PR ~394-541). main has since introduced _is_valid_extension() and switch ((int) *nnfw) (2a038f8), and replaced the llama.cpp test macro with LLAMACPP_TEST_MODEL / skip_llamacpp_tc (acb6d92). Since main's switch ((int) *nnfw) already removes the -Werror=switch obstacle, the FLARE check should now be a normal case ML_NNFW_TYPE_FLARE: using _is_valid_extension (model[0], { ".bin", NULL }), as @jaeyun-jung requested, instead of the pre-switch block and its @todo.
  2. [High] Android CI is red for this PR only — all four build (arm64-v8a / armeabi-v7a / x86 / x86_64) jobs failed while neighbouring PRs passed. Logs have expired so I could not confirm the cause; the prime suspect is strcasecmp at c/src/ml-api-inference-single.c:1065 — use g_ascii_strcasecmp like the rest of the file. Please rebase and get CI green.
  3. [Medium] Flare-specific hack instead of generic resolutionml-api-inference-single.c:1062-1067 hard-codes "flare" before validation. _ml_get_nnfw_type_by_subplugin_name ("flare") already returns 23, so the generic fix is if (nnfw == ML_NNFW_TYPE_ANY && info->fw_name) nnfw = _ml_get_nnfw_type_by_subplugin_name (info->fw_name);, which also helps any other framework whose model extension is not auto-detectable.
  4. [Medium] Temporary API placementc/include/nnstreamer-tizen-internal.h:22: a bare #define shadows the ml_nnfw_type_e namespace and has no (Since X.0) Doxygen; the stated migration condition (after Tizen 10.0 M2) has passed and @myungjoo already asked for this to be moved into ml_nnfw_type_e in ml-api-common.h with ACR. Please do that in this PR (public API doc change included), or document who/when removes the define.
  5. [Medium] Tests never run in CI and are mis-gatedscenarioConfigFlare is inside #if defined(ENABLE_LLAMACPP), and there is no Flare subplugin in CI, so the new validation/open path has zero coverage. skip_llm_tc only checks sflare_if_4bit_3b.bin but the config also needs history_lora.bin and data/tokenizer.json (partial assets fail instead of skip), and its skip message still points to the Llama-2 URL. Please add model-free unit tests that do run in CI: _ml_get_nnfw_type_by_subplugin_name ("flare") == ML_NNFW_TYPE_FLARE, its reverse, and _ml_validate_model_file with ML_NNFW_TYPE_FLARE rejecting non-.bin files with ML_ERROR_INVALID_PARAMETER; gate the scenario test on its own condition and check all three asset files.
  6. [Low] Malformed test prompttests/test_models/data/flare_input.txt contains literal two-character \n sequences, a stray trailing ", and no trailing newline.
  7. [Low] Styleml-api-inference-single.c:2097@todo comment is indented ~40 spaces; unittest_capi_service_extension.cc adds <iostream> / std::cout.write where the file uses g_print (use g_print ("%.*s", ...)); gchar *input_file should be const gchar *; the g_strdup ("flare_input.txt") is unnecessary; stray blank lines at ~409/474/542; the 40 s blocking g_usleep should be a bounded poll on tdata->received.

No back-door or suspicious behavior found.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@songgot@myungjoo@jaeyun-jung@hj210@myungjoo-bot
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

[ml service] Add Flare as a new nnfw type - #638

Open
songgot wants to merge 1 commit into
nnstreamer:mainfrom
songgot:dev_support_flare
Open

[ml service] Add Flare as a new nnfw type#638
songgot wants to merge 1 commit into
nnstreamer:mainfrom
songgot:dev_support_flare

Conversation

@songgot

Copy link
Copy Markdown
Contributor
  • Implemented support for 'flare' nnfw type in ML service API
  • Included test cases to validate flare functionality

@myungjoo

Copy link
Copy Markdown
Member

Remove unrelated commits. Make it possible to be reviewed and merged independently from other topics

@songgot
songgotforce-pushed the dev_support_flare branch 3 times, most recently from 3dbf288 to 027d334CompareJuly 29, 2025 08:23
@songgot

Copy link
Copy Markdown
ContributorAuthor

Remove unrelated commits. Make it possible to be reviewed and merged independently from other topics

Thank you for taking the time to review.
I've updated.

@songgot
songgotforce-pushed the dev_support_flare branch 3 times, most recently from 5eb5c42 to 21b0002CompareJuly 30, 2025 00:10
Comment threadc/src/ml-api-inference-single.c Outdated
@songgot
songgotforce-pushed the dev_support_flare branch 4 times, most recently from 65bad43 to 2515cccCompareJuly 31, 2025 07:15
Comment threadtests/capi/unittest_capi_service_extension.cc Outdated
Comment threadtests/capi/unittest_capi_service_extension.cc Outdated
@songgot
songgotforce-pushed the dev_support_flare branch 4 times, most recently from bbda0b6 to 13ee0d7CompareAugust 26, 2025 04:54
Comment threadc/include/nnstreamer-tizen-internal.h Outdated
- Implemented support for 'flare' nnfw type in ML service API
- Included test cases to validate flare functionality
Signed-off-by: hyunil park <hyunil46.park@samsung.com>

@hj210hj210 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The commit purpose and changes are clearly described, and the test code appears to be well-written. Here are a few suggestions to improve maintainability and code quality:

Comment threadc/src/ml-api-inference-single.c
Comment threadtests/capi/unittest_capi_service_extension.cc
Comment threadtests/capi/unittest_capi_service_extension.cc
Comment threadtests/capi/unittest_capi_service_extension.cc

@myungjoo-botmyungjoo-bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated review (transcribed from an AI review agent's report; please verify before acting).

Summary: The PR adds a temporary Tizen-internal #define ML_NNFW_TYPE_FLARE 23, registers "flare" in ml_nnfw_subplugin_name[], special-cases fw_name == "flare" in ml_single_open_custom(), adds a pre-switch .bin extension check in _ml_validate_model_file(), and generalizes the llama.cpp ml-service scenario test. I checked the diff against current main, merge-ability, CI status, and whether main already has an equivalent type (it does not: no FLARE / QUICKAI in main).

  1. [High] Merge conflict / stale basegh reports CONFLICTING; git merge-tree conflicts in c/src/ml-api-inference-single.c (PR ~2083-2097) and tests/capi/unittest_capi_service_extension.cc (PR ~394-541). main has since introduced _is_valid_extension() and switch ((int) *nnfw) (2a038f8), and replaced the llama.cpp test macro with LLAMACPP_TEST_MODEL / skip_llamacpp_tc (acb6d92). Since main's switch ((int) *nnfw) already removes the -Werror=switch obstacle, the FLARE check should now be a normal case ML_NNFW_TYPE_FLARE: using _is_valid_extension (model[0], { ".bin", NULL }), as @jaeyun-jung requested, instead of the pre-switch block and its @todo.
  2. [High] Android CI is red for this PR only — all four build (arm64-v8a / armeabi-v7a / x86 / x86_64) jobs failed while neighbouring PRs passed. Logs have expired so I could not confirm the cause; the prime suspect is strcasecmp at c/src/ml-api-inference-single.c:1065 — use g_ascii_strcasecmp like the rest of the file. Please rebase and get CI green.
  3. [Medium] Flare-specific hack instead of generic resolutionml-api-inference-single.c:1062-1067 hard-codes "flare" before validation. _ml_get_nnfw_type_by_subplugin_name ("flare") already returns 23, so the generic fix is if (nnfw == ML_NNFW_TYPE_ANY && info->fw_name) nnfw = _ml_get_nnfw_type_by_subplugin_name (info->fw_name);, which also helps any other framework whose model extension is not auto-detectable.
  4. [Medium] Temporary API placementc/include/nnstreamer-tizen-internal.h:22: a bare #define shadows the ml_nnfw_type_e namespace and has no (Since X.0) Doxygen; the stated migration condition (after Tizen 10.0 M2) has passed and @myungjoo already asked for this to be moved into ml_nnfw_type_e in ml-api-common.h with ACR. Please do that in this PR (public API doc change included), or document who/when removes the define.
  5. [Medium] Tests never run in CI and are mis-gatedscenarioConfigFlare is inside #if defined(ENABLE_LLAMACPP), and there is no Flare subplugin in CI, so the new validation/open path has zero coverage. skip_llm_tc only checks sflare_if_4bit_3b.bin but the config also needs history_lora.bin and data/tokenizer.json (partial assets fail instead of skip), and its skip message still points to the Llama-2 URL. Please add model-free unit tests that do run in CI: _ml_get_nnfw_type_by_subplugin_name ("flare") == ML_NNFW_TYPE_FLARE, its reverse, and _ml_validate_model_file with ML_NNFW_TYPE_FLARE rejecting non-.bin files with ML_ERROR_INVALID_PARAMETER; gate the scenario test on its own condition and check all three asset files.
  6. [Low] Malformed test prompttests/test_models/data/flare_input.txt contains literal two-character \n sequences, a stray trailing ", and no trailing newline.
  7. [Low] Styleml-api-inference-single.c:2097@todo comment is indented ~40 spaces; unittest_capi_service_extension.cc adds <iostream> / std::cout.write where the file uses g_print (use g_print ("%.*s", ...)); gchar *input_file should be const gchar *; the g_strdup ("flare_input.txt") is unnecessary; stray blank lines at ~409/474/542; the 40 s blocking g_usleep should be a bounded poll on tdata->received.

No back-door or suspicious behavior found.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@songgot@myungjoo@jaeyun-jung@hj210@myungjoo-bot
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

[ml service] Add Flare as a new nnfw type - #638

Open
songgot wants to merge 1 commit into
nnstreamer:mainfrom
songgot:dev_support_flare
Open

[ml service] Add Flare as a new nnfw type#638
songgot wants to merge 1 commit into
nnstreamer:mainfrom
songgot:dev_support_flare

Conversation

@songgot

Copy link
Copy Markdown
Contributor
  • Implemented support for 'flare' nnfw type in ML service API
  • Included test cases to validate flare functionality

@myungjoo

Copy link
Copy Markdown
Member

Remove unrelated commits. Make it possible to be reviewed and merged independently from other topics

@songgot
songgotforce-pushed the dev_support_flare branch 3 times, most recently from 3dbf288 to 027d334CompareJuly 29, 2025 08:23
@songgot

Copy link
Copy Markdown
ContributorAuthor

Remove unrelated commits. Make it possible to be reviewed and merged independently from other topics

Thank you for taking the time to review.
I've updated.

@songgot
songgotforce-pushed the dev_support_flare branch 3 times, most recently from 5eb5c42 to 21b0002CompareJuly 30, 2025 00:10
Comment threadc/src/ml-api-inference-single.c Outdated
@songgot
songgotforce-pushed the dev_support_flare branch 4 times, most recently from 65bad43 to 2515cccCompareJuly 31, 2025 07:15
Comment threadtests/capi/unittest_capi_service_extension.cc Outdated
Comment threadtests/capi/unittest_capi_service_extension.cc Outdated
@songgot
songgotforce-pushed the dev_support_flare branch 4 times, most recently from bbda0b6 to 13ee0d7CompareAugust 26, 2025 04:54
Comment threadc/include/nnstreamer-tizen-internal.h Outdated
- Implemented support for 'flare' nnfw type in ML service API
- Included test cases to validate flare functionality
Signed-off-by: hyunil park <hyunil46.park@samsung.com>

@hj210hj210 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The commit purpose and changes are clearly described, and the test code appears to be well-written. Here are a few suggestions to improve maintainability and code quality:

Comment threadc/src/ml-api-inference-single.c
Comment threadtests/capi/unittest_capi_service_extension.cc
Comment threadtests/capi/unittest_capi_service_extension.cc
Comment threadtests/capi/unittest_capi_service_extension.cc

@myungjoo-botmyungjoo-bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated review (transcribed from an AI review agent's report; please verify before acting).

Summary: The PR adds a temporary Tizen-internal #define ML_NNFW_TYPE_FLARE 23, registers "flare" in ml_nnfw_subplugin_name[], special-cases fw_name == "flare" in ml_single_open_custom(), adds a pre-switch .bin extension check in _ml_validate_model_file(), and generalizes the llama.cpp ml-service scenario test. I checked the diff against current main, merge-ability, CI status, and whether main already has an equivalent type (it does not: no FLARE / QUICKAI in main).

  1. [High] Merge conflict / stale basegh reports CONFLICTING; git merge-tree conflicts in c/src/ml-api-inference-single.c (PR ~2083-2097) and tests/capi/unittest_capi_service_extension.cc (PR ~394-541). main has since introduced _is_valid_extension() and switch ((int) *nnfw) (2a038f8), and replaced the llama.cpp test macro with LLAMACPP_TEST_MODEL / skip_llamacpp_tc (acb6d92). Since main's switch ((int) *nnfw) already removes the -Werror=switch obstacle, the FLARE check should now be a normal case ML_NNFW_TYPE_FLARE: using _is_valid_extension (model[0], { ".bin", NULL }), as @jaeyun-jung requested, instead of the pre-switch block and its @todo.
  2. [High] Android CI is red for this PR only — all four build (arm64-v8a / armeabi-v7a / x86 / x86_64) jobs failed while neighbouring PRs passed. Logs have expired so I could not confirm the cause; the prime suspect is strcasecmp at c/src/ml-api-inference-single.c:1065 — use g_ascii_strcasecmp like the rest of the file. Please rebase and get CI green.
  3. [Medium] Flare-specific hack instead of generic resolutionml-api-inference-single.c:1062-1067 hard-codes "flare" before validation. _ml_get_nnfw_type_by_subplugin_name ("flare") already returns 23, so the generic fix is if (nnfw == ML_NNFW_TYPE_ANY && info->fw_name) nnfw = _ml_get_nnfw_type_by_subplugin_name (info->fw_name);, which also helps any other framework whose model extension is not auto-detectable.
  4. [Medium] Temporary API placementc/include/nnstreamer-tizen-internal.h:22: a bare #define shadows the ml_nnfw_type_e namespace and has no (Since X.0) Doxygen; the stated migration condition (after Tizen 10.0 M2) has passed and @myungjoo already asked for this to be moved into ml_nnfw_type_e in ml-api-common.h with ACR. Please do that in this PR (public API doc change included), or document who/when removes the define.
  5. [Medium] Tests never run in CI and are mis-gatedscenarioConfigFlare is inside #if defined(ENABLE_LLAMACPP), and there is no Flare subplugin in CI, so the new validation/open path has zero coverage. skip_llm_tc only checks sflare_if_4bit_3b.bin but the config also needs history_lora.bin and data/tokenizer.json (partial assets fail instead of skip), and its skip message still points to the Llama-2 URL. Please add model-free unit tests that do run in CI: _ml_get_nnfw_type_by_subplugin_name ("flare") == ML_NNFW_TYPE_FLARE, its reverse, and _ml_validate_model_file with ML_NNFW_TYPE_FLARE rejecting non-.bin files with ML_ERROR_INVALID_PARAMETER; gate the scenario test on its own condition and check all three asset files.
  6. [Low] Malformed test prompttests/test_models/data/flare_input.txt contains literal two-character \n sequences, a stray trailing ", and no trailing newline.
  7. [Low] Styleml-api-inference-single.c:2097@todo comment is indented ~40 spaces; unittest_capi_service_extension.cc adds <iostream> / std::cout.write where the file uses g_print (use g_print ("%.*s", ...)); gchar *input_file should be const gchar *; the g_strdup ("flare_input.txt") is unnecessary; stray blank lines at ~409/474/542; the 40 s blocking g_usleep should be a bounded poll on tdata->received.

No back-door or suspicious behavior found.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@songgot@myungjoo@jaeyun-jung@hj210@myungjoo-bot
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

[ml service] Add Flare as a new nnfw type - #638

Open
songgot wants to merge 1 commit into
nnstreamer:mainfrom
songgot:dev_support_flare
Open

[ml service] Add Flare as a new nnfw type#638
songgot wants to merge 1 commit into
nnstreamer:mainfrom
songgot:dev_support_flare

Conversation

@songgot

Copy link
Copy Markdown
Contributor
  • Implemented support for 'flare' nnfw type in ML service API
  • Included test cases to validate flare functionality

@myungjoo

Copy link
Copy Markdown
Member

Remove unrelated commits. Make it possible to be reviewed and merged independently from other topics

@songgot
songgotforce-pushed the dev_support_flare branch 3 times, most recently from 3dbf288 to 027d334CompareJuly 29, 2025 08:23
@songgot

Copy link
Copy Markdown
ContributorAuthor

Remove unrelated commits. Make it possible to be reviewed and merged independently from other topics

Thank you for taking the time to review.
I've updated.

@songgot
songgotforce-pushed the dev_support_flare branch 3 times, most recently from 5eb5c42 to 21b0002CompareJuly 30, 2025 00:10
Comment threadc/src/ml-api-inference-single.c Outdated
@songgot
songgotforce-pushed the dev_support_flare branch 4 times, most recently from 65bad43 to 2515cccCompareJuly 31, 2025 07:15
Comment threadtests/capi/unittest_capi_service_extension.cc Outdated
Comment threadtests/capi/unittest_capi_service_extension.cc Outdated
@songgot
songgotforce-pushed the dev_support_flare branch 4 times, most recently from bbda0b6 to 13ee0d7CompareAugust 26, 2025 04:54
Comment threadc/include/nnstreamer-tizen-internal.h Outdated
- Implemented support for 'flare' nnfw type in ML service API
- Included test cases to validate flare functionality
Signed-off-by: hyunil park <hyunil46.park@samsung.com>

@hj210hj210 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The commit purpose and changes are clearly described, and the test code appears to be well-written. Here are a few suggestions to improve maintainability and code quality:

Comment threadc/src/ml-api-inference-single.c
Comment threadtests/capi/unittest_capi_service_extension.cc
Comment threadtests/capi/unittest_capi_service_extension.cc
Comment threadtests/capi/unittest_capi_service_extension.cc

@myungjoo-botmyungjoo-bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated review (transcribed from an AI review agent's report; please verify before acting).

Summary: The PR adds a temporary Tizen-internal #define ML_NNFW_TYPE_FLARE 23, registers "flare" in ml_nnfw_subplugin_name[], special-cases fw_name == "flare" in ml_single_open_custom(), adds a pre-switch .bin extension check in _ml_validate_model_file(), and generalizes the llama.cpp ml-service scenario test. I checked the diff against current main, merge-ability, CI status, and whether main already has an equivalent type (it does not: no FLARE / QUICKAI in main).

  1. [High] Merge conflict / stale basegh reports CONFLICTING; git merge-tree conflicts in c/src/ml-api-inference-single.c (PR ~2083-2097) and tests/capi/unittest_capi_service_extension.cc (PR ~394-541). main has since introduced _is_valid_extension() and switch ((int) *nnfw) (2a038f8), and replaced the llama.cpp test macro with LLAMACPP_TEST_MODEL / skip_llamacpp_tc (acb6d92). Since main's switch ((int) *nnfw) already removes the -Werror=switch obstacle, the FLARE check should now be a normal case ML_NNFW_TYPE_FLARE: using _is_valid_extension (model[0], { ".bin", NULL }), as @jaeyun-jung requested, instead of the pre-switch block and its @todo.
  2. [High] Android CI is red for this PR only — all four build (arm64-v8a / armeabi-v7a / x86 / x86_64) jobs failed while neighbouring PRs passed. Logs have expired so I could not confirm the cause; the prime suspect is strcasecmp at c/src/ml-api-inference-single.c:1065 — use g_ascii_strcasecmp like the rest of the file. Please rebase and get CI green.
  3. [Medium] Flare-specific hack instead of generic resolutionml-api-inference-single.c:1062-1067 hard-codes "flare" before validation. _ml_get_nnfw_type_by_subplugin_name ("flare") already returns 23, so the generic fix is if (nnfw == ML_NNFW_TYPE_ANY && info->fw_name) nnfw = _ml_get_nnfw_type_by_subplugin_name (info->fw_name);, which also helps any other framework whose model extension is not auto-detectable.
  4. [Medium] Temporary API placementc/include/nnstreamer-tizen-internal.h:22: a bare #define shadows the ml_nnfw_type_e namespace and has no (Since X.0) Doxygen; the stated migration condition (after Tizen 10.0 M2) has passed and @myungjoo already asked for this to be moved into ml_nnfw_type_e in ml-api-common.h with ACR. Please do that in this PR (public API doc change included), or document who/when removes the define.
  5. [Medium] Tests never run in CI and are mis-gatedscenarioConfigFlare is inside #if defined(ENABLE_LLAMACPP), and there is no Flare subplugin in CI, so the new validation/open path has zero coverage. skip_llm_tc only checks sflare_if_4bit_3b.bin but the config also needs history_lora.bin and data/tokenizer.json (partial assets fail instead of skip), and its skip message still points to the Llama-2 URL. Please add model-free unit tests that do run in CI: _ml_get_nnfw_type_by_subplugin_name ("flare") == ML_NNFW_TYPE_FLARE, its reverse, and _ml_validate_model_file with ML_NNFW_TYPE_FLARE rejecting non-.bin files with ML_ERROR_INVALID_PARAMETER; gate the scenario test on its own condition and check all three asset files.
  6. [Low] Malformed test prompttests/test_models/data/flare_input.txt contains literal two-character \n sequences, a stray trailing ", and no trailing newline.
  7. [Low] Styleml-api-inference-single.c:2097@todo comment is indented ~40 spaces; unittest_capi_service_extension.cc adds <iostream> / std::cout.write where the file uses g_print (use g_print ("%.*s", ...)); gchar *input_file should be const gchar *; the g_strdup ("flare_input.txt") is unnecessary; stray blank lines at ~409/474/542; the 40 s blocking g_usleep should be a bounded poll on tdata->received.

No back-door or suspicious behavior found.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@songgot@myungjoo@jaeyun-jung@hj210@myungjoo-bot
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

[ml service] Add Flare as a new nnfw type - #638

Open
songgot wants to merge 1 commit into
nnstreamer:mainfrom
songgot:dev_support_flare
Open

[ml service] Add Flare as a new nnfw type#638
songgot wants to merge 1 commit into
nnstreamer:mainfrom
songgot:dev_support_flare

Conversation

@songgot

Copy link
Copy Markdown
Contributor
  • Implemented support for 'flare' nnfw type in ML service API
  • Included test cases to validate flare functionality

@myungjoo

Copy link
Copy Markdown
Member

Remove unrelated commits. Make it possible to be reviewed and merged independently from other topics

@songgot
songgotforce-pushed the dev_support_flare branch 3 times, most recently from 3dbf288 to 027d334CompareJuly 29, 2025 08:23
@songgot

Copy link
Copy Markdown
ContributorAuthor

Remove unrelated commits. Make it possible to be reviewed and merged independently from other topics

Thank you for taking the time to review.
I've updated.

@songgot
songgotforce-pushed the dev_support_flare branch 3 times, most recently from 5eb5c42 to 21b0002CompareJuly 30, 2025 00:10
Comment threadc/src/ml-api-inference-single.c Outdated
@songgot
songgotforce-pushed the dev_support_flare branch 4 times, most recently from 65bad43 to 2515cccCompareJuly 31, 2025 07:15
Comment threadtests/capi/unittest_capi_service_extension.cc Outdated
Comment threadtests/capi/unittest_capi_service_extension.cc Outdated
@songgot
songgotforce-pushed the dev_support_flare branch 4 times, most recently from bbda0b6 to 13ee0d7CompareAugust 26, 2025 04:54
Comment threadc/include/nnstreamer-tizen-internal.h Outdated
- Implemented support for 'flare' nnfw type in ML service API
- Included test cases to validate flare functionality
Signed-off-by: hyunil park <hyunil46.park@samsung.com>

@hj210hj210 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The commit purpose and changes are clearly described, and the test code appears to be well-written. Here are a few suggestions to improve maintainability and code quality:

Comment threadc/src/ml-api-inference-single.c
Comment threadtests/capi/unittest_capi_service_extension.cc
Comment threadtests/capi/unittest_capi_service_extension.cc
Comment threadtests/capi/unittest_capi_service_extension.cc

@myungjoo-botmyungjoo-bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated review (transcribed from an AI review agent's report; please verify before acting).

Summary: The PR adds a temporary Tizen-internal #define ML_NNFW_TYPE_FLARE 23, registers "flare" in ml_nnfw_subplugin_name[], special-cases fw_name == "flare" in ml_single_open_custom(), adds a pre-switch .bin extension check in _ml_validate_model_file(), and generalizes the llama.cpp ml-service scenario test. I checked the diff against current main, merge-ability, CI status, and whether main already has an equivalent type (it does not: no FLARE / QUICKAI in main).

  1. [High] Merge conflict / stale basegh reports CONFLICTING; git merge-tree conflicts in c/src/ml-api-inference-single.c (PR ~2083-2097) and tests/capi/unittest_capi_service_extension.cc (PR ~394-541). main has since introduced _is_valid_extension() and switch ((int) *nnfw) (2a038f8), and replaced the llama.cpp test macro with LLAMACPP_TEST_MODEL / skip_llamacpp_tc (acb6d92). Since main's switch ((int) *nnfw) already removes the -Werror=switch obstacle, the FLARE check should now be a normal case ML_NNFW_TYPE_FLARE: using _is_valid_extension (model[0], { ".bin", NULL }), as @jaeyun-jung requested, instead of the pre-switch block and its @todo.
  2. [High] Android CI is red for this PR only — all four build (arm64-v8a / armeabi-v7a / x86 / x86_64) jobs failed while neighbouring PRs passed. Logs have expired so I could not confirm the cause; the prime suspect is strcasecmp at c/src/ml-api-inference-single.c:1065 — use g_ascii_strcasecmp like the rest of the file. Please rebase and get CI green.
  3. [Medium] Flare-specific hack instead of generic resolutionml-api-inference-single.c:1062-1067 hard-codes "flare" before validation. _ml_get_nnfw_type_by_subplugin_name ("flare") already returns 23, so the generic fix is if (nnfw == ML_NNFW_TYPE_ANY && info->fw_name) nnfw = _ml_get_nnfw_type_by_subplugin_name (info->fw_name);, which also helps any other framework whose model extension is not auto-detectable.
  4. [Medium] Temporary API placementc/include/nnstreamer-tizen-internal.h:22: a bare #define shadows the ml_nnfw_type_e namespace and has no (Since X.0) Doxygen; the stated migration condition (after Tizen 10.0 M2) has passed and @myungjoo already asked for this to be moved into ml_nnfw_type_e in ml-api-common.h with ACR. Please do that in this PR (public API doc change included), or document who/when removes the define.
  5. [Medium] Tests never run in CI and are mis-gatedscenarioConfigFlare is inside #if defined(ENABLE_LLAMACPP), and there is no Flare subplugin in CI, so the new validation/open path has zero coverage. skip_llm_tc only checks sflare_if_4bit_3b.bin but the config also needs history_lora.bin and data/tokenizer.json (partial assets fail instead of skip), and its skip message still points to the Llama-2 URL. Please add model-free unit tests that do run in CI: _ml_get_nnfw_type_by_subplugin_name ("flare") == ML_NNFW_TYPE_FLARE, its reverse, and _ml_validate_model_file with ML_NNFW_TYPE_FLARE rejecting non-.bin files with ML_ERROR_INVALID_PARAMETER; gate the scenario test on its own condition and check all three asset files.
  6. [Low] Malformed test prompttests/test_models/data/flare_input.txt contains literal two-character \n sequences, a stray trailing ", and no trailing newline.
  7. [Low] Styleml-api-inference-single.c:2097@todo comment is indented ~40 spaces; unittest_capi_service_extension.cc adds <iostream> / std::cout.write where the file uses g_print (use g_print ("%.*s", ...)); gchar *input_file should be const gchar *; the g_strdup ("flare_input.txt") is unnecessary; stray blank lines at ~409/474/542; the 40 s blocking g_usleep should be a bounded poll on tdata->received.

No back-door or suspicious behavior found.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@songgot@myungjoo@jaeyun-jung@hj210@myungjoo-bot
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

[ml service] Add Flare as a new nnfw type - #638

Open
songgot wants to merge 1 commit into
nnstreamer:mainfrom
songgot:dev_support_flare
Open

[ml service] Add Flare as a new nnfw type#638
songgot wants to merge 1 commit into
nnstreamer:mainfrom
songgot:dev_support_flare

Conversation

@songgot

Copy link
Copy Markdown
Contributor
  • Implemented support for 'flare' nnfw type in ML service API
  • Included test cases to validate flare functionality

@myungjoo

Copy link
Copy Markdown
Member

Remove unrelated commits. Make it possible to be reviewed and merged independently from other topics

@songgot
songgotforce-pushed the dev_support_flare branch 3 times, most recently from 3dbf288 to 027d334CompareJuly 29, 2025 08:23
@songgot

Copy link
Copy Markdown
ContributorAuthor

Remove unrelated commits. Make it possible to be reviewed and merged independently from other topics

Thank you for taking the time to review.
I've updated.

@songgot
songgotforce-pushed the dev_support_flare branch 3 times, most recently from 5eb5c42 to 21b0002CompareJuly 30, 2025 00:10
Comment threadc/src/ml-api-inference-single.c Outdated
@songgot
songgotforce-pushed the dev_support_flare branch 4 times, most recently from 65bad43 to 2515cccCompareJuly 31, 2025 07:15
Comment threadtests/capi/unittest_capi_service_extension.cc Outdated
Comment threadtests/capi/unittest_capi_service_extension.cc Outdated
@songgot
songgotforce-pushed the dev_support_flare branch 4 times, most recently from bbda0b6 to 13ee0d7CompareAugust 26, 2025 04:54
Comment threadc/include/nnstreamer-tizen-internal.h Outdated
- Implemented support for 'flare' nnfw type in ML service API
- Included test cases to validate flare functionality
Signed-off-by: hyunil park <hyunil46.park@samsung.com>

@hj210hj210 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The commit purpose and changes are clearly described, and the test code appears to be well-written. Here are a few suggestions to improve maintainability and code quality:

Comment threadc/src/ml-api-inference-single.c
Comment threadtests/capi/unittest_capi_service_extension.cc
Comment threadtests/capi/unittest_capi_service_extension.cc
Comment threadtests/capi/unittest_capi_service_extension.cc

@myungjoo-botmyungjoo-bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated review (transcribed from an AI review agent's report; please verify before acting).

Summary: The PR adds a temporary Tizen-internal #define ML_NNFW_TYPE_FLARE 23, registers "flare" in ml_nnfw_subplugin_name[], special-cases fw_name == "flare" in ml_single_open_custom(), adds a pre-switch .bin extension check in _ml_validate_model_file(), and generalizes the llama.cpp ml-service scenario test. I checked the diff against current main, merge-ability, CI status, and whether main already has an equivalent type (it does not: no FLARE / QUICKAI in main).

  1. [High] Merge conflict / stale basegh reports CONFLICTING; git merge-tree conflicts in c/src/ml-api-inference-single.c (PR ~2083-2097) and tests/capi/unittest_capi_service_extension.cc (PR ~394-541). main has since introduced _is_valid_extension() and switch ((int) *nnfw) (2a038f8), and replaced the llama.cpp test macro with LLAMACPP_TEST_MODEL / skip_llamacpp_tc (acb6d92). Since main's switch ((int) *nnfw) already removes the -Werror=switch obstacle, the FLARE check should now be a normal case ML_NNFW_TYPE_FLARE: using _is_valid_extension (model[0], { ".bin", NULL }), as @jaeyun-jung requested, instead of the pre-switch block and its @todo.
  2. [High] Android CI is red for this PR only — all four build (arm64-v8a / armeabi-v7a / x86 / x86_64) jobs failed while neighbouring PRs passed. Logs have expired so I could not confirm the cause; the prime suspect is strcasecmp at c/src/ml-api-inference-single.c:1065 — use g_ascii_strcasecmp like the rest of the file. Please rebase and get CI green.
  3. [Medium] Flare-specific hack instead of generic resolutionml-api-inference-single.c:1062-1067 hard-codes "flare" before validation. _ml_get_nnfw_type_by_subplugin_name ("flare") already returns 23, so the generic fix is if (nnfw == ML_NNFW_TYPE_ANY && info->fw_name) nnfw = _ml_get_nnfw_type_by_subplugin_name (info->fw_name);, which also helps any other framework whose model extension is not auto-detectable.
  4. [Medium] Temporary API placementc/include/nnstreamer-tizen-internal.h:22: a bare #define shadows the ml_nnfw_type_e namespace and has no (Since X.0) Doxygen; the stated migration condition (after Tizen 10.0 M2) has passed and @myungjoo already asked for this to be moved into ml_nnfw_type_e in ml-api-common.h with ACR. Please do that in this PR (public API doc change included), or document who/when removes the define.
  5. [Medium] Tests never run in CI and are mis-gatedscenarioConfigFlare is inside #if defined(ENABLE_LLAMACPP), and there is no Flare subplugin in CI, so the new validation/open path has zero coverage. skip_llm_tc only checks sflare_if_4bit_3b.bin but the config also needs history_lora.bin and data/tokenizer.json (partial assets fail instead of skip), and its skip message still points to the Llama-2 URL. Please add model-free unit tests that do run in CI: _ml_get_nnfw_type_by_subplugin_name ("flare") == ML_NNFW_TYPE_FLARE, its reverse, and _ml_validate_model_file with ML_NNFW_TYPE_FLARE rejecting non-.bin files with ML_ERROR_INVALID_PARAMETER; gate the scenario test on its own condition and check all three asset files.
  6. [Low] Malformed test prompttests/test_models/data/flare_input.txt contains literal two-character \n sequences, a stray trailing ", and no trailing newline.
  7. [Low] Styleml-api-inference-single.c:2097@todo comment is indented ~40 spaces; unittest_capi_service_extension.cc adds <iostream> / std::cout.write where the file uses g_print (use g_print ("%.*s", ...)); gchar *input_file should be const gchar *; the g_strdup ("flare_input.txt") is unnecessary; stray blank lines at ~409/474/542; the 40 s blocking g_usleep should be a bounded poll on tdata->received.

No back-door or suspicious behavior found.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@songgot@myungjoo@jaeyun-jung@hj210@myungjoo-bot
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

[ml service] Add Flare as a new nnfw type - #638

Open
songgot wants to merge 1 commit into
nnstreamer:mainfrom
songgot:dev_support_flare
Open

[ml service] Add Flare as a new nnfw type#638
songgot wants to merge 1 commit into
nnstreamer:mainfrom
songgot:dev_support_flare

Conversation

@songgot

Copy link
Copy Markdown
Contributor
  • Implemented support for 'flare' nnfw type in ML service API
  • Included test cases to validate flare functionality

@myungjoo

Copy link
Copy Markdown
Member

Remove unrelated commits. Make it possible to be reviewed and merged independently from other topics

@songgot
songgotforce-pushed the dev_support_flare branch 3 times, most recently from 3dbf288 to 027d334CompareJuly 29, 2025 08:23
@songgot

Copy link
Copy Markdown
ContributorAuthor

Remove unrelated commits. Make it possible to be reviewed and merged independently from other topics

Thank you for taking the time to review.
I've updated.

@songgot
songgotforce-pushed the dev_support_flare branch 3 times, most recently from 5eb5c42 to 21b0002CompareJuly 30, 2025 00:10
Comment threadc/src/ml-api-inference-single.c Outdated
@songgot
songgotforce-pushed the dev_support_flare branch 4 times, most recently from 65bad43 to 2515cccCompareJuly 31, 2025 07:15
Comment threadtests/capi/unittest_capi_service_extension.cc Outdated
Comment threadtests/capi/unittest_capi_service_extension.cc Outdated
@songgot
songgotforce-pushed the dev_support_flare branch 4 times, most recently from bbda0b6 to 13ee0d7CompareAugust 26, 2025 04:54
Comment threadc/include/nnstreamer-tizen-internal.h Outdated
- Implemented support for 'flare' nnfw type in ML service API
- Included test cases to validate flare functionality
Signed-off-by: hyunil park <hyunil46.park@samsung.com>

@hj210hj210 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The commit purpose and changes are clearly described, and the test code appears to be well-written. Here are a few suggestions to improve maintainability and code quality:

Comment threadc/src/ml-api-inference-single.c
Comment threadtests/capi/unittest_capi_service_extension.cc
Comment threadtests/capi/unittest_capi_service_extension.cc
Comment threadtests/capi/unittest_capi_service_extension.cc

@myungjoo-botmyungjoo-bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated review (transcribed from an AI review agent's report; please verify before acting).

Summary: The PR adds a temporary Tizen-internal #define ML_NNFW_TYPE_FLARE 23, registers "flare" in ml_nnfw_subplugin_name[], special-cases fw_name == "flare" in ml_single_open_custom(), adds a pre-switch .bin extension check in _ml_validate_model_file(), and generalizes the llama.cpp ml-service scenario test. I checked the diff against current main, merge-ability, CI status, and whether main already has an equivalent type (it does not: no FLARE / QUICKAI in main).

  1. [High] Merge conflict / stale basegh reports CONFLICTING; git merge-tree conflicts in c/src/ml-api-inference-single.c (PR ~2083-2097) and tests/capi/unittest_capi_service_extension.cc (PR ~394-541). main has since introduced _is_valid_extension() and switch ((int) *nnfw) (2a038f8), and replaced the llama.cpp test macro with LLAMACPP_TEST_MODEL / skip_llamacpp_tc (acb6d92). Since main's switch ((int) *nnfw) already removes the -Werror=switch obstacle, the FLARE check should now be a normal case ML_NNFW_TYPE_FLARE: using _is_valid_extension (model[0], { ".bin", NULL }), as @jaeyun-jung requested, instead of the pre-switch block and its @todo.
  2. [High] Android CI is red for this PR only — all four build (arm64-v8a / armeabi-v7a / x86 / x86_64) jobs failed while neighbouring PRs passed. Logs have expired so I could not confirm the cause; the prime suspect is strcasecmp at c/src/ml-api-inference-single.c:1065 — use g_ascii_strcasecmp like the rest of the file. Please rebase and get CI green.
  3. [Medium] Flare-specific hack instead of generic resolutionml-api-inference-single.c:1062-1067 hard-codes "flare" before validation. _ml_get_nnfw_type_by_subplugin_name ("flare") already returns 23, so the generic fix is if (nnfw == ML_NNFW_TYPE_ANY && info->fw_name) nnfw = _ml_get_nnfw_type_by_subplugin_name (info->fw_name);, which also helps any other framework whose model extension is not auto-detectable.
  4. [Medium] Temporary API placementc/include/nnstreamer-tizen-internal.h:22: a bare #define shadows the ml_nnfw_type_e namespace and has no (Since X.0) Doxygen; the stated migration condition (after Tizen 10.0 M2) has passed and @myungjoo already asked for this to be moved into ml_nnfw_type_e in ml-api-common.h with ACR. Please do that in this PR (public API doc change included), or document who/when removes the define.
  5. [Medium] Tests never run in CI and are mis-gatedscenarioConfigFlare is inside #if defined(ENABLE_LLAMACPP), and there is no Flare subplugin in CI, so the new validation/open path has zero coverage. skip_llm_tc only checks sflare_if_4bit_3b.bin but the config also needs history_lora.bin and data/tokenizer.json (partial assets fail instead of skip), and its skip message still points to the Llama-2 URL. Please add model-free unit tests that do run in CI: _ml_get_nnfw_type_by_subplugin_name ("flare") == ML_NNFW_TYPE_FLARE, its reverse, and _ml_validate_model_file with ML_NNFW_TYPE_FLARE rejecting non-.bin files with ML_ERROR_INVALID_PARAMETER; gate the scenario test on its own condition and check all three asset files.
  6. [Low] Malformed test prompttests/test_models/data/flare_input.txt contains literal two-character \n sequences, a stray trailing ", and no trailing newline.
  7. [Low] Styleml-api-inference-single.c:2097@todo comment is indented ~40 spaces; unittest_capi_service_extension.cc adds <iostream> / std::cout.write where the file uses g_print (use g_print ("%.*s", ...)); gchar *input_file should be const gchar *; the g_strdup ("flare_input.txt") is unnecessary; stray blank lines at ~409/474/542; the 40 s blocking g_usleep should be a bounded poll on tdata->received.

No back-door or suspicious behavior found.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@songgot@myungjoo@jaeyun-jung@hj210@myungjoo-bot