LostRuins / koboldcpp

A simple one-file way to run various GGML and GGUF models with KoboldAI's UI
https://github.com/lostruins/koboldcpp
GNU Affero General Public License v3.0
4.35k stars 312 forks source link

Standalone Linux Executable - Save button doesn't save anything? #874

Closed wh33t closed 1 month ago

wh33t commented 1 month ago

I presume once I've configured the quick launcher tool with the parameters for the session, if I hit save, it should allow me to save a .kcpps file which more or less serves as a bash script with that appropriate parameters set right?

When I hit save nothing happens, no error messages or anything.

I'm using Linux Mint 21.3 with the cuda1210 launcher on version 1.66.1

LostRuins commented 1 month ago

When you click save, a tkinter file selector GUI is supposed to appear to allow you to choose the save file name and location. Do you see any errors in the terminal?

wh33t commented 1 month ago

When you click save, a tkinter file selector GUI is supposed to appear to allow you to choose the save file name and location. Do you see any errors in the terminal?

My mistake, I should have mentioned the selector window appears, and I can browse to a directory where I want to save it, but clicking the actual Save button doesn't do anything. It doesn't spit out any errors to the terminal, doesn't close the selector window, and doesn't write a file. I've tried my ~ home dir and even directories that are 777 and still it doesn't do anything.

LostRuins commented 1 month ago

the save code is very simple

    def save_config():
        file_type = [("KoboldCpp Settings", "*.kcpps")]
        filename = asksaveasfile(filetypes=file_type, defaultextension=file_type)
        if filename == None: return
        export_vars()
        file = open(str(filename.name), 'a')
        file.write(json.dumps(args.__dict__))
        file.close()
        pass

are you able to look through the python code and see if filename returns a valid path?

wh33t commented 1 month ago

the save code is very simple

    def save_config():
        file_type = [("KoboldCpp Settings", "*.kcpps")]
        filename = asksaveasfile(filetypes=file_type, defaultextension=file_type)
        if filename == None: return
        export_vars()
        file = open(str(filename.name), 'a')
        file.write(json.dumps(args.__dict__))
        file.close()
        pass

are you able to look through the python code and see if filename returns a valid path?

I'll give it a go and report back.

wh33t commented 1 month ago

the save code is very simple

    def save_config():
        file_type = [("KoboldCpp Settings", "*.kcpps")]
        filename = asksaveasfile(filetypes=file_type, defaultextension=file_type)
        if filename == None: return
        export_vars()
        file = open(str(filename.name), 'a')
        file.write(json.dumps(args.__dict__))
        file.close()
        pass

are you able to look through the python code and see if filename returns a valid path?

Aha! I've figured it out. If I don't specify the "full" filename (ie add a period then an extension) it doesn't try to save the file. Oddly it doesn't actually require an actual extension, simply a period character, then it saves. I presumed because .kcpps is already selected in the FILES OF TYPE drop down it would auto append that to my chosen filename, it does not.

Cheers. We can close this.