From 404ec095d4ba9d710fa8cfc9ff59c6dab8cf43ab Mon Sep 17 00:00:00 2001 From: kangfenmao Date: Sat, 22 Mar 2025 16:30:54 +0800 Subject: [PATCH] refactor: update rerank model support and configuration - Changed provider configuration in dev-app-update.yml to use GitHub. - Added SUPPORTED_REANK_PROVIDERS constant to filter available rerank models. - Updated tooltip messages in localization files to indicate supported providers. - Enhanced AddKnowledgePopup and KnowledgeSettingsPopup components to display supported providers in the UI. --- dev-app-update.yml | 10 +++---- src/main/reranker/DefaultReranker.ts | 1 + src/renderer/src/config/providers.ts | 2 ++ src/renderer/src/i18n/locales/en-us.json | 3 +- src/renderer/src/i18n/locales/ja-jp.json | 3 +- src/renderer/src/i18n/locales/ru-ru.json | 3 +- src/renderer/src/i18n/locales/zh-cn.json | 29 ++++++++++--------- src/renderer/src/i18n/locales/zh-tw.json | 5 ++-- .../components/AddKnowledgePopup.tsx | 11 +++++++ .../components/KnowledgeSettingsPopup.tsx | 10 ++++++- 10 files changed, 52 insertions(+), 25 deletions(-) diff --git a/dev-app-update.yml b/dev-app-update.yml index 12788dcf..6c9cb28c 100644 --- a/dev-app-update.yml +++ b/dev-app-update.yml @@ -1,8 +1,8 @@ # provider: generic # url: http://127.0.0.1:8080 # updaterCacheDirName: cherry-studio-updater -# provider: github -# repo: cherry-studio -# owner: kangfenmao -provider: generic -url: https://cherrystudio.ocool.online +provider: github +repo: cherry-studio +owner: kangfenmao +# provider: generic +# url: https://cherrystudio.ocool.online diff --git a/src/main/reranker/DefaultReranker.ts b/src/main/reranker/DefaultReranker.ts index 0bb07456..aac0c65e 100644 --- a/src/main/reranker/DefaultReranker.ts +++ b/src/main/reranker/DefaultReranker.ts @@ -7,6 +7,7 @@ export default class DefaultReranker extends BaseReranker { constructor(base: KnowledgeBaseParams) { super(base) } + async rerank(): Promise { throw new Error('Method not implemented.') } diff --git a/src/renderer/src/config/providers.ts b/src/renderer/src/config/providers.ts index e371df0d..7e01f5f8 100644 --- a/src/renderer/src/config/providers.ts +++ b/src/renderer/src/config/providers.ts @@ -93,6 +93,8 @@ export function getProviderLogo(providerId: string) { return PROVIDER_LOGO_MAP[providerId as keyof typeof PROVIDER_LOGO_MAP] } +export const SUPPORTED_REANK_PROVIDERS = ['silicon', 'jina'] + export const PROVIDER_CONFIG = { openai: { api: { diff --git a/src/renderer/src/i18n/locales/en-us.json b/src/renderer/src/i18n/locales/en-us.json index 2cfda2a6..53c91ab7 100644 --- a/src/renderer/src/i18n/locales/en-us.json +++ b/src/renderer/src/i18n/locales/en-us.json @@ -563,7 +563,8 @@ "vision": "Vision", "websearch": "WebSearch", "rerank_model": "Reordering Model", - "rerank_model_tooltip": "Click the Manage button in Settings -> Model Services to add." + "rerank_model_tooltip": "Click the Manage button in Settings -> Model Services to add.", + "rerank_model_support_provider": "Currently, the reordering model only supports some providers ({{provider}})" }, "navbar": { "expand": "Expand Dialog", diff --git a/src/renderer/src/i18n/locales/ja-jp.json b/src/renderer/src/i18n/locales/ja-jp.json index 8ee358da..1b229463 100644 --- a/src/renderer/src/i18n/locales/ja-jp.json +++ b/src/renderer/src/i18n/locales/ja-jp.json @@ -563,7 +563,8 @@ "vision": "画像", "websearch": "ウェブ検索", "rerank_model": "再順序付けモデル", - "rerank_model_tooltip": "設定->モデルサービスに移動し、管理ボタンをクリックして追加します。" + "rerank_model_tooltip": "設定->モデルサービスに移動し、管理ボタンをクリックして追加します。", + "rerank_model_support_provider": "現在の再順序付けモデルは、{{provider}} のみサポートしています" }, "navbar": { "expand": "ダイアログを展開", diff --git a/src/renderer/src/i18n/locales/ru-ru.json b/src/renderer/src/i18n/locales/ru-ru.json index abcaef27..267a3654 100644 --- a/src/renderer/src/i18n/locales/ru-ru.json +++ b/src/renderer/src/i18n/locales/ru-ru.json @@ -569,7 +569,8 @@ "vision": "Визуальные", "websearch": "Веб-поисковые", "rerank_model": "Модель переупорядочивания", - "rerank_model_tooltip": "В настройках -> Служба модели нажмите кнопку \"Управление\", чтобы добавить." + "rerank_model_tooltip": "В настройках -> Служба модели нажмите кнопку \"Управление\", чтобы добавить.", + "rerank_model_support_provider": "Текущая модель переупорядочивания поддерживается только некоторыми поставщиками ({{provider}})" }, "navbar": { "expand": "Развернуть диалоговое окно", diff --git a/src/renderer/src/i18n/locales/zh-cn.json b/src/renderer/src/i18n/locales/zh-cn.json index b2665613..d01c3ef2 100644 --- a/src/renderer/src/i18n/locales/zh-cn.json +++ b/src/renderer/src/i18n/locales/zh-cn.json @@ -164,20 +164,20 @@ "topics.export.yuque": "导出到语雀", "topics.export.obsidian": "导出到 Obsidian", "topics.export.obsidian_not_configured": "Obsidian 未配置", - "topics.export.obsidian_title":"标题", - "topics.export.obsidian_title_placeholder":"请输入标题", - "topics.export.obsidian_title_required":"标题不能为空", - "topics.export.obsidian_tags":"标签", - "topics.export.obsidian_tags_placeholder":"请输入标签,多个标签用英文逗号分隔,Obsidian不可用纯数字", - "topics.export.obsidian_created":"创建时间", - "topics.export.obsidian_created_placeholder":"请选择创建时间", - "topics.export.obsidian_source":"来源", - "topics.export.obsidian_source_placeholder":"请输入来源", - "topics.export.obsidian_operate":"处理方式", - "topics.export.obsidian_operate_placeholder":"请选择处理方式", - "topics.export.obsidian_operate_append":"追加", - "topics.export.obsidian_operate_prepend":"前置", - "topics.export.obsidian_operate_new_or_overwrite":"新建(如果存在就覆盖)", + "topics.export.obsidian_title": "标题", + "topics.export.obsidian_title_placeholder": "请输入标题", + "topics.export.obsidian_title_required": "标题不能为空", + "topics.export.obsidian_tags": "标签", + "topics.export.obsidian_tags_placeholder": "请输入标签,多个标签用英文逗号分隔,Obsidian不可用纯数字", + "topics.export.obsidian_created": "创建时间", + "topics.export.obsidian_created_placeholder": "请选择创建时间", + "topics.export.obsidian_source": "来源", + "topics.export.obsidian_source_placeholder": "请输入来源", + "topics.export.obsidian_operate": "处理方式", + "topics.export.obsidian_operate_placeholder": "请选择处理方式", + "topics.export.obsidian_operate_append": "追加", + "topics.export.obsidian_operate_prepend": "前置", + "topics.export.obsidian_operate_new_or_overwrite": "新建(如果存在就覆盖)", "topics.export.obsidian_atributes": "配置笔记属性", "topics.export.obsidian_btn": "确定", "topics.export.obsidian_export_success": "导出成功", @@ -540,6 +540,7 @@ "embedding_model_tooltip": "在设置->模型服务中点击管理按钮添加", "rerank_model": "重排序模型", "rerank_model_tooltip": "在设置->模型服务中点击管理按钮添加", + "rerank_model_support_provider": "目前重排序模型仅支持部分服务商 ({{provider}})", "free": "免费", "no_matches": "无可用模型", "parameter_name": "参数名称", diff --git a/src/renderer/src/i18n/locales/zh-tw.json b/src/renderer/src/i18n/locales/zh-tw.json index 81dbd945..4910a445 100644 --- a/src/renderer/src/i18n/locales/zh-tw.json +++ b/src/renderer/src/i18n/locales/zh-tw.json @@ -164,7 +164,7 @@ "topics.export.yuque": "匯出到語雀", "topics.export.obsidian": "匯出到 Obsidian", "topics.export.obsidian_not_configured": "Obsidian 未配置", - "topics.export.obsidian_title":"標題", + "topics.export.obsidian_title": "標題", "topics.export.obsidian_title_placeholder": "請輸入標題", "topics.export.obsidian_title_required": "標題不能為空", "topics.export.obsidian_tags": "標籤", @@ -566,7 +566,8 @@ "vision": "視覺", "websearch": "網路搜尋", "rerank_model": "重排序模型", - "rerank_model_tooltip": "在設定->模型服務中點擊管理按鈕添加" + "rerank_model_tooltip": "在設定->模型服務中點擊管理按鈕添加", + "rerank_model_support_provider": "目前重排序模型僅支持部分服務商 ({{provider}})" }, "navbar": { "expand": "伸縮對話框", diff --git a/src/renderer/src/pages/knowledge/components/AddKnowledgePopup.tsx b/src/renderer/src/pages/knowledge/components/AddKnowledgePopup.tsx index c1cfe279..ae7f45a4 100644 --- a/src/renderer/src/pages/knowledge/components/AddKnowledgePopup.tsx +++ b/src/renderer/src/pages/knowledge/components/AddKnowledgePopup.tsx @@ -1,7 +1,9 @@ import { TopView } from '@renderer/components/TopView' import { isEmbeddingModel, isRerankModel } from '@renderer/config/models' +import { SUPPORTED_REANK_PROVIDERS } from '@renderer/config/providers' import { useKnowledgeBases } from '@renderer/hooks/useKnowledge' import { useProviders } from '@renderer/hooks/useProvider' +import { SettingHelpText } from '@renderer/pages/settings' import AiProvider from '@renderer/providers/AiProvider' import { getKnowledgeBaseParams } from '@renderer/services/KnowledgeService' import { getModelUniqId } from '@renderer/services/ModelService' @@ -34,14 +36,17 @@ const PopupContainer: React.FC = ({ title, resolve }) => { const { t } = useTranslation() const { providers } = useProviders() const { addKnowledgeBase } = useKnowledgeBases() + const allModels = providers .map((p) => p.models) .flat() .filter((model) => isEmbeddingModel(model)) + const rerankModels = providers .map((p) => p.models) .flat() .filter((model) => isRerankModel(model)) + const nameInputRef = useRef(null) const selectOptions = providers @@ -60,6 +65,7 @@ const PopupContainer: React.FC = ({ title, resolve }) => { const rerankSelectOptions = providers .filter((p) => p.models.length > 0) + .filter((p) => SUPPORTED_REANK_PROVIDERS.includes(p.id)) .map((p) => ({ label: p.isSystem ? t(`provider.${p.id}`) : p.name, title: p.name, @@ -164,6 +170,11 @@ const PopupContainer: React.FC = ({ title, resolve }) => { tooltip={{ title: t('models.rerank_model_tooltip'), placement: 'right' }} rules={[{ required: false, message: t('message.error.enter.model') }]}>