refactor(masks): 清空中英文遮罩数组

-将 CN_MASKS 和 EN_MASKS 数组清空,保留空数组结构
- 移除中英文遮罩文件中的所有遮罩定义
This commit is contained in:
Tianyi
2025-03-01 22:52:50 +08:00
parent 9598b323c7
commit 674e8a6892
4 changed files with 60 additions and 578 deletions

View File

@@ -14,7 +14,7 @@ import dynamic from "next/dynamic";
import { Path, SlotID } from "../constant";
import { ErrorBoundary } from "./error";
import { getISOLang, getLang } from "../locales";
import { getISOLang } from "../locales";
import {
HashRouter as Router,
@@ -212,7 +212,6 @@ function Screen() {
<div
className={clsx(styles.container, {
[styles["tight-container"]]: shouldTightBorder,
[styles["rtl-screen"]]: getLang() === "ar",
})}
>
{renderContent()}

View File

@@ -8,6 +8,7 @@ import { ListItem, Select } from "./ui-lib";
import { useAllModels } from "../utils/hooks";
import styles from "./model-config.module.scss";
import { getModelProvider } from "../utils/model";
import { useEffect } from "react";
export function ModelConfigList(props: {
modelConfig: ModelConfig;
@@ -16,6 +17,50 @@ export function ModelConfigList(props: {
const allModels = useAllModels();
const accessStore = useAccessStore();
// 确保初始化时providerName和模型匹配
useEffect(() => {
// 确保allModels已加载
if (!allModels || allModels.length === 0) return;
// 检查当前选中的模型是否确实属于当前选中的服务商
const modelBelongsToProvider = allModels.some(
(m) =>
m.available &&
m.name === props.modelConfig.model &&
m.provider?.providerName === props.modelConfig.providerName,
);
// 如果不匹配,则强制更新为当前服务商的第一个可用模型
if (!modelBelongsToProvider) {
console.log(
`模型不匹配修复: 当前模型 ${props.modelConfig.model} 不属于 ${props.modelConfig.providerName}`,
);
// 找到当前服务商的第一个可用模型
const firstModelForProvider = allModels.find(
(m) =>
m.available &&
m.provider?.providerName === props.modelConfig.providerName,
);
if (firstModelForProvider) {
console.log(`模型不匹配修复: 更新为 ${firstModelForProvider.name}`);
props.updateConfig((config) => {
config.model = ModalConfigValidator.model(firstModelForProvider.name);
});
} else if (props.modelConfig.providerName === ServiceProvider.OpenAI) {
// 如果是OpenAI但没找到模型强制设置为一个OpenAI常见模型
const openAIModel = "gpt-4o-mini";
console.log(
`模型不匹配修复: 未找到OpenAI模型默认设置为 ${openAIModel}`,
);
props.updateConfig((config) => {
config.model = ModalConfigValidator.model(openAIModel);
});
}
}
}, [props.modelConfig.providerName, props.modelConfig.model, allModels]);
// 过滤未配置API密钥的服务提供商
const validProviders = Object.entries(ServiceProvider).filter(([_, v]) => {
switch (v) {
@@ -54,11 +99,19 @@ export function ModelConfigList(props: {
}
});
// 确保有可用的模型供当前服务商使用
const filteredModels = allModels.filter(
(v) =>
v.available &&
v.provider?.providerName === props.modelConfig.providerName,
);
// 如果没有找到当前服务商的模型,显示所有模型(防止下拉列表为空)
const modelsToShow =
filteredModels.length > 0
? filteredModels
: allModels.filter((v) => v.available);
const value = `${props.modelConfig.model}@${props.modelConfig?.providerName}`;
const compressModelValue = `${props.modelConfig.compressModel}@${props.modelConfig?.compressProviderName}`;
@@ -106,9 +159,12 @@ export function ModelConfigList(props: {
});
}}
>
{filteredModels.map((v, i) => (
{modelsToShow.map((v, i) => (
<option value={`${v.name}@${v.provider?.providerName}`} key={i}>
{v.displayName}
{filteredModels.length === 0
? ` (${v.provider?.providerName})`
: ""}
</option>
))}
</Select>