Revert "fix: Always handle the extra response outside of stream, such as the exceptions from bedrock (#1526)" (#1569)

This reverts commit f9ab6934d2.
This commit is contained in:
yetone
2025-03-12 19:10:05 +08:00
committed by GitHub
parent fee1aacdfc
commit f9f92dc9d4
12 changed files with 20 additions and 5 deletions

View File

@@ -246,9 +246,7 @@ function M.curl(opts)
end
local function parse_response_without_stream(data)
if provider.parse_response_without_stream then
provider:parse_response_without_stream(data, current_event_state, handler_opts)
end
provider:parse_response_without_stream(data, current_event_state, handler_opts)
end
local completed = false
@@ -356,8 +354,8 @@ function M.curl(opts)
end)
end
-- Always handle the extra response outside of stream, such as the exceptions from bedrock
if result.status == 200 then
-- If stream is not enabled, then handle the response here
if provider:is_disable_stream() and result.status == 200 then
vim.schedule(function()
completed = true
parse_response_without_stream(result.body)

View File

@@ -16,6 +16,7 @@ M.api_key_name = "AZURE_OPENAI_API_KEY"
M.parse_messages = O.parse_messages
M.parse_response = O.parse_response
M.parse_response_without_stream = O.parse_response_without_stream
M.is_disable_stream = O.is_disable_stream
M.is_o_series_model = O.is_o_series_model
M.role_map = O.role_map

View File

@@ -17,6 +17,7 @@ M.role_map = {
assistant = "assistant",
}
M.is_disable_stream = Claude.is_disable_stream
M.parse_messages = Claude.parse_messages
M.parse_response = Claude.parse_response

View File

@@ -36,6 +36,8 @@ function M.transform_tool(tool)
}
end
function M:is_disable_stream() return false end
function M:parse_messages(opts)
---@type AvanteClaudeMessage[]
local messages = {}

View File

@@ -47,6 +47,8 @@ M.role_map = {
assistant = "assistant",
}
function M:is_disable_stream() return false end
function M:parse_messages(opts)
local messages = {
{ role = "system", content = opts.system_prompt },

View File

@@ -209,6 +209,8 @@ M.role_map = {
assistant = "assistant",
}
function M:is_disable_stream() return false end
M.parse_messages = OpenAI.parse_messages
M.parse_response = OpenAI.parse_response

View File

@@ -12,6 +12,8 @@ M.role_map = {
}
-- M.tokenizer_id = "google/gemma-2b"
function M:is_disable_stream() return false end
function M:parse_messages(opts)
local contents = {}
local prev_role = nil

View File

@@ -14,6 +14,8 @@ M.role_map = {
M.parse_messages = P.openai.parse_messages
M.is_o_series_model = P.openai.is_o_series_model
function M:is_disable_stream() return false end
function M:parse_stream_data(ctx, data, handler_opts)
local ok, json_data = pcall(vim.json.decode, data)
if not ok or not json_data then

View File

@@ -13,6 +13,8 @@ M.role_map = {
assistant = "assistant",
}
function M:is_disable_stream() return false end
---@param tool AvanteLLMTool
---@return AvanteOpenAITool
function M.transform_tool(tool)

View File

@@ -11,6 +11,7 @@ M.role_map = {
assistant = "model",
}
M.is_disable_stream = Gemini.is_disable_stream
M.parse_messages = Gemini.parse_messages
M.parse_response = Gemini.parse_response

View File

@@ -9,6 +9,7 @@ M.role_map = {
assistant = "assistant",
}
M.is_disable_stream = P.claude.is_disable_stream
M.parse_messages = P.claude.parse_messages
M.parse_response = P.claude.parse_response
M.parse_api_key = Vertex.parse_api_key

View File

@@ -261,6 +261,7 @@ vim.g.avante_login = vim.g.avante_login
---@field parse_messages AvanteMessagesParser
---@field parse_response AvanteResponseParser
---@field parse_curl_args AvanteCurlArgsParser
---@field is_disable_stream fun(self: AvanteProviderFunctor): boolean
---@field setup fun(): nil
---@field is_env_set fun(): boolean
---@field api_key_name string