MCPcopy Create free account
hub / github.com/0xShug0/audio.cpp / gguf_set_kv

Function gguf_set_kv

external/ggml/src/gguf.cpp:1180–1232  ·  view source on GitHub ↗

set or add KV pairs from another context

Source from the content-addressed store, hash-verified

1178
1179// set or add KV pairs from another context
1180void gguf_set_kv(struct gguf_context * ctx, const struct gguf_context * src) {
1181 const int64_t n_kv = gguf_get_n_kv(src);
1182 for (int64_t i = 0; i < n_kv; ++i) {
1183 const struct gguf_kv & kv = src->kv[i];
1184
1185 if (!kv.is_array) {
1186 switch (kv.get_type()) {
1187 case GGUF_TYPE_UINT8: gguf_set_val_u8 (ctx, kv.get_key().c_str(), kv.get_val<uint8_t>()); break;
1188 case GGUF_TYPE_INT8: gguf_set_val_i8 (ctx, kv.get_key().c_str(), kv.get_val<int8_t>()); break;
1189 case GGUF_TYPE_UINT16: gguf_set_val_u16 (ctx, kv.get_key().c_str(), kv.get_val<uint16_t>()); break;
1190 case GGUF_TYPE_INT16: gguf_set_val_i16 (ctx, kv.get_key().c_str(), kv.get_val<int16_t>()); break;
1191 case GGUF_TYPE_UINT32: gguf_set_val_u32 (ctx, kv.get_key().c_str(), kv.get_val<uint32_t>()); break;
1192 case GGUF_TYPE_INT32: gguf_set_val_i32 (ctx, kv.get_key().c_str(), kv.get_val<int32_t>()); break;
1193 case GGUF_TYPE_FLOAT32: gguf_set_val_f32 (ctx, kv.get_key().c_str(), kv.get_val<float>()); break;
1194 case GGUF_TYPE_UINT64: gguf_set_val_u64 (ctx, kv.get_key().c_str(), kv.get_val<uint64_t>()); break;
1195 case GGUF_TYPE_INT64: gguf_set_val_i64 (ctx, kv.get_key().c_str(), kv.get_val<int64_t>()); break;
1196 case GGUF_TYPE_FLOAT64: gguf_set_val_f64 (ctx, kv.get_key().c_str(), kv.get_val<double>()); break;
1197 case GGUF_TYPE_BOOL: gguf_set_val_bool(ctx, kv.get_key().c_str(), kv.get_val<bool>()); break;
1198 case GGUF_TYPE_STRING: gguf_set_val_str (ctx, kv.get_key().c_str(), kv.get_val<std::string>().c_str()); break;
1199 case GGUF_TYPE_ARRAY:
1200 default: GGML_ABORT("invalid type");
1201 }
1202 continue;
1203 }
1204
1205 const size_t ne = kv.get_ne();
1206
1207 switch (kv.get_type()) {
1208 case GGUF_TYPE_UINT8:
1209 case GGUF_TYPE_INT8:
1210 case GGUF_TYPE_UINT16:
1211 case GGUF_TYPE_INT16:
1212 case GGUF_TYPE_UINT32:
1213 case GGUF_TYPE_INT32:
1214 case GGUF_TYPE_FLOAT32:
1215 case GGUF_TYPE_UINT64:
1216 case GGUF_TYPE_INT64:
1217 case GGUF_TYPE_FLOAT64:
1218 case GGUF_TYPE_BOOL: {
1219 gguf_set_arr_data(ctx, kv.get_key().c_str(), kv.get_type(), kv.data.data(), ne);
1220 } break;
1221 case GGUF_TYPE_STRING: {
1222 std::vector<const char *> tmp(ne);
1223 for (size_t j = 0; j < ne; ++j) {
1224 tmp[j] = kv.data_string[j].c_str();
1225 }
1226 gguf_set_arr_str(ctx, kv.get_key().c_str(), tmp.data(), ne);
1227 } break;
1228 case GGUF_TYPE_ARRAY:
1229 default: GGML_ABORT("invalid type");
1230 }
1231 }
1232}
1233
1234void gguf_add_tensor(
1235 struct gguf_context * ctx,

Callers

nothing calls this directly

Calls 15

gguf_get_n_kvFunction · 0.85
gguf_set_val_u8Function · 0.85
gguf_set_val_i8Function · 0.85
gguf_set_val_u16Function · 0.85
gguf_set_val_i16Function · 0.85
gguf_set_val_u32Function · 0.85
gguf_set_val_i32Function · 0.85
gguf_set_val_f32Function · 0.85
gguf_set_val_u64Function · 0.85
gguf_set_val_i64Function · 0.85
gguf_set_val_f64Function · 0.85
gguf_set_val_boolFunction · 0.85

Tested by

no test coverage detected