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) && (