From e1125fca54984617992e88ebf7c1104af5d79609 Mon Sep 17 00:00:00 2001 From: yetone Date: Thu, 6 Feb 2025 00:03:49 +0800 Subject: [PATCH] feat: bedrock use tools (#1184) --- lua/avante/providers/bedrock/claude.lua | 34 +++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/lua/avante/providers/bedrock/claude.lua b/lua/avante/providers/bedrock/claude.lua index f857cb9..523ea62 100644 --- a/lua/avante/providers/bedrock/claude.lua +++ b/lua/avante/providers/bedrock/claude.lua @@ -32,6 +32,40 @@ M.parse_messages = function(opts) }) end + if opts.tool_use then + local msg = { + role = "assistant", + content = {}, + } + if opts.response_content then + msg.content[#msg.content + 1] = { + type = "text", + text = opts.response_content, + } + end + msg.content[#msg.content + 1] = { + type = "tool_use", + id = opts.tool_use.id, + name = opts.tool_use.name, + input = vim.json.decode(opts.tool_use.input_json), + } + messages[#messages + 1] = msg + end + + if opts.tool_result then + messages[#messages + 1] = { + role = "user", + content = { + { + type = "tool_result", + tool_use_id = opts.tool_result.tool_use_id, + content = opts.tool_result.content, + is_error = opts.tool_result.is_error, + }, + }, + } + end + return messages end