diff --git a/koboldcpp.py b/koboldcpp.py index 3b6d7b8bd..b36a54ab7 100644 --- a/koboldcpp.py +++ b/koboldcpp.py @@ -27,7 +27,6 @@ import html import urllib.parse as urlparse from concurrent.futures import ThreadPoolExecutor from datetime import datetime, timezone -from pathlib import Path # constants sampler_order_max = 7 @@ -665,6 +664,110 @@ def get_capabilities(): has_tts = (ttsmodelpath!="") return {"result":"KoboldCpp", "version":KcppVersion, "protected":has_password, "llm":has_llm, "txt2img":has_txt2img,"vision":has_vision,"transcribe":has_whisper,"multiplayer":has_multiplayer,"websearch":has_search,"tts":has_tts} +def dump_gguf_metadata(file_path): #if you're gonna copy this into your own project at least credit concedo + chunk_size = 1024*1024*12 # read first 12mb of file + try: + data = None + fptr = 0 + dt_table = ["u8","i8","u16","i16","u32","i32","f32","bool","str","arr","u64","i64","f64"] #13 types, else error + tt_table = ["f32","f16","q4_0","q4_1","q4_2","q4_3","q5_0","q5_1","q8_0","q8_1","q2_k","q3_k","q4_k","q5_k","q6_k","q8_k","iq2_xxs","iq2_xs","iq3_xxs","iq1_s","iq4_nl","iq3_s","iq2_s","iq4_xs","i8","i16","i32","i64","f64","iq1_m","bf16","q4_0_4_4","q4_0_4_8","q4_0_8_8","tq1_0","tq2_0","iq4_nl_4_4","unknown","unknown","unknown","unknown","unknown"] + def read_data(datatype): + nonlocal fptr, data, dt_table + if datatype=="u32": + val_bytes = data[fptr:fptr + 4] + val = struct.unpack('