File size: 2,118 Bytes
c33a7ce |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
import streamlit as st
import subprocess
import os
quantization_types = ["Q2_K","Q3_K_S","Q3_K_M", "Q3_K_L", "Q4_K_S",
"Q4_K_M", "Q5_K_S", "Q5_K_M", "Q6_K"]
st.title("🤗 GGUF Model Converter")
with st.sidebar:
st.markdown("Tested Models:")
st.code("TBD")
col1, col2 =st.columns(2)
with col1:
volume = st.text_input(label="Volume Name",
placeholder="models",)
with col2:
quantization = st.selectbox(label="Quantization Level",
options=quantization_types,index=5)
model_name = st.text_input(label="Enter a huggingface model url to convert",
placeholder="org/model_name")
token_id = st.text_input(label="Enter your huggingface token (optional)",
help="huggingface token is required for private model"
) or "None"
keep_files = st.checkbox("Keep huggingface model files after conversion?")
submit_button = st.button(label="submit")
if submit_button:
with st.spinner("Processing Model..."):
x = subprocess.Popen(["podman",
"run",
"-it",
"--rm",
"-v", f"{volume}:/converter/converted_models",
"-e", f"HF_MODEL_URL={model_name}",
"-e", f"HF_TOKEN={token_id}",
"-e", f"QUANTIZATION={quantization}",
"-e", f"KEEP_ORIGINAL_MODEL={keep_files}",
"converter"],stdout=subprocess.PIPE)
container_output = st.empty()
response = []
num_lines=0
while x.poll() is None:
line = x.stdout.readline().decode()
num_lines += 1
response.append(line)
if num_lines < 21:
container_output.code("".join(response),
language="Bash")
else:
container_output.code("".join(response[num_lines-21:num_lines]),
language="Bash")
|