@@ -26,31 +26,21 @@ const (
2626 WebClaude2BU = "https://claude.ai/api"
2727 UA = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 Edg/114.0.1823.79"
2828 Mod = "claude-2.0"
29- Mod_V1 = "claude-2.1"
29+ ModV1 = "claude-2.1"
3030 //Mod_Magenta = "claude-2.0-magenta"
3131
3232 gRetry = 2
3333)
3434
3535var (
36- JA3 = "771,4865-4866-4867-49195-49199-49196-49200-52393-52392-49171-49172-156-157-47-53,0-23-65281-10-11-35-16-5-13-18-51-45-43-27-17513-21,29-23-24,0"
37- cacheMods = make (map [string ]_mod )
36+ JA3 = "771,4865-4866-4867-49195-49199-49196-49200-52393-52392-49171-49172-156-157-47-53,0-23-65281-10-11-35-16-5-13-18-51-45-43-27-17513-21,29-23-24,0"
3837)
3938
4039type _mod struct {
4140 time.Time
4241 model string
4342}
4443
45- func _delMods () {
46- for k , v := range cacheMods {
47- // 10分钟内没有使用,则清理
48- if v .Add (10 * time .Minute ).Before (time .Now ()) {
49- delete (cacheMods , k )
50- }
51- }
52- }
53-
5444func init () {
5545 JA3 = util .LoadEnvVar ("JA3" , JA3 )
5646}
@@ -78,7 +68,11 @@ type WebClaude2 struct {
7868}
7969
8070func NewWebClaude2 (opt types.Options ) types.Chat {
81- return & WebClaude2 {mod : "" , Options : opt }
71+ mod := ""
72+ if strings .HasPrefix (opt .Model , "claude-" ) {
73+ mod = opt .Model
74+ }
75+ return & WebClaude2 {mod : mod , Options : opt }
8276}
8377
8478func (wc * WebClaude2 ) NewChannel (string ) error {
@@ -92,39 +86,29 @@ func (wc *WebClaude2) Reply(ctx context.Context, prompt string, attrs []types.At
9286 }
9387
9488 if wc .mod == "" {
89+ // 加载 model
9590 model , err := wc .loadModel ()
9691 if err != nil {
9792 return nil , err
9893 }
9994 wc .mod = model
10095 }
10196
102- // 避免每次都检查新模型
103- if mod , ok := cacheMods [wc .oid ]; ok {
104- wc .mod = mod .model
105- }
106- cacheMods [wc .oid ] = _mod {time .Now (), wc .mod }
107-
97+ logrus .Info ("model: " , wc .mod )
10898 var response * models.Response
10999 for index := 1 ; index <= wc .Retry ; index ++ {
110100 r , err := wc .PostMessage (5 * time .Minute , prompt , attrs )
111101 if err != nil {
112102 if index >= wc .Retry {
113- delete (cacheMods , wc .oid )
114103 wc .mu .Unlock ()
115104 return nil , err
116105 }
117106
118107 var wap * types.ErrorWrapper
119108 ok := errors .As (err , & wap )
120109
121- // 尝试新模型
122110 if ok && wap .ErrorType .Message == "Invalid model" {
123- if wc .mod == Mod {
124- logrus .Info ("尝试新模型: " , Mod_V1 )
125- wc .mod = Mod_V1
126- }
127- cacheMods [wc .oid ] = _mod {time .Now (), wc .mod }
111+ wc .mod = ""
128112 } else {
129113 logrus .Error ("[retry] " , err )
130114 }
@@ -309,7 +293,6 @@ func (wc *WebClaude2) Delete() {
309293 if wc .cid == "" {
310294 return
311295 }
312- _delMods ()
313296 headers := make (Kv )
314297 headers ["user-agent" ] = UA
315298 _ , _ = wc .newRequest (10 * time .Second , http .MethodDelete , "organizations/" + wc .oid + "/chat_conversations/" + wc .cid , headers , nil )
0 commit comments