Manual training via ANN-Train header now writes to versioned key when
no LLM provider is configured. The pending key is only used with LLM
providers where embedding dimensions may vary between versions.
end
local str = rspamd_util.zstd_compress(table.concat(vec, ';'))
- -- For manual training, use stable pending key to avoid version mismatch
+ -- For manual training with LLM providers, use stable pending key to avoid version mismatch
+ -- For symbols-only mode, use versioned key directly (dimension is stable)
local target_key
- if manual_train then
+ if manual_train and has_llm_provider then
target_key = neural_common.pending_train_key(rule, set) .. '_' .. learn_type .. '_set'
else
target_key = set.ann.redis_key .. '_' .. learn_type .. '_set'