From eefc7aee4b74db8838d3161c2bd9efcada841fdf Mon Sep 17 00:00:00 2001 From: Bartosz Taudul Date: Thu, 18 Jun 2026 20:56:07 +0200 Subject: [PATCH] Detect llama.cpp router mode. --- profiler/src/profiler/TracyLlmApi.cpp | 10 ++++++++++ profiler/src/profiler/TracyLlmApi.hpp | 1 + 2 files changed, 11 insertions(+) diff --git a/profiler/src/profiler/TracyLlmApi.cpp b/profiler/src/profiler/TracyLlmApi.cpp index 86f36498..a03d16e2 100644 --- a/profiler/src/profiler/TracyLlmApi.cpp +++ b/profiler/src/profiler/TracyLlmApi.cpp @@ -67,6 +67,16 @@ bool TracyLlmApi::Connect( const char* url ) m_type = Type::LlamaSwap; if( id.find( "embed" ) != std::string::npos ) m_models.back().embeddings = true; } + else if( ( m_type == Type::Unknown || m_type == Type::LlamaCpp ) && GetRequest( m_url + "/props", buf2 ) == 200 && buf2.find( "\"build_info\"" ) != std::string::npos ) + { + m_type = Type::LlamaCpp; + if( model.contains( "status" ) && model["status"].contains( "preset" ) && model["status"]["preset"].is_string() && + model["status"]["preset"].get_ref().find( "embedding" ) != std::string::npos ) + { + m_models.back().embeddings = true; + } + if( model.contains( "meta" ) && model["meta"].contains( "n_ctx" ) ) m_models.back().contextSize = model["meta"]["n_ctx"].get(); + } else if( ( m_type == Type::Unknown || m_type == Type::LmStudio ) && GetRequest( m_url + "/api/v0/models/" + id, buf2 ) == 200 ) { m_type = Type::LmStudio; diff --git a/profiler/src/profiler/TracyLlmApi.hpp b/profiler/src/profiler/TracyLlmApi.hpp index 15cbdcac..b44aa9f2 100644 --- a/profiler/src/profiler/TracyLlmApi.hpp +++ b/profiler/src/profiler/TracyLlmApi.hpp @@ -25,6 +25,7 @@ class TracyLlmApi Unknown, LmStudio, LlamaSwap, + LlamaCpp, Other };