Downloading a binary file


I’m trying to let a user download a Fasttext model after it’s been trained. As far as I’m aware, I have to save it as a .bin file first (using model.save_model() as per Fasttext’s documentation). I can’t figure out how to get it to download from here, using the documentation for the download button.

Hi @richlaw1986 :wave:

Happy to help! As you’ve mentioned, a trained Fasttext model must be saved to a .bin file.

Once saved, it can be downloaded in a similar fashion to the last example in the st.download_button docs:

import streamlit as st
import fasttext

# Cache trained model
def get_model():
    model = fasttext.train_supervised(input="cooking.train")
    return model

# Save trained model to file
def save_model(model, path="saved_model.bin"):

model = get_model()
save_model(model, path="saved_model.bin")

# Download saved trained model
with open("saved_model.bin", "rb") as fp:
    btn = st.download_button(
        label="Download trained fasttext model",
        file_name="fasttext_model.bin" # Any file name


Example app + repo

Happy Streamlit-ing! :balloon:

Thanks so much!

1 Like