@@ -13,7 +13,9 @@ import (
1313 "github.com/labring/aiproxy/core/middleware"
1414 "github.com/labring/aiproxy/core/model"
1515 "github.com/labring/aiproxy/core/monitor"
16+ "github.com/labring/aiproxy/core/relay/adaptor"
1617 "github.com/labring/aiproxy/core/relay/adaptors"
18+ relaymeta "github.com/labring/aiproxy/core/relay/meta"
1719 "github.com/labring/aiproxy/core/relay/mode"
1820 "github.com/labring/aiproxy/core/relay/plugin/cachefollow"
1921)
@@ -32,6 +34,30 @@ const (
3234 errorRatePenalty = 2.0
3335)
3436
37+ func supportModeMeta (
38+ mc * model.ModelCaches ,
39+ channel * model.Channel ,
40+ modelName string ,
41+ m mode.Mode ,
42+ ) * relaymeta.Meta {
43+ modelConfig := model.ModelConfig {}
44+ if mc != nil && mc .ModelConfig != nil {
45+ modelConfig , _ = mc .ModelConfig .GetModelConfig (modelName )
46+ }
47+
48+ return relaymeta .NewMeta (channel , m , modelName , modelConfig )
49+ }
50+
51+ func adaptorSupportsMode (
52+ a adaptor.Adaptor ,
53+ mc * model.ModelCaches ,
54+ channel * model.Channel ,
55+ modelName string ,
56+ m mode.Mode ,
57+ ) bool {
58+ return a .SupportMode (supportModeMeta (mc , channel , modelName , m ))
59+ }
60+
3561func GetChannelFromHeader (
3662 header string ,
3763 mc * model.ModelCaches ,
@@ -54,7 +80,7 @@ func GetChannelFromHeader(
5480 return nil , fmt .Errorf ("adaptor not found for channel %d" , channel .ID )
5581 }
5682
57- if ! a . SupportMode ( m ) {
83+ if ! adaptorSupportsMode ( a , mc , channel , model , m ) {
5884 return nil , fmt .Errorf ("channel %d not supported by adaptor" , channel .ID )
5985 }
6086
@@ -72,7 +98,7 @@ func GetChannelFromHeader(
7298 return nil , fmt .Errorf ("adaptor not found for channel %d" , channel .ID )
7399 }
74100
75- if ! a . SupportMode ( m ) {
101+ if ! adaptorSupportsMode ( a , mc , channel , model , m ) {
76102 return nil , fmt .Errorf ("channel %d not supported by adaptor" , channel .ID )
77103 }
78104
@@ -127,7 +153,7 @@ func GetChannelFromRequest(
127153 )
128154 }
129155
130- if ! a . SupportMode ( m ) {
156+ if ! adaptorSupportsMode ( a , mc , channel , modelName , m ) {
131157 return nil , fmt .Errorf (
132158 "pinned channel %d not supported by adaptor" ,
133159 channel .ID ,
@@ -164,7 +190,7 @@ func getAvailableChannels(
164190 continue
165191 }
166192
167- if ! a . SupportMode ( mode ) {
193+ if ! adaptorSupportsMode ( a , mc , channel , modelName , mode ) {
168194 continue
169195 }
170196
@@ -179,7 +205,7 @@ func getAvailableChannels(
179205 continue
180206 }
181207
182- if ! a . SupportMode ( mode ) {
208+ if ! adaptorSupportsMode ( a , mc , channel , modelName , mode ) {
183209 continue
184210 }
185211
0 commit comments