From 47f2991dc700133243419902b8b2e61548730324 Mon Sep 17 00:00:00 2001 From: Shubham Malhotra Date: Tue, 6 Jan 2026 15:11:16 -0800 Subject: [PATCH] small change --- .../rac_backend_llamacpp_register.cpp | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/src/backends/llamacpp/rac_backend_llamacpp_register.cpp b/src/backends/llamacpp/rac_backend_llamacpp_register.cpp index 9f7c771..fd509e2 100644 --- a/src/backends/llamacpp/rac_backend_llamacpp_register.cpp +++ b/src/backends/llamacpp/rac_backend_llamacpp_register.cpp @@ -12,6 +12,8 @@ #include #include +#include + #include "rac/core/rac_core.h" #include "rac/core/rac_error.h" #include "rac/core/rac_logger.h" @@ -66,10 +68,28 @@ static rac_result_t llamacpp_vtable_generate_stream(void* impl, const char* prom static rac_result_t llamacpp_vtable_get_info(void* impl, rac_llm_info_t* out_info) { if (!out_info) return RAC_ERROR_NULL_POINTER; + out_info->is_ready = rac_llm_llamacpp_is_model_loaded(impl); out_info->supports_streaming = RAC_TRUE; out_info->current_model = nullptr; - out_info->context_length = 0; + out_info->context_length = 0; // Default if model not loaded or info unavailable + + // Get actual context_length from model info JSON when model is loaded + if (out_info->is_ready) { + char* json_str = nullptr; + if (rac_llm_llamacpp_get_model_info(impl, &json_str) == RAC_SUCCESS && json_str) { + try { + auto json = nlohmann::json::parse(json_str); + if (json.contains("context_size") && json["context_size"].is_number()) { + out_info->context_length = json["context_size"].get(); + } + } catch (...) { + // JSON parse error - context_length remains 0 + } + free(json_str); + } + } + return RAC_SUCCESS; }