Skip to content

Commit 3d5c8cd

Browse files
committed
feat: support gpt-4 (#22)
1 parent 8d7f239 commit 3d5c8cd

File tree

2 files changed

+14
-6
lines changed

2 files changed

+14
-6
lines changed

src/background/apis/chatgpt-web.mjs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ export async function sendModerations(token, question, conversationId, messageId
3838

3939
export async function getModels(token) {
4040
const response = JSON.parse((await request(token, 'GET', '/models')).responseText)
41-
return response.models
41+
if (response.models) return response.models.map((m) => m.slug)
4242
}
4343

4444
/**
@@ -71,7 +71,12 @@ export async function generateAnswersWithChatgptWebApi(port, question, session,
7171
const models = await getModels(accessToken).catch(() => {
7272
port.onMessage.removeListener(stopListener)
7373
})
74+
console.debug('models', models)
7475
const config = await getUserConfig()
76+
const selectedModel = Models[config.modelName].value
77+
const usedModel =
78+
models && models.includes(selectedModel) ? selectedModel : Models[chatgptWebModelKeys[0]].value
79+
console.debug('usedModel', usedModel)
7580

7681
let answer = ''
7782
await fetchSSE(`${config.customChatGptWebApiUrl}${config.customChatGptWebApiPath}`, {
@@ -94,7 +99,7 @@ export async function generateAnswersWithChatgptWebApi(port, question, session,
9499
},
95100
},
96101
],
97-
model: models ? models[0].slug : Models[chatgptWebModelKeys[0]].value,
102+
model: usedModel,
98103
parent_message_id: session.parentMessageId,
99104
}),
100105
onMessage(message) {

src/config.mjs

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,16 @@ import { languages } from 'countries-list'
1414
*/
1515
export const Models = {
1616
chatgptFree: { value: 'text-davinci-002-render-sha', desc: 'ChatGPT (Web)' },
17-
chatgptApi: { value: 'gpt-3.5-turbo', desc: 'ChatGPT (GPT-3.5)' },
18-
gptDavinci: { value: 'text-davinci-003', desc: 'GPT3' },
17+
chatgptPlus: { value: 'gpt-4', desc: 'ChatGPT (Web, GPT-4)' },
18+
chatgptApi35: { value: 'gpt-3.5-turbo', desc: 'ChatGPT (GPT-3.5-turbo)' },
19+
chatgptApi4_8k: { value: 'gpt-4', desc: 'ChatGPT (GPT-4-8k)' },
20+
chatgptApi4_32k: { value: 'gpt-4-32k', desc: 'ChatGPT (GPT-4-32k)' },
21+
gptApiDavinci: { value: 'text-davinci-003', desc: 'GPT-3.5' },
1922
}
2023

21-
export const chatgptWebModelKeys = ['chatgptFree']
24+
export const chatgptWebModelKeys = ['chatgptFree', 'chatgptPlus']
2225
export const gptApiModelKeys = ['gptDavinci']
23-
export const chatgptApiModelKeys = ['chatgptApi']
26+
export const chatgptApiModelKeys = ['chatgptApi35', 'chatgptApi4_8k', 'chatgptApi4_32k']
2427

2528
export const TriggerMode = {
2629
always: 'Always',

0 commit comments

Comments
 (0)