refactor: 重构配置管理,使用强类型配置结构并更新相关代码
This commit is contained in:
parent
a36008847c
commit
79f62f1b7f
@ -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
|
||||
}
|
||||
|
@ -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,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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() {
|
||||
|
2
main.go
2
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)
|
||||
|
Loading…
x
Reference in New Issue
Block a user