29 bool is_optional =
false)
31 if (root.isMember(field_name))
32 target = root[field_name].asInt();
33 else if (!is_optional)
34 throw std::runtime_error(field_name +
" not found in config.json");
42 if (root.isMember(field_name))
43 target = root[field_name].asBool();
44 else if (!is_optional)
45 throw std::runtime_error(field_name +
" not found in config.json");
50void load_config_field<std::optional<int>>(
const Json::Value &root,
const std::string &field_name,
51 std::optional<int> &target,
bool is_optional)
53 if (root.isMember(field_name))
54 target = root[field_name].asInt();
63 std::ifstream config_file(config_path);
65 if (!config_file.is_open())
66 throw std::runtime_error(
67 "config.json not found in package. This file is required for ggma_context.");
74 if (!reader.parse(config_file, root,
false))
75 throw std::runtime_error(
"Failed to parse JSON: " + reader.getFormattedErrorMessages());
79 catch (
const std::exception &e)
82 throw std::runtime_error(
"Failed to load config.json: " + std::string(e.what()));
126 std::ostringstream oss;
127 oss <<
"ModelConfig {\n";
128 oss <<
" n_layers: " <<
n_layers <<
"\n";
133 oss <<
" bos_token_id: "
135 oss <<
" eos_token_id: "
void load_config_field(const Json::Value &root, const std::string &field_name, T &target, bool is_optional=false)
std::string to_string(const ModelConfig &config)
void load_config_field< bool >(const Json::Value &root, const std::string &field_name, bool &target, bool is_optional)
bool validate_model_config(const ModelConfig &config)
std::optional< int > eos_token_id
int max_position_embeddings
void load_from_json(const Json::Value &root)
void load_from_file(const std::string &config_path)
std::optional< int > bos_token_id
std::string to_string() const