import React from "react";
|
import {
|
BooleanInput,
|
NumberInput,
|
SelectInput,
|
TextInput,
|
} from "react-admin";
|
import { Grid, Typography } from "@mui/material";
|
import StatusSelectInput from "@/page/components/StatusSelectInput";
|
|
const providerChoices = [
|
{ id: "OPENAI_COMPATIBLE", name: "OPENAI_COMPATIBLE" },
|
];
|
|
const AiParamForm = ({ readOnly = false }) => (
|
<Grid container spacing={2} width={{ xs: "100%", xl: "80%" }}>
|
<Grid item xs={12}>
|
<Typography variant="h6">主要配置</Typography>
|
</Grid>
|
<Grid item xs={12} md={6}>
|
<TextInput source="name" label="名称" fullWidth disabled={readOnly} />
|
</Grid>
|
<Grid item xs={12} md={6}>
|
<SelectInput source="providerType" label="提供方类型" choices={providerChoices} fullWidth disabled={readOnly} />
|
</Grid>
|
<Grid item xs={12}>
|
<TextInput source="baseUrl" label="Base URL" fullWidth disabled={readOnly} />
|
</Grid>
|
<Grid item xs={12} md={6}>
|
<TextInput source="apiKey" label="API Key" fullWidth disabled={readOnly} />
|
</Grid>
|
<Grid item xs={12} md={6}>
|
<TextInput source="model" label="模型" fullWidth disabled={readOnly} />
|
</Grid>
|
<Grid item xs={12} md={3}>
|
<NumberInput source="temperature" label="Temperature" fullWidth disabled={readOnly} />
|
</Grid>
|
<Grid item xs={12} md={3}>
|
<NumberInput source="topP" label="Top P" fullWidth disabled={readOnly} />
|
</Grid>
|
<Grid item xs={12} md={3}>
|
<NumberInput source="maxTokens" label="Max Tokens" fullWidth disabled={readOnly} />
|
</Grid>
|
<Grid item xs={12} md={3}>
|
<NumberInput source="timeoutMs" label="Timeout(ms)" fullWidth disabled={readOnly} />
|
</Grid>
|
<Grid item xs={12} md={6}>
|
<BooleanInput source="streamingEnabled" label="启用流式响应" disabled={readOnly} />
|
</Grid>
|
<Grid item xs={12} md={6}>
|
<StatusSelectInput disabled={readOnly} />
|
</Grid>
|
<Grid item xs={12}>
|
<TextInput source="memo" label="备注" fullWidth multiline minRows={3} disabled={readOnly} />
|
</Grid>
|
</Grid>
|
);
|
|
export default AiParamForm;
|