MCPcopy Create free account
hub / github.com/chainreactors/EvilProxy / CacheSignatureBestEffort

Function CacheSignatureBestEffort

internal/cache/signature_cache.go:123–155  ·  view source on GitHub ↗

CacheSignatureBestEffort stores a thinking signature for completed response paths.

(ctx context.Context, modelName, text, signature string)

Source from the content-addressed store, hash-verified

121
122// CacheSignatureBestEffort stores a thinking signature for completed response paths.
123func CacheSignatureBestEffort(ctx context.Context, modelName, text, signature string) bool {
124 if text == "" || signature == "" {
125 return false
126 }
127 if len(signature) < MinValidSignatureLen {
128 return false
129 }
130
131 if client, homeMode, errClient := currentSignatureKVClient(); homeMode {
132 if errClient != nil {
133 log.Errorf("home kv best-effort signature set failed prefix=cpa:signature:*: %v", errClient)
134 return false
135 }
136 written, errSet := client.KVSet(ctx, signatureKVKey(modelName, text), []byte(signature), homekv.KVSetOptions{EX: SignatureCacheTTL})
137 if errSet != nil {
138 log.Errorf("home kv best-effort signature set failed prefix=cpa:signature:*: %v", errSet)
139 return false
140 }
141 return written
142 }
143
144 groupKey := GetModelGroup(modelName)
145 textHash := hashText(text)
146 sc := getOrCreateGroupCache(groupKey)
147 sc.mu.Lock()
148 defer sc.mu.Unlock()
149
150 sc.entries[textHash] = SignatureEntry{
151 Signature: signature,
152 Timestamp: time.Now(),
153 }
154 return true
155}
156
157// GetCachedSignature retrieves a cached signature for a given model group and text.
158// Returns empty string if not found or expired.

Calls 5

signatureKVKeyFunction · 0.85
GetModelGroupFunction · 0.85
hashTextFunction · 0.85
getOrCreateGroupCacheFunction · 0.85
KVSetMethod · 0.65