参数化百度 appid

This commit is contained in:
Ubuntu 2025-02-13 02:56:36 +08:00
parent 79ded43408
commit 545a8419a7
2 changed files with 36 additions and 3 deletions

View File

@ -160,6 +160,16 @@ M._defaults = {
temperature = 0,
max_tokens = 8000,
},
------@type AvanteSupportedProvider
---["baidu"] = {
--- __inherited_from = "openai",
--- model = "deekseek-r1",
--- timeout = 30000, -- Timeout in milliseconds
--- temperature = 1,
--- max_tokens = 8000,
--- endpoint = "https://qianfan.baidubce.com/v2/chat/completions",
--- appid = "app-QzGDePL0", -- 需要用户设置自己的百度APPID
---},
},
---Specify the special dual_boost mode
---1. enabled: Whether to enable dual_boost mode. Default to false.
@ -417,14 +427,31 @@ M.has_provider = function(provider) return M._options[provider] ~= nil or M.vend
---@param provider Provider
---@return AvanteProviderFunctor
M.get_provider = function(provider)
local config = nil
if M._options[provider] ~= nil then
return vim.deepcopy(M._options[provider], true)
config = vim.deepcopy(M._options[provider], true)
elseif M.vendors and M.vendors[provider] ~= nil then
return vim.deepcopy(M.vendors[provider], true)
config = vim.deepcopy(M.vendors[provider], true)
-- Handle inheritance
if config.__inherited_from then
local base_config = M.get_provider(config.__inherited_from)
config = vim.tbl_deep_extend("force", base_config, config)
end
else
error("Failed to find provider: " .. provider, 2)
end
return config
end
---get supported providers
-- M.get_provider = function(provider)
-- if M._options[provider] ~= nil then
-- return vim.deepcopy(M._options[provider], true)
-- elseif M.vendors and M.vendors[provider] ~= nil then
-- return vim.deepcopy(M.vendors[provider], true)
-- else
-- error("Failed to find provider: " .. provider, 2)
-- end
-- end
M.BASE_PROVIDER_KEYS = {
"endpoint",

View File

@ -284,7 +284,13 @@ M.parse_curl_args = function(provider, prompt_opts)
}
-- Add appid header for baidu provider
if Config.provider == "baidu" then headers["appid"] = "app-QzGDePL0" end
if Config.provider == "baidu" then
local baidu_config = Config.get_provider("baidu") or {}
if not baidu_config.appid or baidu_config.appid == "" then
error("Baidu provider requires 'appid' to be set in config")
end
headers["appid"] = baidu_config.appid
end
if P.env.require_api_key(base) then
local api_key = provider.parse_api_key()