|
|
@@ -6,6 +6,7 @@ import {
|
|
|
showError,
|
|
|
showSuccess,
|
|
|
showWarning,
|
|
|
+ verifyJSON,
|
|
|
} from '../../../helpers';
|
|
|
import { useTranslation } from 'react-i18next';
|
|
|
|
|
|
@@ -18,6 +19,7 @@ export default function RequestRateLimit(props) {
|
|
|
ModelRequestRateLimitCount: -1,
|
|
|
ModelRequestRateLimitSuccessCount: 1000,
|
|
|
ModelRequestRateLimitDurationMinutes: 1,
|
|
|
+ ModelRequestRateLimitGroup: '',
|
|
|
});
|
|
|
const refForm = useRef();
|
|
|
const [inputsRow, setInputsRow] = useState(inputs);
|
|
|
@@ -46,6 +48,13 @@ export default function RequestRateLimit(props) {
|
|
|
if (res.includes(undefined))
|
|
|
return showError(t('部分保存失败,请重试'));
|
|
|
}
|
|
|
+
|
|
|
+ for (let i = 0; i < res.length; i++) {
|
|
|
+ if (!res[i].data.success) {
|
|
|
+ return showError(res[i].data.message);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
showSuccess(t('保存成功'));
|
|
|
props.refresh();
|
|
|
})
|
|
|
@@ -147,6 +156,41 @@ export default function RequestRateLimit(props) {
|
|
|
/>
|
|
|
</Col>
|
|
|
</Row>
|
|
|
+ <Row>
|
|
|
+ <Col xs={24} sm={16}>
|
|
|
+ <Form.TextArea
|
|
|
+ label={t('分组速率限制')}
|
|
|
+ placeholder={t(
|
|
|
+ '{\n "default": [200, 100],\n "vip": [0, 1000]\n}',
|
|
|
+ )}
|
|
|
+ field={'ModelRequestRateLimitGroup'}
|
|
|
+ autosize={{ minRows: 5, maxRows: 15 }}
|
|
|
+ trigger='blur'
|
|
|
+ stopValidateWithError
|
|
|
+ rules={[
|
|
|
+ {
|
|
|
+ validator: (rule, value) => verifyJSON(value),
|
|
|
+ message: t('不是合法的 JSON 字符串'),
|
|
|
+ },
|
|
|
+ ]}
|
|
|
+ extraText={
|
|
|
+ <div>
|
|
|
+ <p style={{ marginBottom: -15 }}>{t('说明:')}</p>
|
|
|
+ <ul>
|
|
|
+ <li>{t('使用 JSON 对象格式,格式为:{"组名": [最多请求次数, 最多请求完成次数]}')}</li>
|
|
|
+ <li>{t('示例:{"default": [200, 100], "vip": [0, 1000]}。')}</li>
|
|
|
+ <li>{t('[最多请求次数]必须大于等于0,[最多请求完成次数]必须大于等于1。')}</li>
|
|
|
+ <li>{t('分组速率配置优先级高于全局速率限制。')}</li>
|
|
|
+ <li>{t('限制周期统一使用上方配置的“限制周期”值。')}</li>
|
|
|
+ </ul>
|
|
|
+ </div>
|
|
|
+ }
|
|
|
+ onChange={(value) => {
|
|
|
+ setInputs({ ...inputs, ModelRequestRateLimitGroup: value });
|
|
|
+ }}
|
|
|
+ />
|
|
|
+ </Col>
|
|
|
+ </Row>
|
|
|
<Row>
|
|
|
<Button size='default' onClick={onSubmit}>
|
|
|
{t('保存模型速率限制')}
|