feat: Add claude tools to vertex claude provider (#1559)
* feat: Add claude tools to vertex claude provider * fix: export transform_tool from claude.lua * Include type for transfor_tool --------- Co-authored-by: Miguelo Sana <miguelo@incubeta.com>
This commit is contained in:
@@ -19,6 +19,7 @@ Vertex.api_key_name = "cmd:gcloud auth print-access-token"
|
||||
---@param prompt_opts AvantePromptOptions
|
||||
function M:parse_curl_args(prompt_opts)
|
||||
local provider_conf, request_body = P.parse_config(self)
|
||||
local disable_tools = provider_conf.disable_tools or false
|
||||
local location = vim.fn.getenv("LOCATION")
|
||||
local project_id = vim.fn.getenv("PROJECT_ID")
|
||||
local model_id = provider_conf.model or "default-model-id"
|
||||
@@ -30,6 +31,20 @@ function M:parse_curl_args(prompt_opts)
|
||||
|
||||
local system_prompt = prompt_opts.system_prompt or ""
|
||||
local messages = self:parse_messages(prompt_opts)
|
||||
|
||||
local tools = {}
|
||||
if not disable_tools and prompt_opts.tools then
|
||||
for _, tool in ipairs(prompt_opts.tools) do
|
||||
table.insert(tools, P.claude.transform_tool(tool))
|
||||
end
|
||||
end
|
||||
|
||||
if self.support_prompt_caching and #tools > 0 then
|
||||
local last_tool = vim.deepcopy(tools[#tools])
|
||||
last_tool.cache_control = { type = "ephemeral" }
|
||||
tools[#tools] = last_tool
|
||||
end
|
||||
|
||||
request_body = vim.tbl_deep_extend("force", request_body, {
|
||||
anthropic_version = "vertex-2023-10-16",
|
||||
temperature = 0,
|
||||
@@ -43,6 +58,7 @@ function M:parse_curl_args(prompt_opts)
|
||||
cache_control = { type = "ephemeral" },
|
||||
},
|
||||
},
|
||||
tools = tools,
|
||||
})
|
||||
|
||||
return {
|
||||
|
||||
Reference in New Issue
Block a user