diff options
Diffstat (limited to 'config/config.go')
-rw-r--r-- | config/config.go | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/config/config.go b/config/config.go new file mode 100644 index 0000000..27f8c66 --- /dev/null +++ b/config/config.go @@ -0,0 +1,37 @@ +package config + +import ( + "fmt" + + "github.com/BurntSushi/toml" +) + +type Config struct { + APIURL string `toml:"APIURL"` + ShowSys bool `toml:"ShowSys"` + LogFile string `toml:"LogFile"` + UserRole string `toml:"UserRole"` + ToolRole string `toml:"ToolRole"` + AssistantRole string `toml:"AssistantRole"` + AssistantIcon string `toml:"AssistantIcon"` + UserIcon string `toml:"UserIcon"` + ToolIcon string `toml:"ToolIcon"` +} + +func LoadConfigOrDefault(fn string) *Config { + if fn == "" { + fn = "config.toml" + } + config := &Config{} + _, err := toml.DecodeFile(fn, &config) + if err != nil { + fmt.Println("failed to read config from file, loading default") + config.APIURL = "http://localhost:8080/v1/chat/completions" + config.ShowSys = true + config.LogFile = "log.txt" + config.UserRole = "user" + config.ToolRole = "tool" + config.AssistantRole = "assistant" + } + return config +} |