refactor: 重构配置管理,使用强类型配置结构并更新相关代码

This commit is contained in:
lixiangwuxian 2025-03-08 17:08:28 +08:00
parent a36008847c
commit 79f62f1b7f
4 changed files with 24 additions and 11 deletions

View File

@ -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
}

View File

@ -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,
}
}
}

View File

@ -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() {

View File

@ -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)