MCPcopy Create free account
hub / github.com/Tiiny-AI/PowerInfer / gguf_set_kv

Function gguf_set_kv

ggml.c:20103–20136  ·  view source on GitHub ↗

set or add KV pairs from another context

Source from the content-addressed store, hash-verified

20101
20102// set or add KV pairs from another context
20103void gguf_set_kv(struct gguf_context * ctx, struct gguf_context * src) {
20104 for (uint32_t i = 0; i < src->header.n_kv; i++) {
20105 switch (src->kv[i].type) {
20106 case GGUF_TYPE_UINT8: gguf_set_val_u8 (ctx, src->kv[i].key.data, src->kv[i].value.uint8); break;
20107 case GGUF_TYPE_INT8: gguf_set_val_i8 (ctx, src->kv[i].key.data, src->kv[i].value.int8); break;
20108 case GGUF_TYPE_UINT16: gguf_set_val_u16 (ctx, src->kv[i].key.data, src->kv[i].value.uint16); break;
20109 case GGUF_TYPE_INT16: gguf_set_val_i16 (ctx, src->kv[i].key.data, src->kv[i].value.int16); break;
20110 case GGUF_TYPE_UINT32: gguf_set_val_u32 (ctx, src->kv[i].key.data, src->kv[i].value.uint32); break;
20111 case GGUF_TYPE_INT32: gguf_set_val_i32 (ctx, src->kv[i].key.data, src->kv[i].value.int32); break;
20112 case GGUF_TYPE_FLOAT32: gguf_set_val_f32 (ctx, src->kv[i].key.data, src->kv[i].value.float32); break;
20113 case GGUF_TYPE_UINT64: gguf_set_val_u64 (ctx, src->kv[i].key.data, src->kv[i].value.uint64); break;
20114 case GGUF_TYPE_INT64: gguf_set_val_i64 (ctx, src->kv[i].key.data, src->kv[i].value.int64); break;
20115 case GGUF_TYPE_FLOAT64: gguf_set_val_f64 (ctx, src->kv[i].key.data, src->kv[i].value.float64); break;
20116 case GGUF_TYPE_BOOL: gguf_set_val_bool(ctx, src->kv[i].key.data, src->kv[i].value.bool_); break;
20117 case GGUF_TYPE_STRING: gguf_set_val_str (ctx, src->kv[i].key.data, src->kv[i].value.str.data); break;
20118 case GGUF_TYPE_ARRAY:
20119 {
20120 if (src->kv[i].value.arr.type == GGUF_TYPE_STRING) {
20121 const char ** data = malloc(src->kv[i].value.arr.n*sizeof(char *));
20122 for (uint32_t j = 0; j < src->kv[i].value.arr.n; j++) {
20123 data[j] = ((struct gguf_str *)src->kv[i].value.arr.data)[j].data;
20124 }
20125 gguf_set_arr_str(ctx, src->kv[i].key.data, data, src->kv[i].value.arr.n);
20126 free(data);
20127 } else if (src->kv[i].value.arr.type == GGUF_TYPE_ARRAY) {
20128 GGML_ASSERT(false && "nested arrays not supported");
20129 } else {
20130 gguf_set_arr_data(ctx, src->kv[i].key.data, src->kv[i].value.arr.type, src->kv[i].value.arr.data, src->kv[i].value.arr.n);
20131 }
20132 } break;
20133 case GGUF_TYPE_COUNT: GGML_ASSERT(false && "invalid type"); break;
20134 }
20135 }
20136}
20137
20138void gguf_add_tensor(
20139 struct gguf_context * ctx,

Callers 3

export_loraFunction · 0.50
clip_model_quantizeFunction · 0.50

Calls 14

gguf_set_val_u8Function · 0.70
gguf_set_val_i8Function · 0.70
gguf_set_val_u16Function · 0.70
gguf_set_val_i16Function · 0.70
gguf_set_val_u32Function · 0.70
gguf_set_val_i32Function · 0.70
gguf_set_val_f32Function · 0.70
gguf_set_val_u64Function · 0.70
gguf_set_val_i64Function · 0.70
gguf_set_val_f64Function · 0.70
gguf_set_val_boolFunction · 0.70
gguf_set_val_strFunction · 0.70

Tested by

no test coverage detected