diff --git a/pipeline/CMakeLists.txt b/pipeline/CMakeLists.txt index 06fc0c9..afc522a 100644 --- a/pipeline/CMakeLists.txt +++ b/pipeline/CMakeLists.txt @@ -104,27 +104,24 @@ FetchContent_MakeAvailable(spdlog) set(SOURCES src/main.cpp # BiergartenDataGenerator methods - src/biergarten_data_generator/constructor.cpp + src/biergarten_data_generator/biergarten_data_generator.cpp src/biergarten_data_generator/run.cpp src/biergarten_data_generator/query_cities_with_countries.cpp src/biergarten_data_generator/generate_breweries.cpp src/biergarten_data_generator/log_results.cpp # WikipediaService methods - src/services/wikipedia/constructor.cpp + src/services/wikipedia/wikipedia_service.cpp src/services/wikipedia/get_summary.cpp src/services/wikipedia/fetch_extract.cpp # CURLWebClient and CurlGlobalState methods - src/web_client/curl_global_state_constructor.cpp - src/web_client/curl_global_state_destructor.cpp - src/web_client/curl_web_client_constructor.cpp - src/web_client/curl_web_client_destructor.cpp + src/web_client/curl_global_state.cpp + src/web_client/curl_web_client.cpp src/web_client/curl_web_client_download_to_file.cpp src/web_client/curl_web_client_get.cpp src/web_client/curl_web_client_utils.cpp src/web_client/curl_web_client_url_encode.cpp # Data generation modules - src/data_generation/llama/destructor.cpp - src/data_generation/llama/constructor.cpp + src/data_generation/llama/llama_generator.cpp src/data_generation/llama/generate_brewery.cpp src/data_generation/llama/generate_user.cpp src/data_generation/llama/helpers.cpp diff --git a/pipeline/src/biergarten_data_generator/constructor.cpp b/pipeline/src/biergarten_data_generator/biergarten_data_generator.cpp similarity index 85% rename from pipeline/src/biergarten_data_generator/constructor.cpp rename to pipeline/src/biergarten_data_generator/biergarten_data_generator.cpp index d90365b..eb93e5c 100644 --- a/pipeline/src/biergarten_data_generator/constructor.cpp +++ b/pipeline/src/biergarten_data_generator/biergarten_data_generator.cpp @@ -1,12 +1,12 @@ /** - * @file biergarten_data_generator/constructor.cpp + * @file biergarten_data_generator/biergarten_data_generator.cpp * @brief BiergartenDataGenerator constructor implementation. */ -#include - #include "biergarten_data_generator.h" +#include + BiergartenDataGenerator::BiergartenDataGenerator( std::shared_ptr context_service, std::unique_ptr generator) diff --git a/pipeline/src/data_generation/llama/destructor.cpp b/pipeline/src/data_generation/llama/destructor.cpp deleted file mode 100644 index 7c8a75e..0000000 --- a/pipeline/src/data_generation/llama/destructor.cpp +++ /dev/null @@ -1,26 +0,0 @@ -/** - * @file data_generation/llama/destructor.cpp - * @brief Releases llama model/context resources and backend state during - * LlamaGenerator teardown to avoid leaks across runs. - */ - -#include "data_generation/llama_generator.h" -#include "llama.h" - -LlamaGenerator::~LlamaGenerator() { - /** - * Free the inference context (contains KV cache and computation state) - */ - if (context_ != nullptr) { - llama_free(context_); - context_ = nullptr; - } - - /** - * Free the loaded model (contains weights and vocabulary) - */ - if (model_ != nullptr) { - llama_model_free(model_); - model_ = nullptr; - } -} diff --git a/pipeline/src/data_generation/llama/constructor.cpp b/pipeline/src/data_generation/llama/llama_generator.cpp similarity index 70% rename from pipeline/src/data_generation/llama/constructor.cpp rename to pipeline/src/data_generation/llama/llama_generator.cpp index 1921ef3..ed39fc4 100644 --- a/pipeline/src/data_generation/llama/constructor.cpp +++ b/pipeline/src/data_generation/llama/llama_generator.cpp @@ -1,18 +1,20 @@ /** - * @file data_generation/llama/constructor.cpp - * @brief LlamaGenerator constructor implementation. + * @file data_generation/llama/llama_generator.cpp + * @brief LlamaGenerator constructor and destructor implementation. */ +#include "data_generation/llama_generator.h" + #include #include #include #include "biergarten_data_generator.h" -#include "data_generation/llama_generator.h" +#include "llama.h" LlamaGenerator::LlamaGenerator(const ApplicationOptions& options, const std::string& model_path) - : rng_() { + : rng_(std::random_device{}()) { if (model_path.empty()) { throw std::runtime_error("LlamaGenerator: model path must not be empty"); } @@ -52,5 +54,23 @@ LlamaGenerator::LlamaGenerator(const ApplicationOptions& options, } n_ctx_ = options.n_ctx; - Load(model_path); + this->Load(model_path); +} + +LlamaGenerator::~LlamaGenerator() { + /** + * Free the inference context (contains KV cache and computation state) + */ + if (context_ != nullptr) { + llama_free(context_); + context_ = nullptr; + } + + /** + * Free the loaded model (contains weights and vocabulary) + */ + if (model_ != nullptr) { + llama_model_free(model_); + model_ = nullptr; + } } diff --git a/pipeline/src/services/wikipedia/constructor.cpp b/pipeline/src/services/wikipedia/wikipedia_service.cpp similarity index 82% rename from pipeline/src/services/wikipedia/constructor.cpp rename to pipeline/src/services/wikipedia/wikipedia_service.cpp index bb2fc66..e063e85 100644 --- a/pipeline/src/services/wikipedia/constructor.cpp +++ b/pipeline/src/services/wikipedia/wikipedia_service.cpp @@ -1,11 +1,11 @@ /** - * @file wikipedia/constructor.cpp + * @file services/wikipedia/wikipedia_service.cpp * @brief WikipediaService constructor implementation. */ -#include - #include "services/wikipedia_service.h" +#include + WikipediaService::WikipediaService(std::shared_ptr client) : client_(std::move(client)) {} diff --git a/pipeline/src/web_client/curl_global_state_constructor.cpp b/pipeline/src/web_client/curl_global_state.cpp similarity index 63% rename from pipeline/src/web_client/curl_global_state_constructor.cpp rename to pipeline/src/web_client/curl_global_state.cpp index 6f2f317..bb49cf9 100644 --- a/pipeline/src/web_client/curl_global_state_constructor.cpp +++ b/pipeline/src/web_client/curl_global_state.cpp @@ -1,6 +1,6 @@ /** - * @file web_client/curl_global_state_constructor.cpp - * @brief CurlGlobalState constructor implementation. + * @file web_client/curl_global_state.cpp + * @brief CurlGlobalState constructor and destructor implementation. */ #include @@ -15,3 +15,5 @@ CurlGlobalState::CurlGlobalState() { "[CURLWebClient] Failed to initialize libcurl globally"); } } + +CurlGlobalState::~CurlGlobalState() { curl_global_cleanup(); } diff --git a/pipeline/src/web_client/curl_global_state_destructor.cpp b/pipeline/src/web_client/curl_global_state_destructor.cpp deleted file mode 100644 index 3783715..0000000 --- a/pipeline/src/web_client/curl_global_state_destructor.cpp +++ /dev/null @@ -1,10 +0,0 @@ -/** - * @file web_client/curl_global_state_destructor.cpp - * @brief CurlGlobalState destructor implementation. - */ - -#include - -#include "web_client/curl_web_client.h" - -CurlGlobalState::~CurlGlobalState() { curl_global_cleanup(); } diff --git a/pipeline/src/web_client/curl_web_client.cpp b/pipeline/src/web_client/curl_web_client.cpp new file mode 100644 index 0000000..5bce28e --- /dev/null +++ b/pipeline/src/web_client/curl_web_client.cpp @@ -0,0 +1,10 @@ +/** + * @file web_client/curl_web_client.cpp + * @brief CURLWebClient constructor and destructor implementation. + */ + +#include "web_client/curl_web_client.h" + +CURLWebClient::CURLWebClient() = default; + +CURLWebClient::~CURLWebClient() = default; diff --git a/pipeline/src/web_client/curl_web_client_constructor.cpp b/pipeline/src/web_client/curl_web_client_constructor.cpp deleted file mode 100644 index 8874b42..0000000 --- a/pipeline/src/web_client/curl_web_client_constructor.cpp +++ /dev/null @@ -1,8 +0,0 @@ -/** - * @file web_client/curl_web_client_constructor.cpp - * @brief CURLWebClient constructor implementation. - */ - -#include "web_client/curl_web_client.h" - -CURLWebClient::CURLWebClient() {} diff --git a/pipeline/src/web_client/curl_web_client_destructor.cpp b/pipeline/src/web_client/curl_web_client_destructor.cpp deleted file mode 100644 index 342bcf7..0000000 --- a/pipeline/src/web_client/curl_web_client_destructor.cpp +++ /dev/null @@ -1,8 +0,0 @@ -/** - * @file web_client/curl_web_client_destructor.cpp - * @brief CURLWebClient destructor implementation. - */ - -#include "web_client/curl_web_client.h" - -CURLWebClient::~CURLWebClient() {}