diff --git a/src/background/index.mjs b/src/background/index.mjs index 0c30c6b..9affc6c 100644 --- a/src/background/index.mjs +++ b/src/background/index.mjs @@ -76,6 +76,7 @@ function setPortProxy(port, proxyTabId) { async function executeApi(session, port, config) { console.debug('modelName', session.modelName) + console.debug('apiMode', session.apiMode) if (chatgptWebModelKeys.includes(session.modelName)) { let tabId if ( diff --git a/src/components/ConversationCard/index.jsx b/src/components/ConversationCard/index.jsx index 5e8d2f1..0661859 100644 --- a/src/components/ConversationCard/index.jsx +++ b/src/components/ConversationCard/index.jsx @@ -25,7 +25,7 @@ import FileSaver from 'file-saver' import { render } from 'preact' import FloatingToolbar from '../FloatingToolbar' import { useClampWindowSize } from '../../hooks/use-clamp-window-size' -import { bingWebModelKeys, getUserConfig } from '../../config/index.mjs' +import { bingWebModelKeys, getUserConfig, Models } from '../../config/index.mjs' import { useTranslation } from 'react-i18next' import DeleteButton from '../DeleteButton' import { useConfig } from '../../hooks/use-config.mjs' @@ -380,8 +380,12 @@ function ConversationCard(props) { className="normal-button" required onChange={(e) => { - const apiMode = apiModes[e.target.value] - const modelName = apiModeToModelName(apiMode) + let apiMode = null + let modelName = 'customModel' + if (e.target.value !== -1) { + apiMode = apiModes[e.target.value] + modelName = apiModeToModelName(apiMode) + } const newSession = { ...session, modelName, @@ -407,6 +411,9 @@ function ConversationCard(props) { ) } })} + {props.draggable && !completeDraggable && ( diff --git a/src/popup/sections/GeneralPart.jsx b/src/popup/sections/GeneralPart.jsx index 9f81583..cfd8ef8 100644 --- a/src/popup/sections/GeneralPart.jsx +++ b/src/popup/sections/GeneralPart.jsx @@ -22,6 +22,7 @@ import { ThemeMode, TriggerMode, isUsingMoonshotApi, + Models, } from '../../config/index.mjs' import Browser from 'webextension-polyfill' import { languageList } from '../../config/language.mjs' @@ -184,6 +185,10 @@ export function GeneralPart({ config, updateConfig, setTabIndex }) { } required onChange={(e) => { + if (e.target.value === -1) { + updateConfig({ modelName: 'customModel', apiMode: null }) + return + } const apiMode = apiModes[e.target.value] updateConfig({ apiMode: apiMode }) }} @@ -202,6 +207,9 @@ export function GeneralPart({ config, updateConfig, setTabIndex }) { ) } })} + {isUsingMultiModeModel(config) && (