Files
avante.nvim/lua/avante/providers/bedrock/claude.lua
2025-03-05 18:53:24 +08:00

39 lines
989 B
Lua

---@class AvanteBedrockClaudeTextMessage
---@field type "text"
---@field text string
---
---@class AvanteBedrockClaudeMessage
---@field role "user" | "assistant"
---@field content [AvanteBedrockClaudeTextMessage][]
local Claude = require("avante.providers.claude")
---@class AvanteBedrockModelHandler
local M = {}
M.role_map = {
user = "user",
assistant = "assistant",
}
M.parse_messages = Claude.parse_messages
M.parse_response = Claude.parse_response
---@param prompt_opts AvantePromptOptions
---@param body_opts table
---@return table
function M.build_bedrock_payload(prompt_opts, body_opts)
local system_prompt = prompt_opts.system_prompt or ""
local messages = M.parse_messages(prompt_opts)
local max_tokens = body_opts.max_tokens or 2000
local payload = {
anthropic_version = "bedrock-2023-05-31",
max_tokens = max_tokens,
messages = messages,
system = system_prompt,
}
return vim.tbl_deep_extend("force", payload, body_opts or {})
end
return M