* fix:未导入unicode包 * feat:图片异步转换 * feat:添加R2支持 * feat:新增文件管理 * fix:修复错误信息双写导致响应异常 * chore:渠道列表中添加快捷启用停止按钮 * fix:修复模型异常终端导致报错的问题 * improve:优化无可用渠道的日志打印,减少日志污染 * fix:在线体验出错缺少提示信息 * fix:修复日志库问题,只有请求日志保存到独立的库中 * feat:新增阿里图片模型说明文档 * fix:阿里千问图片生成 * fix:修复图片异步控制无效问题 * improve:优化文件展示,支持缩略图查看 * feat:实时监控中添加图片异步转换池状态信息 * improve:优化在线体验页面布局 * fix:修复异步任务状态显示异常问题 * feat:图片异步任务停止时等待任务完成后再退出程序 * chore:调整存储路径 --------- Co-authored-by: qian <wuchengqian5@163.com> Co-authored-by: chengqian <wuchengqian@kkidc.com>
54 lines
1.5 KiB
Go
54 lines
1.5 KiB
Go
package common
|
|
|
|
import (
|
|
"context"
|
|
"sync"
|
|
|
|
"github.com/gogf/gf/v2/database/gdb"
|
|
"github.com/gogf/gf/v2/frame/g"
|
|
)
|
|
|
|
const auditDBGroup = "audit"
|
|
|
|
var (
|
|
auditDBConfigured bool
|
|
auditDBConfiguredOnce sync.Once
|
|
)
|
|
|
|
// GetAuditDB 返回审计数据库连接。
|
|
// 如果配置了 database.audit 分组则使用独立审计库,否则回退到主库。
|
|
func GetAuditDB() gdb.DB {
|
|
if !IsAuditDBConfigured() {
|
|
return g.DB()
|
|
}
|
|
return g.DB(auditDBGroup)
|
|
}
|
|
|
|
// IsAuditDBConfigured 检查是否配置了独立的审计数据库。
|
|
// 通过检查配置文件中是否存在 database.audit.link 来判断。
|
|
func IsAuditDBConfigured() bool {
|
|
auditDBConfiguredOnce.Do(func() {
|
|
cfg := g.Cfg()
|
|
if cfg == nil {
|
|
return
|
|
}
|
|
auditLink := cfg.MustGet(context.Background(), "database.audit.link")
|
|
auditDBConfigured = !auditLink.IsEmpty()
|
|
})
|
|
return auditDBConfigured
|
|
}
|
|
|
|
// AuditModelCtx 返回指定审计表的 Model(带 context)。
|
|
// 仅 aud_request_logs(大模型请求审计)使用独立审计库(配置了 database.audit 时);
|
|
// 其余审计表(aud_operation_logs、aud_login_history、aud_sensitive_access_logs、
|
|
// aud_content_filter_logs)始终使用主库,数据量小无需分离。
|
|
// 使用示例:
|
|
//
|
|
// common.AuditModelCtx(ctx, "aud_request_logs").Data(data).Insert()
|
|
func AuditModelCtx(ctx context.Context, table string) *gdb.Model {
|
|
if table == "aud_request_logs" {
|
|
return GetAuditDB().Model(table).Safe().Ctx(ctx)
|
|
}
|
|
return g.DB().Model(table).Safe().Ctx(ctx)
|
|
}
|