From 095e1920f1a07f14d1d54b41a93f7e245d9a44c3 Mon Sep 17 00:00:00 2001 From: Seefs Date: Fri, 24 Apr 2026 17:51:46 +0800 Subject: [PATCH] fix(channel): load model mapping during upstream model checks --- controller/channel_upstream_update.go | 24 ++++++++++++++++++++-- controller/channel_upstream_update_test.go | 4 ++++ 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/controller/channel_upstream_update.go b/controller/channel_upstream_update.go index 1d851949..77a1e3c8 100644 --- a/controller/channel_upstream_update.go +++ b/controller/channel_upstream_update.go @@ -32,6 +32,26 @@ const ( channelUpstreamModelUpdateNotifyMaxFailedChannelIDs = 10 ) +var channelUpstreamModelUpdateSelectFields = []string{ + "id", + "name", + "type", + "key", + "status", + "base_url", + "models", + "model_mapping", + "settings", + "setting", + "other", + "group", + "priority", + "weight", + "tag", + "channel_info", + "header_override", +} + var ( channelUpstreamModelUpdateTaskOnce sync.Once channelUpstreamModelUpdateTaskRunning atomic.Bool @@ -521,7 +541,7 @@ func runChannelUpstreamModelUpdateTaskOnce() { for { var channels []*model.Channel query := model.DB. - Select("id", "name", "type", "key", "status", "base_url", "models", "settings", "setting", "other", "group", "priority", "weight", "tag", "channel_info", "header_override"). + Select(channelUpstreamModelUpdateSelectFields). Where("status = ?", common.ChannelStatusEnabled). Order("id asc"). Limit(channelUpstreamModelUpdateTaskBatchSize) @@ -814,7 +834,7 @@ func collectPendingApplyUpstreamModelChanges(settings dto.ChannelOtherSettings) func findEnabledChannelsAfterID(lastID int, batchSize int) ([]*model.Channel, error) { var channels []*model.Channel query := model.DB. - Select("id", "name", "type", "key", "status", "base_url", "models", "settings", "setting", "other", "group", "priority", "weight", "tag", "channel_info", "header_override"). + Select(channelUpstreamModelUpdateSelectFields). Where("status = ?", common.ChannelStatusEnabled). Order("id asc"). Limit(batchSize) diff --git a/controller/channel_upstream_update_test.go b/controller/channel_upstream_update_test.go index 52de830b..d9890d91 100644 --- a/controller/channel_upstream_update_test.go +++ b/controller/channel_upstream_update_test.go @@ -81,6 +81,10 @@ func TestCollectPendingApplyUpstreamModelChanges(t *testing.T) { require.Equal(t, []string{"old-model"}, pendingRemoveModels) } +func TestChannelUpstreamModelUpdateSelectFieldsIncludeModelMapping(t *testing.T) { + require.Contains(t, channelUpstreamModelUpdateSelectFields, "model_mapping") +} + func TestNormalizeChannelModelMapping(t *testing.T) { modelMapping := `{ " alias-model ": " upstream-model ",