fix: 优化配置
This commit is contained in:
116
scripts/validate_config.go
Normal file
116
scripts/validate_config.go
Normal file
@@ -0,0 +1,116 @@
|
||||
// 配置验证脚本
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"reflect"
|
||||
|
||||
"github.com/joho/godotenv"
|
||||
"github.com/sirupsen/logrus"
|
||||
|
||||
"gpt-load/internal/config"
|
||||
)
|
||||
|
||||
func main() {
|
||||
// 加载测试配置
|
||||
if err := godotenv.Load("test_config.env"); err != nil {
|
||||
logrus.Warnf("无法加载测试配置文件: %v", err)
|
||||
}
|
||||
|
||||
// 加载配置
|
||||
cfg, err := config.LoadConfig()
|
||||
if err != nil {
|
||||
logrus.Fatalf("配置加载失败: %v", err)
|
||||
}
|
||||
|
||||
fmt.Println("🔍 配置验证报告")
|
||||
fmt.Println("=" * 50)
|
||||
|
||||
// 验证服务器配置
|
||||
fmt.Printf("📡 服务器配置:\n")
|
||||
fmt.Printf(" Host: %s\n", cfg.Server.Host)
|
||||
fmt.Printf(" Port: %d\n", cfg.Server.Port)
|
||||
fmt.Println()
|
||||
|
||||
// 验证密钥配置
|
||||
fmt.Printf("🔑 密钥配置:\n")
|
||||
fmt.Printf(" 文件路径: %s\n", cfg.Keys.FilePath)
|
||||
fmt.Printf(" 起始索引: %d\n", cfg.Keys.StartIndex)
|
||||
fmt.Printf(" 黑名单阈值: %d\n", cfg.Keys.BlacklistThreshold)
|
||||
fmt.Println()
|
||||
|
||||
// 验证 OpenAI 配置
|
||||
fmt.Printf("🤖 OpenAI 配置:\n")
|
||||
fmt.Printf(" Base URL: %s\n", cfg.OpenAI.BaseURL)
|
||||
fmt.Printf(" 超时时间: %dms\n", cfg.OpenAI.Timeout)
|
||||
fmt.Println()
|
||||
|
||||
// 验证认证配置
|
||||
fmt.Printf("🔐 认证配置:\n")
|
||||
fmt.Printf(" 启用状态: %t\n", cfg.Auth.Enabled)
|
||||
if cfg.Auth.Enabled {
|
||||
fmt.Printf(" 密钥长度: %d\n", len(cfg.Auth.Key))
|
||||
}
|
||||
fmt.Println()
|
||||
|
||||
// 验证 CORS 配置
|
||||
fmt.Printf("🌐 CORS 配置:\n")
|
||||
fmt.Printf(" 启用状态: %t\n", cfg.CORS.Enabled)
|
||||
fmt.Printf(" 允许来源: %v\n", cfg.CORS.AllowedOrigins)
|
||||
fmt.Println()
|
||||
|
||||
// 验证性能配置
|
||||
fmt.Printf("⚡ 性能配置:\n")
|
||||
fmt.Printf(" 最大连接数: %d\n", cfg.Performance.MaxSockets)
|
||||
fmt.Printf(" 最大空闲连接数: %d\n", cfg.Performance.MaxFreeSockets)
|
||||
fmt.Printf(" Keep-Alive: %t\n", cfg.Performance.EnableKeepAlive)
|
||||
fmt.Printf(" 禁用压缩: %t\n", cfg.Performance.DisableCompression)
|
||||
fmt.Printf(" 缓冲区大小: %d bytes\n", cfg.Performance.BufferSize)
|
||||
fmt.Println()
|
||||
|
||||
// 验证日志配置
|
||||
fmt.Printf("📝 日志配置:\n")
|
||||
fmt.Printf(" 日志级别: %s\n", cfg.Log.Level)
|
||||
fmt.Printf(" 日志格式: %s\n", cfg.Log.Format)
|
||||
fmt.Printf(" 文件日志: %t\n", cfg.Log.EnableFile)
|
||||
if cfg.Log.EnableFile {
|
||||
fmt.Printf(" 文件路径: %s\n", cfg.Log.FilePath)
|
||||
}
|
||||
fmt.Println()
|
||||
|
||||
// 检查配置完整性
|
||||
fmt.Printf("✅ 配置完整性检查:\n")
|
||||
checkConfigCompleteness(cfg)
|
||||
|
||||
fmt.Println("🎉 配置验证完成!")
|
||||
}
|
||||
|
||||
func checkConfigCompleteness(cfg *config.Config) {
|
||||
v := reflect.ValueOf(cfg).Elem()
|
||||
t := reflect.TypeOf(cfg).Elem()
|
||||
|
||||
for i := 0; i < v.NumField(); i++ {
|
||||
field := v.Field(i)
|
||||
fieldType := t.Field(i)
|
||||
|
||||
if field.Kind() == reflect.Struct {
|
||||
checkStruct(field, fieldType.Name)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func checkStruct(v reflect.Value, name string) {
|
||||
t := v.Type()
|
||||
|
||||
for i := 0; i < v.NumField(); i++ {
|
||||
field := v.Field(i)
|
||||
fieldType := t.Field(i)
|
||||
|
||||
// 检查字段是否为零值
|
||||
if field.IsZero() && fieldType.Name != "Enabled" {
|
||||
fmt.Printf(" ⚠️ %s.%s 为零值\n", name, fieldType.Name)
|
||||
} else {
|
||||
fmt.Printf(" ✅ %s.%s 已配置\n", name, fieldType.Name)
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user