From dedc50e848b11aa3c80a55972742cded978804aa Mon Sep 17 00:00:00 2001 From: Bartosz Taudul Date: Mon, 29 Dec 2025 17:01:09 +0100 Subject: [PATCH] Support adding messages completely defined by json. --- profiler/src/profiler/TracyLlm.cpp | 11 +++++++++++ profiler/src/profiler/TracyLlm.hpp | 1 + 2 files changed, 12 insertions(+) diff --git a/profiler/src/profiler/TracyLlm.cpp b/profiler/src/profiler/TracyLlm.cpp index 7a3a01c6..c1b69566 100644 --- a/profiler/src/profiler/TracyLlm.cpp +++ b/profiler/src/profiler/TracyLlm.cpp @@ -717,6 +717,17 @@ void TracyLlm::AddMessageBlocking( std::string&& str, const char* role, std::uni if( lock ) lock.unlock(); } +void TracyLlm::AddMessageBlocking( nlohmann::json&& json, std::unique_lock& lock ) +{ + auto dump = json.dump(); + const auto tokens = m_api ? m_api->Tokenize( dump, m_modelIdx ) : -1; + m_usedCtx += tokens >= 0 ? tokens : dump.size() / 4; + + if( lock ) lock.lock(); + m_chat.emplace_back( std::move( json ) ); + if( lock ) lock.unlock(); +} + void TracyLlm::AddAttachment( std::string&& str, const char* role ) { AddMessage( "\n" + std::move( str ), role ); diff --git a/profiler/src/profiler/TracyLlm.hpp b/profiler/src/profiler/TracyLlm.hpp index d879b4b8..05857b1f 100644 --- a/profiler/src/profiler/TracyLlm.hpp +++ b/profiler/src/profiler/TracyLlm.hpp @@ -62,6 +62,7 @@ private: void QueueConnect(); void AddMessageBlocking( std::string&& str, const char* role, std::unique_lock& lock ); + void AddMessageBlocking( nlohmann::json&& json, std::unique_lock& lock ); void ManageContext( std::unique_lock& lock ); void SendMessage( std::unique_lock& lock );