]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
Update gpt.lua to get fresh body for each model iteration
authorhunter-nl <junobox@gmail.com>
Thu, 14 Aug 2025 14:03:43 +0000 (16:03 +0200)
committerGitHub <noreply@github.com>
Thu, 14 Aug 2025 14:03:43 +0000 (16:03 +0200)
src/plugins/lua/gpt.lua

index 235984aa9b8b55b254a679b5f6ad14b36a184e01..0738bb5ab8fd5b07c318a89ced57f418d48f8d24 100644 (file)
@@ -683,6 +683,20 @@ local function openai_check(task, content, sel_part)
 
   local from_content, url_content = get_meta_llm_content(task)
 
+  -- Deep copy to avoid table reuse between iterations
+  local function table_deep_copy(orig)
+    local copy
+    if type(orig) == 'table' then
+      copy = {}
+      for k, v in pairs(orig) do
+        copy[k] = table_deep_copy(v)
+      end
+    else
+      copy = orig
+    end
+    return copy
+  end
+
   -- Decide which token length field to use for the given model
   local function get_max_tokens_field(model)
     if not model then
@@ -751,7 +765,9 @@ local function openai_check(task, content, sel_part)
       success = false,
       checked = false
     }
-    local body = body_base
+    -- Fresh body for each model
+    local body = table_deep_copy(body_base)
+    
     -- Set the correct token limit field
     local token_field = get_max_tokens_field(model)
     body[token_field] = settings.max_tokens