Skip to content

Commit

Permalink
Fixing openai
Browse files Browse the repository at this point in the history
  • Loading branch information
huynle committed Nov 13, 2024
1 parent c3dd969 commit 5de77ee
Showing 1 changed file with 31 additions and 6 deletions.
37 changes: 31 additions & 6 deletions lua/ogpt/provider/openai.lua
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,8 @@ function Openai:init(opts)
self.api_parameters = {
"model",
"messages",
"prompt",
"stream",
"temperature",
"presence_penalty",
"frequency_penalty",
"top_p",
"max_tokens",
}
self.api_chat_request_options = {}
end
Expand Down Expand Up @@ -51,16 +46,46 @@ function Openai:parse_api_model_response(res, cb)
end

function Openai:conform_request(params)
local _to_remove_system_idx = {}
for idx, message in ipairs(params.messages) do
if message.role == "system" then
table.insert(_to_remove_system_idx, idx)
end
end

-- Remove elements from the list based on indices
for i = #_to_remove_system_idx, 1, -1 do
table.remove(params.messages, _to_remove_system_idx[i])
end

-- conform to support text only model
local messages = params.messages
local conformed_messages = {}
for _, message in ipairs(messages) do
table.insert(conformed_messages, {
role = message.role,
content = utils.gather_text_from_parts(message.content),
})
end

-- Insert the updated params.system string at the beginning of conformed_messages
if params.system then
params["prompt"] = params.system
table.insert(conformed_messages, 1, {
role = "system",
content = params.system,
})
end

params.messages = conformed_messages

-- general clean up, remove things that shouldnt be here
for key, value in pairs(params) do
if not vim.tbl_contains(self.api_parameters, key) then
utils.log("Did not process " .. key .. " for " .. self.name)
params[key] = nil
end
end

return params
end

Expand Down

0 comments on commit 5de77ee

Please sign in to comment.