Skip to content

Commit c782f9a

Browse files
committed
feat: copilot with gpt4-o
1 parent 7b1a89b commit c782f9a

File tree

3 files changed

+12
-9
lines changed

3 files changed

+12
-9
lines changed

lua/gp/config.lua

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ local config = {
122122
chat = true,
123123
command = false,
124124
-- string with model name or table with model name and parameters
125-
model = { model = "gpt-4", temperature = 1.1, top_p = 1 },
125+
model = { model = "gpt-4o", temperature = 1.1, top_p = 1 },
126126
-- system prompt (use this to specify the persona/role of the AI)
127127
system_prompt = require("gp.defaults").chat_system_prompt,
128128
},
@@ -220,7 +220,7 @@ local config = {
220220
chat = false,
221221
command = true,
222222
-- string with the Copilot engine name or table with engine name and parameters if applicable
223-
model = { model = "gpt-4", temperature = 0.8, top_p = 1, n = 1 },
223+
model = { model = "gpt-4o", temperature = 0.8, top_p = 1, n = 1 },
224224
-- system prompt (use this to specify the persona/role of the AI)
225225
system_prompt = require("gp.defaults").code_system_prompt,
226226
},

lua/gp/dispatcher.lua

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -44,13 +44,9 @@ D.setup = function(opts)
4444
end
4545
end
4646

47-
47+
local callbacks = { copilot = vault.refresh_copilot_bearer }
4848
for name, provider in pairs(D.providers) do
49-
if name == "copilot" then
50-
vault.resolve_secret(name, provider.secret, vault.refresh_copilot_bearer)
51-
else
52-
vault.resolve_secret(name, provider.secret)
53-
end
49+
vault.resolve_secret(name, provider.secret, callbacks[name])
5450
provider.secret = nil
5551
end
5652

@@ -152,6 +148,10 @@ D.prepare_payload = function(messages, model, provider)
152148
return payload
153149
end
154150

151+
if provider == "copilot" and model.model == "gpt-4o" then
152+
model.model = "gpt-4o-2024-05-13"
153+
end
154+
155155
return {
156156
model = model.model,
157157
stream = true,
@@ -304,7 +304,9 @@ D.query = function(buf, provider, payload, handler, on_exit, callback)
304304
if provider == "copilot" then
305305
vault.refresh_copilot_bearer()
306306
bearer = vault.get_secret("copilot_bearer")
307-
if not bearer then
307+
local expires_at = vault.get_secret("copilot_bearer_expires_at")
308+
if not bearer or not expires_at or expires_at < os.time() then
309+
logger.warning("copilot bearer token is missing or expired, trying to refresh..")
308310
return
309311
end
310312
headers = {

lua/gp/vault.lua

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,7 @@ V.refresh_copilot_bearer = function()
136136
if bearer.token and bearer.expires_at and bearer.expires_at > os.time() then
137137
logger.debug("vault refresh_copilot_bearer token still valid", true)
138138
secrets.copilot_bearer = bearer.token
139+
secrets.copilot_bearer_expires_at = bearer.expires_at
139140
return
140141
end
141142

0 commit comments

Comments
 (0)