summaryrefslogtreecommitdiff
path: root/config/config.go
blob: 27f8c6625b0e3598d7bc4ef40306e741bc42d3b8 (plain)
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
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
}