Skip to content

Commit 2d144b1

Browse files
Extracted json_utils.hpp from utils.hpp (#975)
To avoid utils.hpp dependency on nlohmann_json
1 parent 6e07f0f commit 2d144b1

31 files changed

+82
-64
lines changed

src/cpp/src/generation_config.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
#include <nlohmann/json.hpp>
88
#include <openvino/runtime/core.hpp>
99
#include "openvino/genai/generation_config.hpp"
10+
#include "json_utils.hpp"
1011
#include "utils.hpp"
1112

1213

src/cpp/src/group_beam_searcher.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,10 @@
33

44
#include <openvino/runtime/tensor.hpp>
55

6+
#include <cassert>
7+
68
#include "openvino/genai/llm_pipeline.hpp"
79
#include "utils.hpp"
8-
910
namespace {
1011

1112
// Modifyed Knuth–Morris–Pratt algorithm which returns tokens following after every needle occurance in haystack

src/cpp/src/json_utils.hpp

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
2+
// Copyright (C) 2023-2024 Intel Corporation
3+
// SPDX-License-Identifier: Apache-2.0
4+
5+
#pragma once
6+
7+
#include <nlohmann/json.hpp>
8+
9+
namespace ov {
10+
namespace genai {
11+
namespace utils {
12+
13+
/// @brief reads value to param if T argument type is aligned with value stores in json
14+
/// if types are not compatible leave param unchanged
15+
template <typename T>
16+
void read_json_param(const nlohmann::json& data, const std::string& name, T& param) {
17+
if (data.contains(name)) {
18+
if (data[name].is_number() || data[name].is_boolean() || data[name].is_string() || data[name].is_object()) {
19+
param = data[name].get<T>();
20+
}
21+
} else if (name.find(".") != std::string::npos) {
22+
size_t delimiter_pos = name.find(".");
23+
std::string key = name.substr(0, delimiter_pos);
24+
if (!data.contains(key)) {
25+
return;
26+
}
27+
std::string rest_key = name.substr(delimiter_pos + 1);
28+
29+
read_json_param(data[key], rest_key, param);
30+
}
31+
}
32+
33+
template <typename V>
34+
void read_json_param(const nlohmann::json& data, const std::string& name, std::vector<V>& param) {
35+
if (data.contains(name) && data[name].is_array()) {
36+
param.resize(0);
37+
for (const auto elem : data[name]) {
38+
param.push_back(elem.get<V>());
39+
}
40+
}
41+
}
42+
43+
} // namespace utils
44+
} // namespace genai
45+
} // namespace ov

src/cpp/src/llm_pipeline_static.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
#include <jinja2cpp/user_callable.h>
1414

1515
#include "text_callback_streamer.hpp"
16+
#include "json_utils.hpp"
1617
#include "utils.hpp"
1718

1819
namespace {

src/cpp/src/text2image/diffusion_pipeline.hpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,7 @@
88
#include "text2image/schedulers/ischeduler.hpp"
99
#include "openvino/genai/text2image/pipeline.hpp"
1010

11-
#include "utils.hpp"
12-
11+
#include "json_utils.hpp"
1312
namespace {
1413

1514
void batch_copy(ov::Tensor src, ov::Tensor dst, size_t src_batch, size_t dst_batch, size_t batch_size = 1) {

src/cpp/src/text2image/models/autoencoder_kl.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,8 @@
1313
#include "openvino/op/multiply.hpp"
1414
#include "openvino/op/constant.hpp"
1515

16-
#include "utils.hpp"
16+
#include "json_utils.hpp"
1717
#include "lora_helper.hpp"
18-
1918
namespace ov {
2019
namespace genai {
2120

src/cpp/src/text2image/models/clip_text_model.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
#include "openvino/runtime/core.hpp"
99

10-
#include "utils.hpp"
10+
#include "json_utils.hpp"
1111
#include "lora_helper.hpp"
1212

1313
namespace ov {

src/cpp/src/text2image/models/clip_text_model_with_projection.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
#include "openvino/runtime/core.hpp"
99

10-
#include "utils.hpp"
10+
#include "json_utils.hpp"
1111

1212
namespace ov {
1313
namespace genai {

src/cpp/src/text2image/models/unet2d_condition_model.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
#include "openvino/runtime/core.hpp"
99

10-
#include "utils.hpp"
10+
#include "json_utils.hpp"
1111
#include "lora_helper.hpp"
1212

1313
namespace ov {

src/cpp/src/text2image/schedulers/ddim.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
#include <iterator>
88

99
#include "text2image/schedulers/ddim.hpp"
10-
#include "utils.hpp"
1110
#include "text2image/numpy_utils.hpp"
1211

1312
namespace ov {

0 commit comments

Comments
 (0)