fix: bedrock (#1511)

This commit is contained in:
yetone
2025-03-07 00:30:30 +08:00
committed by GitHub
parent 8620ea3e12
commit 25dee44de9
3 changed files with 16 additions and 7 deletions

View File

@@ -6,6 +6,8 @@ local Scan = require("plenary.scandir")
local Config = require("avante.config") local Config = require("avante.config")
---@class avante.Path ---@class avante.Path
---@field history_path Path
---@field cache_path Path
local P = {} local P = {}
local history_file_cache = LRUCache:new(12) local history_file_cache = LRUCache:new(12)

View File

@@ -7,6 +7,13 @@ local M = {}
M.api_key_name = "BEDROCK_KEYS" M.api_key_name = "BEDROCK_KEYS"
M.use_xml_format = true M.use_xml_format = true
setmetatable(M, {
__index = function(_, k)
local model_handler = M.load_model_handler()
return model_handler[k]
end,
})
function M.load_model_handler() function M.load_model_handler()
local provider_conf, _ = P.parse_config(P["bedrock"]) local provider_conf, _ = P.parse_config(P["bedrock"])
local bedrock_model = provider_conf.model local bedrock_model = provider_conf.model
@@ -18,6 +25,11 @@ function M.load_model_handler()
error(error_msg) error(error_msg)
end end
function M:parse_messages(prompt_opts)
local model_handler = M.load_model_handler()
return model_handler.parse_messages(self, prompt_opts)
end
function M:parse_response(ctx, data_stream, event_state, opts) function M:parse_response(ctx, data_stream, event_state, opts)
local model_handler = M.load_model_handler() local model_handler = M.load_model_handler()
return model_handler.parse_response(self, ctx, data_stream, event_state, opts) return model_handler.parse_response(self, ctx, data_stream, event_state, opts)

View File

@@ -272,14 +272,13 @@ vim.g.avante_login = vim.g.avante_login
---@field parse_stream_data? AvanteStreamParser ---@field parse_stream_data? AvanteStreamParser
---@field on_error? fun(result: table<string, any>): nil ---@field on_error? fun(result: table<string, any>): nil
--- ---
---@alias AvanteBedrockPayloadBuilder fun(self: AvanteProviderFunctor, prompt_opts: AvantePromptOptions, body_opts: table<string, any>): table<string, any> ---@alias AvanteBedrockPayloadBuilder fun(self: AvanteBedrockModelHandler | AvanteBedrockProviderFunctor, prompt_opts: AvantePromptOptions, body_opts: table<string, any>): table<string, any>
--- ---
---@class AvanteBedrockProviderFunctor: AvanteProviderFunctor ---@class AvanteBedrockProviderFunctor: AvanteProviderFunctor
---@field load_model_handler fun(): AvanteBedrockModelHandler ---@field load_model_handler fun(): AvanteBedrockModelHandler
---@field build_bedrock_payload? AvanteBedrockPayloadBuilder ---@field build_bedrock_payload? AvanteBedrockPayloadBuilder
--- ---
--- ---@class AvanteBedrockModelHandler : AvanteProviderFunctor
---@class AvanteBedrockModelHandler
---@field role_map table<"user" | "assistant", string> ---@field role_map table<"user" | "assistant", string>
---@field parse_messages AvanteMessagesParser ---@field parse_messages AvanteMessagesParser
---@field parse_response AvanteResponseParser ---@field parse_response AvanteResponseParser
@@ -377,10 +376,6 @@ vim.g.avante_login = vim.g.avante_login
---@class avante.ChatMemory ---@class avante.ChatMemory
---@field content string ---@field content string
---@field last_summarized_timestamp string ---@field last_summarized_timestamp string
---@class avante.Path
---@field history_path Path
---@field cache_path Path
--- ---
---@class avante.CurlOpts ---@class avante.CurlOpts
---@field provider AvanteProviderFunctor ---@field provider AvanteProviderFunctor