fix: filter out all dummy messages when summarize (#1989)

This commit is contained in:
yetone
2025-05-05 17:34:53 +08:00
committed by GitHub
parent a67f3071e4
commit e21f1f07bd
3 changed files with 14 additions and 1 deletions

View File

@@ -5,7 +5,7 @@ local M = {}
M.__index = M M.__index = M
---@param message AvanteLLMMessage ---@param message AvanteLLMMessage
---@param opts? {is_user_submission?: boolean, visible?: boolean, displayed_content?: string, state?: avante.HistoryMessageState, uuid?: string, selected_filepaths?: string[], selected_code?: AvanteSelectedCode, just_for_display?: boolean} ---@param opts? {is_user_submission?: boolean, visible?: boolean, displayed_content?: string, state?: avante.HistoryMessageState, uuid?: string, selected_filepaths?: string[], selected_code?: AvanteSelectedCode, just_for_display?: boolean, is_dummy?: boolean}
---@return avante.HistoryMessage ---@return avante.HistoryMessage
function M:new(message, opts) function M:new(message, opts)
opts = opts or {} opts = opts or {}
@@ -22,6 +22,7 @@ function M:new(message, opts)
if opts.selected_filepaths ~= nil then obj.selected_filepaths = opts.selected_filepaths end if opts.selected_filepaths ~= nil then obj.selected_filepaths = opts.selected_filepaths end
if opts.selected_code ~= nil then obj.selected_code = opts.selected_code end if opts.selected_code ~= nil then obj.selected_code = opts.selected_code end
if opts.just_for_display ~= nil then obj.just_for_display = opts.just_for_display end if opts.just_for_display ~= nil then obj.just_for_display = opts.just_for_display end
if opts.is_dummy ~= nil then obj.is_dummy = opts.is_dummy end
return obj return obj
end end

View File

@@ -166,6 +166,8 @@ function M.generate_prompts(opts)
HistoryMessage:new({ HistoryMessage:new({
role = "assistant", role = "assistant",
content = string.format("Viewing file %s to get the latest content", path), content = string.format("Viewing file %s to get the latest content", path),
}, {
is_dummy = true,
}), }),
HistoryMessage:new({ HistoryMessage:new({
role = "assistant", role = "assistant",
@@ -179,6 +181,8 @@ function M.generate_prompts(opts)
}, },
}, },
}, },
}, {
is_dummy = true,
}), }),
HistoryMessage:new({ HistoryMessage:new({
role = "user", role = "user",
@@ -190,6 +194,8 @@ function M.generate_prompts(opts)
is_error = false, is_error = false,
}, },
}, },
}, {
is_dummy = true,
}), }),
}) })
end end
@@ -365,6 +371,11 @@ function M.generate_prompts(opts)
dropped_history_messages = dropped_history_messages =
vim.list_slice(cleaned_history_messages, 1, #cleaned_history_messages - #retained_history_messages) vim.list_slice(cleaned_history_messages, 1, #cleaned_history_messages - #retained_history_messages)
dropped_history_messages = vim
.iter(dropped_history_messages)
:filter(function(msg) return msg.is_dummy ~= true end)
:totable()
-- prepend the history messages to the messages table -- prepend the history messages to the messages table
vim.iter(retained_history_messages):each(function(msg) table.insert(final_history_messages, msg) end) vim.iter(retained_history_messages):each(function(msg) table.insert(final_history_messages, msg) end)
end end

View File

@@ -101,6 +101,7 @@ vim.g.avante_login = vim.g.avante_login
---@field selected_filepaths string[] | nil ---@field selected_filepaths string[] | nil
---@field tool_use_logs string[] | nil ---@field tool_use_logs string[] | nil
---@field just_for_display boolean | nil ---@field just_for_display boolean | nil
---@field is_dummy boolean | nil
--- ---
---@class AvanteLLMToolResult ---@class AvanteLLMToolResult
---@field tool_name string ---@field tool_name string