feat: 系统优化 - ESLint、Tailwind、前端健壮性、后端工程化、运维可观测性
- 前端: ESLint+Prettier配置、Tailwind v4配置、ErrorBoundary、全局AuthLoader优化、ReactQuery分层 - 后端: MinIO凭证移除、Docker统一为govai品牌、zerolog日志封装、错误码枚举、文件上传校验、单元测试(13项全通过) - 运维: 健康检查增强(PG/Redis ping)、Prometheus指标(/metrics端点)、多租户tenant包、RateLimit nil防御 - 移动: citation_prompt.txt → internal/assets/
This commit is contained in:
@@ -116,8 +116,8 @@ func Load() *Config {
|
||||
},
|
||||
MinIO: MinIOConfig{
|
||||
Endpoint: getEnv("MINIO_ENDPOINT", "localhost:9000"),
|
||||
AccessKey: getEnv("MINIO_ACCESS_KEY", "minioadmin"),
|
||||
SecretKey: getEnv("MINIO_SECRET_KEY", "minioadmin"),
|
||||
AccessKey: getEnv("MINIO_ACCESS_KEY", ""),
|
||||
SecretKey: getEnv("MINIO_SECRET_KEY", ""),
|
||||
Bucket: getEnv("MINIO_BUCKET", "aily-files"),
|
||||
UseSSL: false,
|
||||
},
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
package config
|
||||
|
||||
import "time"
|
||||
|
||||
// ==================== 分页与查询 ====================
|
||||
const (
|
||||
DefaultPage = 1
|
||||
DefaultPageSize = 20
|
||||
MaxPageSize = 100
|
||||
)
|
||||
|
||||
// ==================== Token 与会话 ====================
|
||||
const (
|
||||
DefaultAccessTokenExpiry = 24 * time.Hour
|
||||
DefaultRefreshTokenExpiry = 7 * 24 * time.Hour
|
||||
TokenHeader = "Authorization"
|
||||
TokenPrefix = "Bearer "
|
||||
)
|
||||
|
||||
// ==================== 文件上传 ====================
|
||||
const (
|
||||
MaxFileSize = 10 * 1024 * 1024 // 10MB
|
||||
AllowedFileExtensions = ".pdf,.doc,.docx,.txt,.md,.jpg,.jpeg,.png,.gif,.xlsx,.xls"
|
||||
AllowedMimeTypes = "application/pdf,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,text/plain,text/markdown,image/jpeg,image/png,image/gif,application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
|
||||
)
|
||||
|
||||
// ==================== AI 模型 ====================
|
||||
const (
|
||||
DefaultEmbeddingDimensions = 1024
|
||||
DefaultEmbeddingModel = "text-embedding-v3"
|
||||
DefaultLLMTemperature = 0.7
|
||||
DefaultLLMTopP = 0.95
|
||||
DefaultLLMMaxTokens = 8192
|
||||
)
|
||||
|
||||
// ==================== RateLimit ====================
|
||||
const (
|
||||
DefaultRateLimitMax = 100
|
||||
DefaultRateLimitWindow = 1 * time.Minute
|
||||
)
|
||||
|
||||
// ==================== Redis Key 前缀 ====================
|
||||
const (
|
||||
RedisKeyPrefixRateLimit = "rl:"
|
||||
RedisKeyPrefixSession = "session:"
|
||||
RedisKeyPrefixToken = "token:"
|
||||
RedisKeyPrefixCache = "cache:"
|
||||
)
|
||||
|
||||
// ==================== Chat ====================
|
||||
const (
|
||||
MaxConversationHistory = 50
|
||||
MaxMessageLength = 4000
|
||||
)
|
||||
Reference in New Issue
Block a user