Skip to content

Commit b2ed03d

Browse files
committed
WIP, custom API Modes
1 parent f320e3e commit b2ed03d

File tree

4 files changed

+21
-5
lines changed

4 files changed

+21
-5
lines changed

src/background/index.mjs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ function setPortProxy(port, proxyTabId) {
7676

7777
async function executeApi(session, port, config) {
7878
console.debug('modelName', session.modelName)
79+
console.debug('apiMode', session.apiMode)
7980
if (chatgptWebModelKeys.includes(session.modelName)) {
8081
let tabId
8182
if (

src/components/ConversationCard/index.jsx

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import FileSaver from 'file-saver'
2525
import { render } from 'preact'
2626
import FloatingToolbar from '../FloatingToolbar'
2727
import { useClampWindowSize } from '../../hooks/use-clamp-window-size'
28-
import { bingWebModelKeys, getUserConfig } from '../../config/index.mjs'
28+
import { bingWebModelKeys, getUserConfig, Models } from '../../config/index.mjs'
2929
import { useTranslation } from 'react-i18next'
3030
import DeleteButton from '../DeleteButton'
3131
import { useConfig } from '../../hooks/use-config.mjs'
@@ -380,8 +380,12 @@ function ConversationCard(props) {
380380
className="normal-button"
381381
required
382382
onChange={(e) => {
383-
const apiMode = apiModes[e.target.value]
384-
const modelName = apiModeToModelName(apiMode)
383+
let apiMode = null
384+
let modelName = 'customModel'
385+
if (e.target.value !== -1) {
386+
apiMode = apiModes[e.target.value]
387+
modelName = apiModeToModelName(apiMode)
388+
}
385389
const newSession = {
386390
...session,
387391
modelName,
@@ -407,6 +411,9 @@ function ConversationCard(props) {
407411
)
408412
}
409413
})}
414+
<option value={-1} selected={!config.apiMode && config.modelName === 'customModel'}>
415+
{t(Models.customModel.desc)}
416+
</option>
410417
</select>
411418
</span>
412419
{props.draggable && !completeDraggable && (

src/popup/sections/GeneralPart.jsx

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import {
2222
ThemeMode,
2323
TriggerMode,
2424
isUsingMoonshotApi,
25+
Models,
2526
} from '../../config/index.mjs'
2627
import Browser from 'webextension-polyfill'
2728
import { languageList } from '../../config/language.mjs'
@@ -184,6 +185,10 @@ export function GeneralPart({ config, updateConfig, setTabIndex }) {
184185
}
185186
required
186187
onChange={(e) => {
188+
if (e.target.value === -1) {
189+
updateConfig({ modelName: 'customModel', apiMode: null })
190+
return
191+
}
187192
const apiMode = apiModes[e.target.value]
188193
updateConfig({ apiMode: apiMode })
189194
}}
@@ -202,6 +207,9 @@ export function GeneralPart({ config, updateConfig, setTabIndex }) {
202207
)
203208
}
204209
})}
210+
<option value={-1} selected={!config.apiMode && config.modelName === 'customModel'}>
211+
{t(Models.customModel.desc)}
212+
</option>
205213
</select>
206214
{isUsingMultiModeModel(config) && (
207215
<select

src/services/apis/chatgpt-web.mjs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import { fetchSSE } from '../../utils/fetch-sse.mjs'
44
import { isEmpty } from 'lodash-es'
5-
import { chatgptWebModelKeys, getUserConfig, Models } from '../../config/index.mjs'
5+
import { getUserConfig, Models } from '../../config/index.mjs'
66
import { pushRecord, setAbortController } from './shared.mjs'
77
import Browser from 'webextension-polyfill'
88
import { v4 as uuidv4 } from 'uuid'
@@ -236,7 +236,7 @@ export async function generateAnswersWithChatgptWebApi(port, question, session,
236236
console.debug('models', models)
237237
const selectedModel = modelNameToValue(session.modelName)
238238
const usedModel =
239-
models && models.includes(selectedModel) ? selectedModel : Models[chatgptWebModelKeys[0]].value
239+
models && models.includes(selectedModel) ? selectedModel : Models.chatgptFree35.value
240240
console.debug('usedModel', usedModel)
241241
const needArkoseToken = requirements && requirements.arkose?.required
242242
if (arkoseError && needArkoseToken) throw arkoseError

0 commit comments

Comments
 (0)