summaryrefslogtreecommitdiff
path: root/config/config.go
diff options
context:
space:
mode:
Diffstat (limited to 'config/config.go')
-rw-r--r--config/config.go37
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
+}