diff --git a/config/config.go b/config/config.go index b3a21f9..5a8c0e1 100644 --- a/config/config.go +++ b/config/config.go @@ -8,6 +8,18 @@ import ( var ConfigManager = &configManager{} +type Config struct { + Admin int64 `yaml:"admin"` + SteamApiKey string `yaml:"steam_api_key"` + ProxyAddr string `yaml:"proxy_addr"` + NapcatWsSrv string `yaml:"napcat_ws_srv"` + NapcatHttpSrv string `yaml:"napcat_http_srv"` + OpenaiApiKey string `yaml:"openai_api_key"` + OpenaiApiBaseUrl string `yaml:"openai_api_base_url"` + OpenaiModelName string `yaml:"openai_model_name"` + OpenaiPrompt string `yaml:"openai_prompt"` +} + func init() { err := ConfigManager.LoadConfig("config.yml") if err != nil { @@ -16,7 +28,8 @@ func init() { } type configManager struct { - propertys map[string]string + // propertys map[string]string + config *Config } func (cm *configManager) LoadConfig(path string) error { @@ -25,13 +38,13 @@ func (cm *configManager) LoadConfig(path string) error { return err } - err = yaml.Unmarshal(data, &cm.propertys) + err = yaml.Unmarshal(data, &cm.config) if err != nil { return err } return nil } -func (cm *configManager) GetProperty(key string) string { - return cm.propertys[key] +func (cm *configManager) GetConfig() *Config { + return cm.config } diff --git a/handler/headmaster/headmaster.go b/handler/headmaster/headmaster.go index 6404894..baba479 100644 --- a/handler/headmaster/headmaster.go +++ b/handler/headmaster/headmaster.go @@ -46,14 +46,14 @@ func headmasterHandler(msg model.Message) (reply model.Reply) { } func ask(from string, question string) (reply string) { - llmConfig := openai.DefaultAzureConfig(config.ConfigManager.GetProperty("openai_api_key"), config.ConfigManager.GetProperty("openai_api_base_url")) + llmConfig := openai.DefaultAzureConfig(config.ConfigManager.GetConfig().OpenaiApiKey, config.ConfigManager.GetConfig().OpenaiApiBaseUrl) llmConfig.APIType = openai.APITypeOpenAI llmConfig.APIVersion = "" client := openai.NewClientWithConfig(llmConfig) resp, err := client.CreateChatCompletion( context.Background(), openai.ChatCompletionRequest{ - Model: config.ConfigManager.GetProperty("openai_model_name"), + Model: config.ConfigManager.GetConfig().OpenaiModelName, Messages: GenRequestFromUsr(from, question), // Tools: []openai.Tool{ // { @@ -91,7 +91,7 @@ func GenRequestFromUsr(from string, question string) []openai.ChatCompletionMess histories[from] = make([]openai.ChatCompletionMessage, 0) histories[from] = append(histories[from], openai.ChatCompletionMessage{ Role: openai.ChatMessageRoleSystem, - Content: config.ConfigManager.GetProperty("openai_prompt"), + Content: config.ConfigManager.GetConfig().OpenaiPrompt, }, ) } @@ -112,7 +112,7 @@ func AppendReplyToHistory(from string, reply string) { histories[from] = histories[from][1:] histories[from][0] = openai.ChatCompletionMessage{ Role: openai.ChatMessageRoleSystem, - Content: config.ConfigManager.GetProperty("openai_prompt"), + Content: config.ConfigManager.GetConfig().OpenaiPrompt, } } } diff --git a/handler/steamplaying/service.go b/handler/steamplaying/service.go index 128c1fc..c7cf862 100644 --- a/handler/steamplaying/service.go +++ b/handler/steamplaying/service.go @@ -19,8 +19,8 @@ var SteamAPIKey = "" var ProxyAddr = "" func init() { - SteamAPIKey = config.ConfigManager.GetProperty("steam_api_key") - ProxyAddr = config.ConfigManager.GetProperty("proxy_addr") + SteamAPIKey = config.ConfigManager.GetConfig().SteamApiKey + ProxyAddr = config.ConfigManager.GetConfig().ProxyAddr } func init() { diff --git a/main.go b/main.go index e207f44..da8b014 100644 --- a/main.go +++ b/main.go @@ -25,7 +25,7 @@ func main() { go func() { const reconnectDelay = 5 * time.Second for { - client, err := wsclient.NewWebSocketClient("ws", config.ConfigManager.GetProperty("napcat_srv"), "") + client, err := wsclient.NewWebSocketClient("ws", config.ConfigManager.GetConfig().NapcatWsSrv, "") if err != nil { log.Printf("WebSocket连接失败: %v, %v 后重试", err, reconnectDelay) time.Sleep(reconnectDelay)