]> git.djapps.eu Git - pkg/ggml/sources/llama.cpp/commitdiff
server: tests: fetch random media marker via /apply-template (#21962) (#21980)
authorPascal <redacted>
Thu, 16 Apr 2026 17:46:21 +0000 (19:46 +0200)
committerGitHub <redacted>
Thu, 16 Apr 2026 17:46:21 +0000 (20:46 +0300)
* server: tests: fetch random media marker via /apply-template (#21962 fix)

* server: allow pinning media marker via LLAMA_MEDIA_MARKER env var

get_media_marker() checks LLAMA_MEDIA_MARKER at first call and uses it
as-is if set, falling back to the random marker otherwise.

Tests no longer need to fetch the marker dynamically via /apply-template:
the fixture sets LLAMA_MEDIA_MARKER=<__media__> so the hardcoded prompts
work as before.

Address review feedback from ngxson

* server: make get_media_marker() thread-safe via magic statics

Use a C++11 static local with a lambda initializer instead of a global
static with an empty-check. The runtime guarantees initialization exactly
once without explicit locking.

Address review feedback from ggerganov

* nits

* nits

tools/server/server-common.cpp
tools/server/tests/unit/test_vision_api.py

index fd417393f8cc2ddcb66d481bfc475cb38b51d8cd..f66b1f2557c8beb319d7e2bf675fdf7b21905179 100644 (file)
@@ -84,12 +84,16 @@ std::string gen_tool_call_id() {
     return random_string();
 }
 
-static std::string media_marker = "";
 const char * get_media_marker() {
-    if (media_marker.empty()) {
-        media_marker = "<__media_" + random_string() + "__>";
-    }
-    return media_marker.c_str();
+    static const std::string marker = []() {
+        // allow user to pin a reproducible marker via env var
+        const char * env = getenv("LLAMA_MEDIA_MARKER");
+        if (env && env[0] != '\0') {
+            return std::string(env);
+        }
+        return std::string("<__media_") + random_string() + "__>";
+    }();
+    return marker.c_str();
 }
 
 //
index 9408116d1cff33e113429ea508445eca7f15694b..fb77084c89b6a7d6ff3968aade83d233c68b5671 100644 (file)
@@ -37,6 +37,7 @@ JSON_PROMPT_STRING_KEY = "prompt_string"
 @pytest.fixture(autouse=True)
 def create_server():
     global server
+    os.environ['LLAMA_MEDIA_MARKER'] = '<__media__>'
     server = ServerPreset.tinygemma3()
 
 def test_models_supports_multimodal_capability():