From e4cd8381e3860432303338caefaa76d91c105a21 Mon Sep 17 00:00:00 2001 From: josc146 Date: Tue, 6 Aug 2024 19:24:21 +0800 Subject: [PATCH] WIP, custom API Modes --- src/components/ConversationCard/index.jsx | 19 +-- src/config/index.mjs | 78 +++++++++ src/popup/sections/ApiModes.jsx | 195 +++++++++++++++++++--- src/popup/sections/GeneralPart.jsx | 12 +- src/popup/sections/SelectionTools.jsx | 2 +- src/services/apis/bing-web.mjs | 3 +- src/services/apis/chatgpt-web.mjs | 3 +- src/services/apis/claude-api.mjs | 5 +- src/services/apis/claude-web.mjs | 4 +- src/services/apis/moonshot-web.mjs | 5 +- src/services/apis/openai-api.mjs | 7 +- src/services/init-session.mjs | 4 +- src/services/wrappers.mjs | 4 +- src/utils/crop-text.mjs | 5 +- src/utils/index.mjs | 1 + src/utils/model-name-convert.mjs | 80 +++++++++ 16 files changed, 368 insertions(+), 59 deletions(-) create mode 100644 src/utils/model-name-convert.mjs diff --git a/src/components/ConversationCard/index.jsx b/src/components/ConversationCard/index.jsx index 1d954ea..48ddffc 100644 --- a/src/components/ConversationCard/index.jsx +++ b/src/components/ConversationCard/index.jsx @@ -3,7 +3,13 @@ import PropTypes from 'prop-types' import Browser from 'webextension-polyfill' import InputBox from '../InputBox' import ConversationItem from '../ConversationItem' -import { createElementAtPosition, isFirefox, isMobile, isSafari } from '../../utils' +import { + createElementAtPosition, + isFirefox, + isMobile, + isSafari, + modelNameToDesc, +} from '../../utils' import { ArchiveIcon, DesktopDownloadIcon, @@ -16,7 +22,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, ModelMode, Models } 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' @@ -370,14 +376,7 @@ function ConversationCard(props) { }} > {config.activeApiModes.map((modelName) => { - let desc - if (modelName.includes('-')) { - const splits = modelName.split('-') - if (splits[0] in Models) - desc = `${t(Models[splits[0]].desc)} (${t(ModelMode[splits[1]])})` - } else { - if (modelName in Models) desc = t(Models[modelName].desc) - } + const desc = modelNameToDesc(modelName, t) if (desc) return (