feat: 支持配置渠道被禁用后是否清空渠道粘性 (#5306)
* fix: evict stale channel affinity * feat: configure disabled channel affinity retention --------- Co-authored-by: Seefs <i@seefs.me>
This commit is contained in:
Vendored
+2
@@ -1197,6 +1197,7 @@
|
||||
"套餐的基本信息和定价": "Basic plan info and pricing",
|
||||
"如:大带宽批量分析图片推荐": "e.g. Large bandwidth batch analysis of image recommendations",
|
||||
"如:香港线路": "e.g. Hong Kong line",
|
||||
"开启后,亲和到的渠道被禁用,或不再适用于当前分组/模型时,仍保留这条亲和;关闭时会删除并重新选择渠道。": "When enabled, keep the affinity entry even if the affinity channel is disabled or no longer usable for the current group/model. When disabled, the entry will be deleted and another channel will be selected.",
|
||||
"如果亲和到的渠道失败,重试到其他渠道成功后,将亲和更新到成功的渠道。": "If the affinity channel fails, after a successful retry on another channel, the affinity will be updated to the successful channel.",
|
||||
"如果你对接的是上游One API或者New API等转发项目,请使用OpenAI类型,不要使用此类型,除非你知道你在做什么。": "If you are connecting to upstream One API or New API forwarding projects, please use OpenAI type. Do not use this type unless you know what you are doing.",
|
||||
"如果用户请求中包含系统提示词,则使用此设置拼接到用户的系统提示词前面": "If the user request contains a system prompt, this setting will be appended to the user's system prompt",
|
||||
@@ -1579,6 +1580,7 @@
|
||||
"成功": "Success",
|
||||
"成功兑换额度:": "Successful redemption amount:",
|
||||
"成功后切换亲和": "Switch Affinity on Success",
|
||||
"渠道禁用后保留亲和": "Keep Affinity When Channel Is Disabled",
|
||||
"成功时自动启用通道": "Enable channel when successful",
|
||||
"我已了解禁用两步验证将永久删除所有相关设置和备用码,此操作不可撤销": "I have understood that disabling two-factor authentication will permanently delete all related settings and backup codes, this operation cannot be undone",
|
||||
"我已阅读并同意": "I have read and agree to",
|
||||
|
||||
Vendored
+2
@@ -1193,6 +1193,7 @@
|
||||
"套餐的基本信息和定价": "Informations de base et tarification du plan",
|
||||
"如:大带宽批量分析图片推荐": "par exemple, Recommandations d'analyse d'images par lots à large bande passante",
|
||||
"如:香港线路": "par exemple, Ligne de Hong Kong",
|
||||
"开启后,亲和到的渠道被禁用,或不再适用于当前分组/模型时,仍保留这条亲和;关闭时会删除并重新选择渠道。": "Lorsque cette option est activée, conserver l'entrée d'affinité même si le canal d'affinité est désactivé ou n'est plus utilisable pour le groupe/modèle actuel. Lorsqu'elle est désactivée, l'entrée sera supprimée et un autre canal sera sélectionné.",
|
||||
"如果亲和到的渠道失败,重试到其他渠道成功后,将亲和更新到成功的渠道。": "Si le canal d'affinité échoue, après une nouvelle tentative réussie sur un autre canal, l'affinité sera mise à jour vers le canal réussi.",
|
||||
"如果你对接的是上游One API或者New API等转发项目,请使用OpenAI类型,不要使用此类型,除非你知道你在做什么。": "Si vous vous connectez à des projets de redirection One API ou New API en amont, veuillez utiliser le type OpenAI. N'utilisez pas ce type, sauf si vous savez ce que vous faites.",
|
||||
"如果用户请求中包含系统提示词,则使用此设置拼接到用户的系统提示词前面": "Si la requête de l'utilisateur contient un prompt système, utilisez ce paramètre pour le concaténer avant le prompt système de l'utilisateur",
|
||||
@@ -1584,6 +1585,7 @@
|
||||
"成功": "Succès",
|
||||
"成功兑换额度:": "Montant de l'échange réussi :",
|
||||
"成功后切换亲和": "Changer l'affinité en cas de succès",
|
||||
"渠道禁用后保留亲和": "Conserver l'affinité lorsque le canal est désactivé",
|
||||
"成功时自动启用通道": "Activer le canal en cas de succès",
|
||||
"我已了解禁用两步验证将永久删除所有相关设置和备用码,此操作不可撤销": "J'ai compris que la désactivation de l'authentification à deux facteurs supprimera définitivement tous les paramètres et codes de sauvegarde associés, cette opération ne peut pas être annulée",
|
||||
"我已阅读并同意": "J'ai lu et j'accepte",
|
||||
|
||||
Vendored
+2
@@ -1180,6 +1180,7 @@
|
||||
"套餐的基本信息和定价": "プランの基本情報と価格",
|
||||
"如:大带宽批量分析图片推荐": "例:広帯域での画像一括分析に推奨",
|
||||
"如:香港线路": "例:香港回線",
|
||||
"开启后,亲和到的渠道被禁用,或不再适用于当前分组/模型时,仍保留这条亲和;关闭时会删除并重新选择渠道。": "有効にすると、アフィニティチャネルが無効化された、または現在のグループ/モデルで利用できなくなった場合でも、そのアフィニティエントリを保持します。無効にすると、エントリを削除して別のチャネルを選択します。",
|
||||
"如果亲和到的渠道失败,重试到其他渠道成功后,将亲和更新到成功的渠道。": "アフィニティチャネルが失敗した場合、別のチャネルでリトライが成功すると、アフィニティが成功したチャネルに更新されます。",
|
||||
"如果你对接的是上游One API或者New API等转发项目,请使用OpenAI类型,不要使用此类型,除非你知道你在做什么。": "New APIなどのリレープロジェクトに接続する場合は、OpenAIタイプを利用してください。設定内容を熟知している場合を除き、このタイプは利用しないでください",
|
||||
"如果用户请求中包含系统提示词,则使用此设置拼接到用户的系统提示词前面": "ユーザーリクエストにシステムプロンプトが含まれている場合、この設定内容がユーザーのシステムプロンプトの前に追加されます",
|
||||
@@ -1555,6 +1556,7 @@
|
||||
"成功": "成功",
|
||||
"成功兑换额度:": "引き換え額:",
|
||||
"成功后切换亲和": "成功時にアフィニティを切り替え",
|
||||
"渠道禁用后保留亲和": "チャネル無効時にアフィニティを保持",
|
||||
"成功时自动启用通道": "成功時にチャネルを自動的に有効にする",
|
||||
"我已了解禁用两步验证将永久删除所有相关设置和备用码,此操作不可撤销": "2要素認証を無効にすると、すべての関連設定とバックアップコードが永久に削除され、この操作は元に戻すことができないことを理解しました",
|
||||
"我已阅读并同意": "読んで同意します",
|
||||
|
||||
Vendored
+2
@@ -1201,6 +1201,7 @@
|
||||
"套餐的基本信息和定价": "Основная информация и цена плана",
|
||||
"如:大带宽批量分析图片推荐": "Например: рекомендуется для пакетного анализа изображений с большой пропускной способностью",
|
||||
"如:香港线路": "Например: Гонконгская линия",
|
||||
"开启后,亲和到的渠道被禁用,或不再适用于当前分组/模型时,仍保留这条亲和;关闭时会删除并重新选择渠道。": "Если включено, запись аффинити сохраняется, даже когда канал аффинити отключён или больше не подходит для текущей группы/модели. Если выключено, запись будет удалена и выбран другой канал.",
|
||||
"如果亲和到的渠道失败,重试到其他渠道成功后,将亲和更新到成功的渠道。": "Если канал аффинити не сработал, после успешного повтора на другом канале аффинити будет обновлена на успешный канал.",
|
||||
"如果你对接的是上游One API或者New API等转发项目,请使用OpenAI类型,不要使用此类型,除非你知道你在做什么。": "Если вы интегрируетесь с восходящими проектами пересылки, такими как One API или New API, используйте тип OpenAI, не используйте этот тип, если вы не знаете, что делаете.",
|
||||
"如果用户请求中包含系统提示词,则使用此设置拼接到用户的系统提示词前面": "Если запрос пользователя содержит системный промпт, используйте эту настройку для добавления перед системным промптом пользователя",
|
||||
@@ -1602,6 +1603,7 @@
|
||||
"成功": "Успешно",
|
||||
"成功兑换额度:": "Успешно обменяно квота: ",
|
||||
"成功后切换亲和": "Переключить аффинити при успехе",
|
||||
"渠道禁用后保留亲和": "Сохранять аффинити при отключении канала",
|
||||
"成功时自动启用通道": "Автоматически включать канал при успехе",
|
||||
"我已了解禁用两步验证将永久删除所有相关设置和备用码,此操作不可撤销": "Я понимаю, что отключение двухфакторной аутентификации приведет к постоянному удалению всех связанных настроек и резервных кодов, и эта операция не может быть отменена",
|
||||
"我已阅读并同意": "Я прочитал(а) и согласен(на)",
|
||||
|
||||
Vendored
+2
@@ -1181,6 +1181,7 @@
|
||||
"套餐的基本信息和定价": "Thông tin cơ bản và giá của gói",
|
||||
"如:大带宽批量分析图片推荐": "ví dụ: Phân tích hàng loạt băng thông lớn đề xuất hình ảnh",
|
||||
"如:香港线路": "ví dụ: Tuyến Hồng Kông",
|
||||
"开启后,亲和到的渠道被禁用,或不再适用于当前分组/模型时,仍保留这条亲和;关闭时会删除并重新选择渠道。": "Khi bật, giữ mục ưu ái ngay cả khi kênh ưu ái bị tắt hoặc không còn dùng được cho nhóm/mô hình hiện tại. Khi tắt, mục đó sẽ bị xóa và kênh khác sẽ được chọn.",
|
||||
"如果亲和到的渠道失败,重试到其他渠道成功后,将亲和更新到成功的渠道。": "Nếu kênh ưu ái thất bại, sau khi thử lại thành công trên kênh khác, ưu ái sẽ được cập nhật sang kênh thành công.",
|
||||
"如果你对接的是上游One API或者New API等转发项目,请使用OpenAI类型,不要使用此类型,除非你知道你在做什么。": "Nếu bạn đang kết nối với các dự án chuyển tiếp One API hoặc New API thượng nguồn, vui lòng sử dụng loại OpenAI. Đừng sử dụng loại này trừ khi bạn biết mình đang làm gì.",
|
||||
"如果用户请求中包含系统提示词,则使用此设置拼接到用户的系统提示词前面": "Nếu yêu cầu của người dùng chứa từ nhắc hệ thống, cài đặt này sẽ được nối vào trước từ nhắc hệ thống của người dùng",
|
||||
@@ -1556,6 +1557,7 @@
|
||||
"成功": "Thành công",
|
||||
"成功兑换额度:": "Số tiền đổi thành công:",
|
||||
"成功后切换亲和": "Chuyển ưu ái khi thành công",
|
||||
"渠道禁用后保留亲和": "Giữ ưu ái khi kênh bị tắt",
|
||||
"成功时自动启用通道": "Bật kênh khi thành công",
|
||||
"我已了解禁用两步验证将永久删除所有相关设置和备用码,此操作不可撤销": "Tôi đã hiểu rằng việc vô hiệu hóa xác thực hai yếu tố sẽ xóa vĩnh viễn tất cả các cài đặt liên quan và mã dự phòng, thao tác này không thể hoàn tác",
|
||||
"我已阅读并同意": "Tôi đã đọc và đồng ý với",
|
||||
|
||||
+2
@@ -1170,6 +1170,7 @@
|
||||
"套餐的基本信息和定价": "套餐的基本信息和定价",
|
||||
"如:大带宽批量分析图片推荐": "如:大带宽批量分析图片推荐",
|
||||
"如:香港线路": "如:香港线路",
|
||||
"开启后,亲和到的渠道被禁用,或不再适用于当前分组/模型时,仍保留这条亲和;关闭时会删除并重新选择渠道。": "开启后,亲和到的渠道被禁用,或不再适用于当前分组/模型时,仍保留这条亲和;关闭时会删除并重新选择渠道。",
|
||||
"如果亲和到的渠道失败,重试到其他渠道成功后,将亲和更新到成功的渠道。": "如果亲和到的渠道失败,重试到其他渠道成功后,将亲和更新到成功的渠道。",
|
||||
"如果你对接的是上游One API或者New API等转发项目,请使用OpenAI类型,不要使用此类型,除非你知道你在做什么。": "如果你对接的是上游One API或者New API等转发项目,请使用OpenAI类型,不要使用此类型,除非你知道你在做什么。",
|
||||
"如果用户请求中包含系统提示词,则使用此设置拼接到用户的系统提示词前面": "如果用户请求中包含系统提示词,则使用此设置拼接到用户的系统提示词前面",
|
||||
@@ -1541,6 +1542,7 @@
|
||||
"成功": "成功",
|
||||
"成功兑换额度:": "成功兑换额度:",
|
||||
"成功后切换亲和": "成功后切换亲和",
|
||||
"渠道禁用后保留亲和": "渠道禁用后保留亲和",
|
||||
"成功时自动启用通道": "成功时自动启用通道",
|
||||
"我已了解禁用两步验证将永久删除所有相关设置和备用码,此操作不可撤销": "我已了解禁用两步验证将永久删除所有相关设置和备用码,此操作不可撤销",
|
||||
"我已阅读并同意": "我已阅读并同意",
|
||||
|
||||
+2
@@ -1179,6 +1179,7 @@
|
||||
"套餐的基本信息和定价": "訂閱的基本資訊和定價",
|
||||
"如:大带宽批量分析图片推荐": "如:大頻寬批量分析圖片推薦",
|
||||
"如:香港线路": "如:香港線路",
|
||||
"开启后,亲和到的渠道被禁用,或不再适用于当前分组/模型时,仍保留这条亲和;关闭时会删除并重新选择渠道。": "開啟後,親和到的渠道被停用,或不再適用於目前分組/模型時,仍保留這條親和;關閉時會刪除並重新選擇渠道。",
|
||||
"如果亲和到的渠道失败,重试到其他渠道成功后,将亲和更新到成功的渠道。": "",
|
||||
"如果你对接的是上游One API或者New API等转发项目,请使用OpenAI类型,不要使用此类型,除非你知道你在做什么。": "如果你對接的是上游One API或者New API等轉發項目,請使用OpenAI類型,不要使用此類型,除非你知道你在做什麼。",
|
||||
"如果用户请求中包含系统提示词,则使用此设置拼接到用户的系统提示词前面": "如果使用者請求中包含系統提示詞,則使用此設定拼接到使用者的系統提示詞前面",
|
||||
@@ -1551,6 +1552,7 @@
|
||||
"成功": "成功",
|
||||
"成功兑换额度:": "成功兌換額度:",
|
||||
"成功后切换亲和": "",
|
||||
"渠道禁用后保留亲和": "渠道停用後保留親和",
|
||||
"成功时自动启用通道": "成功時自動啟用通道",
|
||||
"我已了解禁用两步验证将永久删除所有相关设置和备用码,此操作不可撤销": "我已瞭解禁用兩步驗證將永久刪除所有相關設定和備用碼,此操作不可撤銷",
|
||||
"我已阅读并同意": "我已閱讀並同意",
|
||||
|
||||
@@ -62,6 +62,8 @@ import ParamOverrideEditorModal from '../../../components/table/channels/modals/
|
||||
|
||||
const KEY_ENABLED = 'channel_affinity_setting.enabled';
|
||||
const KEY_SWITCH_ON_SUCCESS = 'channel_affinity_setting.switch_on_success';
|
||||
const KEY_KEEP_ON_CHANNEL_DISABLED =
|
||||
'channel_affinity_setting.keep_on_channel_disabled';
|
||||
const KEY_MAX_ENTRIES = 'channel_affinity_setting.max_entries';
|
||||
const KEY_DEFAULT_TTL = 'channel_affinity_setting.default_ttl_seconds';
|
||||
const KEY_RULES = 'channel_affinity_setting.rules';
|
||||
@@ -241,6 +243,7 @@ export default function SettingsChannelAffinity(props) {
|
||||
const [inputs, setInputs] = useState({
|
||||
[KEY_ENABLED]: false,
|
||||
[KEY_SWITCH_ON_SUCCESS]: true,
|
||||
[KEY_KEEP_ON_CHANNEL_DISABLED]: false,
|
||||
[KEY_MAX_ENTRIES]: 100000,
|
||||
[KEY_DEFAULT_TTL]: 3600,
|
||||
[KEY_RULES]: '[]',
|
||||
@@ -858,6 +861,7 @@ export default function SettingsChannelAffinity(props) {
|
||||
![
|
||||
KEY_ENABLED,
|
||||
KEY_SWITCH_ON_SUCCESS,
|
||||
KEY_KEEP_ON_CHANNEL_DISABLED,
|
||||
KEY_MAX_ENTRIES,
|
||||
KEY_DEFAULT_TTL,
|
||||
KEY_RULES,
|
||||
@@ -868,6 +872,8 @@ export default function SettingsChannelAffinity(props) {
|
||||
currentInputs[key] = toBoolean(props.options[key]);
|
||||
else if (key === KEY_SWITCH_ON_SUCCESS)
|
||||
currentInputs[key] = toBoolean(props.options[key]);
|
||||
else if (key === KEY_KEEP_ON_CHANNEL_DISABLED)
|
||||
currentInputs[key] = toBoolean(props.options[key]);
|
||||
else if (key === KEY_MAX_ENTRIES)
|
||||
currentInputs[key] = Number(props.options[key] || 0) || 0;
|
||||
else if (key === KEY_DEFAULT_TTL)
|
||||
@@ -1003,6 +1009,25 @@ export default function SettingsChannelAffinity(props) {
|
||||
)}
|
||||
</Text>
|
||||
</Col>
|
||||
<Col xs={24} sm={12} md={8} lg={8} xl={8}>
|
||||
<Form.Switch
|
||||
field={KEY_KEEP_ON_CHANNEL_DISABLED}
|
||||
label={t('渠道禁用后保留亲和')}
|
||||
checkedText='|'
|
||||
uncheckedText='O'
|
||||
onChange={(value) =>
|
||||
setInputs({
|
||||
...inputs,
|
||||
[KEY_KEEP_ON_CHANNEL_DISABLED]: value,
|
||||
})
|
||||
}
|
||||
/>
|
||||
<Text type='tertiary' size='small'>
|
||||
{t(
|
||||
'开启后,亲和到的渠道被禁用,或不再适用于当前分组/模型时,仍保留这条亲和;关闭时会删除并重新选择渠道。',
|
||||
)}
|
||||
</Text>
|
||||
</Col>
|
||||
</Row>
|
||||
|
||||
<Divider style={{ marginTop: 12, marginBottom: 12 }} />
|
||||
|
||||
Reference in New Issue
Block a user