refactor: 重构配置管理,使用强类型配置结构并更新相关代码
This commit is contained in:
parent
a36008847c
commit
79f62f1b7f
@ -8,6 +8,18 @@ import (
|
|||||||
|
|
||||||
var ConfigManager = &configManager{}
|
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() {
|
func init() {
|
||||||
err := ConfigManager.LoadConfig("config.yml")
|
err := ConfigManager.LoadConfig("config.yml")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -16,7 +28,8 @@ func init() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type configManager struct {
|
type configManager struct {
|
||||||
propertys map[string]string
|
// propertys map[string]string
|
||||||
|
config *Config
|
||||||
}
|
}
|
||||||
|
|
||||||
func (cm *configManager) LoadConfig(path string) error {
|
func (cm *configManager) LoadConfig(path string) error {
|
||||||
@ -25,13 +38,13 @@ func (cm *configManager) LoadConfig(path string) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
err = yaml.Unmarshal(data, &cm.propertys)
|
err = yaml.Unmarshal(data, &cm.config)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (cm *configManager) GetProperty(key string) string {
|
func (cm *configManager) GetConfig() *Config {
|
||||||
return cm.propertys[key]
|
return cm.config
|
||||||
}
|
}
|
||||||
|
@ -46,14 +46,14 @@ func headmasterHandler(msg model.Message) (reply model.Reply) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func ask(from string, question string) (reply string) {
|
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.APIType = openai.APITypeOpenAI
|
||||||
llmConfig.APIVersion = ""
|
llmConfig.APIVersion = ""
|
||||||
client := openai.NewClientWithConfig(llmConfig)
|
client := openai.NewClientWithConfig(llmConfig)
|
||||||
resp, err := client.CreateChatCompletion(
|
resp, err := client.CreateChatCompletion(
|
||||||
context.Background(),
|
context.Background(),
|
||||||
openai.ChatCompletionRequest{
|
openai.ChatCompletionRequest{
|
||||||
Model: config.ConfigManager.GetProperty("openai_model_name"),
|
Model: config.ConfigManager.GetConfig().OpenaiModelName,
|
||||||
Messages: GenRequestFromUsr(from, question),
|
Messages: GenRequestFromUsr(from, question),
|
||||||
// Tools: []openai.Tool{
|
// Tools: []openai.Tool{
|
||||||
// {
|
// {
|
||||||
@ -91,7 +91,7 @@ func GenRequestFromUsr(from string, question string) []openai.ChatCompletionMess
|
|||||||
histories[from] = make([]openai.ChatCompletionMessage, 0)
|
histories[from] = make([]openai.ChatCompletionMessage, 0)
|
||||||
histories[from] = append(histories[from], openai.ChatCompletionMessage{
|
histories[from] = append(histories[from], openai.ChatCompletionMessage{
|
||||||
Role: openai.ChatMessageRoleSystem,
|
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] = histories[from][1:]
|
||||||
histories[from][0] = openai.ChatCompletionMessage{
|
histories[from][0] = openai.ChatCompletionMessage{
|
||||||
Role: openai.ChatMessageRoleSystem,
|
Role: openai.ChatMessageRoleSystem,
|
||||||
Content: config.ConfigManager.GetProperty("openai_prompt"),
|
Content: config.ConfigManager.GetConfig().OpenaiPrompt,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -19,8 +19,8 @@ var SteamAPIKey = ""
|
|||||||
var ProxyAddr = ""
|
var ProxyAddr = ""
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
SteamAPIKey = config.ConfigManager.GetProperty("steam_api_key")
|
SteamAPIKey = config.ConfigManager.GetConfig().SteamApiKey
|
||||||
ProxyAddr = config.ConfigManager.GetProperty("proxy_addr")
|
ProxyAddr = config.ConfigManager.GetConfig().ProxyAddr
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
|
2
main.go
2
main.go
@ -25,7 +25,7 @@ func main() {
|
|||||||
go func() {
|
go func() {
|
||||||
const reconnectDelay = 5 * time.Second
|
const reconnectDelay = 5 * time.Second
|
||||||
for {
|
for {
|
||||||
client, err := wsclient.NewWebSocketClient("ws", config.ConfigManager.GetProperty("napcat_srv"), "")
|
client, err := wsclient.NewWebSocketClient("ws", config.ConfigManager.GetConfig().NapcatWsSrv, "")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("WebSocket连接失败: %v, %v 后重试", err, reconnectDelay)
|
log.Printf("WebSocket连接失败: %v, %v 后重试", err, reconnectDelay)
|
||||||
time.Sleep(reconnectDelay)
|
time.Sleep(reconnectDelay)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user