Files
fa053529af 图片请求统一异步处理 (#11)
* 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>
2026-07-18 00:26:13 +08:00

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)
}