Merge pull request #2807 from BerriAI/litellm_support_all_team_models_as_ui_alias

UI - use all-team-models as an alias
This commit is contained in:
Ishaan Jaff 2024-04-02 17:53:59 -07:00 committed by GitHub
commit 203a91864c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 100 additions and 61 deletions

View file

@ -142,20 +142,32 @@ const CreateKey: React.FC<CreateKeyProps> = ({
placeholder="Select models" placeholder="Select models"
style={{ width: "100%" }} style={{ width: "100%" }}
> >
{team && team.models ? ( <Option key="all-team-models" value="all-team-models">
team.models.map((model: string) => ( All Team Models
<Option key={model} value={model}> </Option>
{model} {team && team.models ? (
</Option> team.models.includes("all-proxy-models") ? (
)) userModels.map((model: string) => (
) : ( (
userModels.map((model: string) => ( <Option key={model} value={model}>
<Option key={model} value={model}> {model}
{model} </Option>
</Option> )
)) ))
)} ) : (
team.models.map((model: string) => (
<Option key={model} value={model}>
{model}
</Option>
))
)
) : (
userModels.map((model: string) => (
<Option key={model} value={model}>
{model}
</Option>
))
)}
</Select> </Select>
</Form.Item> </Form.Item>

View file

@ -116,16 +116,13 @@ const Team: React.FC<TeamProps> = ({
</Form.Item> </Form.Item>
<Form.Item label="Models" name="models"> <Form.Item label="Models" name="models">
<Select2.Option key="all-proxy-models" value="all-proxy-models"> <Select2.Option key="all-proxy-models" value="all-proxy-models">
All Models on Proxy All Proxy Models
</Select2.Option> </Select2.Option>
<Select2 <Select2
mode="multiple" mode="multiple"
placeholder="Select models" placeholder="Select models"
style={{ width: "100%" }} style={{ width: "100%" }}
> >
<Select2.Option key="all-proxy-models" value="all-proxy-models">
All Models on Proxy
</Select2.Option>
{userModels && userModels.map((model) => ( {userModels && userModels.map((model) => (
<Select2.Option key={model} value={model}> <Select2.Option key={model} value={model}>
{model} {model}
@ -359,23 +356,30 @@ const handleEditSubmit = async (formValues: Record<string, any>) => {
<TableCell style={{ maxWidth: "4px", whiteSpace: "pre-wrap", overflow: "hidden" }}> <TableCell style={{ maxWidth: "4px", whiteSpace: "pre-wrap", overflow: "hidden" }}>
{team["max_budget"] ? team["max_budget"] : "No limit"} {team["max_budget"] ? team["max_budget"] : "No limit"}
</TableCell> </TableCell>
<TableCell style={{ maxWidth: "8-x", whiteSpace: "pre-wrap", overflow: "hidden" }}> <TableCell style={{ maxWidth: "8-x", whiteSpace: "pre-wrap", overflow: "hidden" }}>
{Array.isArray(team.models) ? ( {Array.isArray(team.models) ? (
<div style={{ display: "flex", flexDirection: "column" }}> <div style={{ display: "flex", flexDirection: "column" }}>
{team.models.length === 0 ? ( {team.models.length === 0 ? (
<Badge size={"xs"} className="mb-1" color="blue"> <Badge size={"xs"} className="mb-1" color="red">
<Text>all-proxy-models</Text> <Text>All Proxy Models</Text>
</Badge> </Badge>
) : ( ) : (
team.models.map((model: string, index: number) => ( team.models.map((model: string, index: number) => (
model === "all-proxy-models" ? (
<Badge key={index} size={"xs"} className="mb-1" color="red">
<Text>All Proxy Models</Text>
</Badge>
) : (
<Badge key={index} size={"xs"} className="mb-1" color="blue"> <Badge key={index} size={"xs"} className="mb-1" color="blue">
<Text>{model.length > 30 ? `${model.slice(0, 30)}...` : model}</Text> <Text>{model.length > 30 ? `${model.slice(0, 30)}...` : model}</Text>
</Badge> </Badge>
)) )
)} ))
</div> )}
) : null} </div>
) : null}
</TableCell> </TableCell>
<TableCell style={{ maxWidth: "4px", whiteSpace: "pre-wrap", overflow: "hidden" }}> <TableCell style={{ maxWidth: "4px", whiteSpace: "pre-wrap", overflow: "hidden" }}>
<Text> <Text>
TPM:{" "} TPM:{" "}
@ -484,7 +488,7 @@ const handleEditSubmit = async (formValues: Record<string, any>) => {
style={{ width: "100%" }} style={{ width: "100%" }}
> >
<Select2.Option key="all-proxy-models" value="all-proxy-models"> <Select2.Option key="all-proxy-models" value="all-proxy-models">
All Models on Proxy All Proxy Models
</Select2.Option> </Select2.Option>
{userModels.map((model) => ( {userModels.map((model) => (
<Select2.Option key={model} value={model}> <Select2.Option key={model} value={model}>

View file

@ -148,6 +148,9 @@ const ViewKeyTable: React.FC<ViewKeyTableProps> = ({
placeholder="Select models" placeholder="Select models"
style={{ width: "100%" }} style={{ width: "100%" }}
> >
<Option key="all-team-models" value="all-team-models">
All Team Models
</Option>
{selectedTeam && selectedTeam.models ? ( {selectedTeam && selectedTeam.models ? (
selectedTeam.models.map((model: string) => ( selectedTeam.models.map((model: string) => (
<Option key={model} value={model}> <Option key={model} value={model}>
@ -404,34 +407,54 @@ const handleEditSubmit = async (formValues: Record<string, any>) => {
</TableCell> */} </TableCell> */}
<TableCell> <TableCell>
{Array.isArray(item.models) ? ( {Array.isArray(item.models) ? (
<div style={{ display: "flex", flexDirection: "column" }}> <div style={{ display: "flex", flexDirection: "column" }}>
{item.models.length === 0 ? ( {item.models.length === 0 ? (
<> <>
{selectedTeam && selectedTeam.models && selectedTeam.models.length > 0 ? ( {selectedTeam && selectedTeam.models && selectedTeam.models.length > 0 ? (
selectedTeam.models.map((model: string, index: number) => ( selectedTeam.models.map((model: string, index: number) => (
<Badge key={index} size={"xs"} className="mb-1" color="blue"> model === "all-proxy-models" ? (
<Text>{model.length > 30 ? `${model.slice(0, 30)}...` : model}</Text> <Badge key={index} size={"xs"} className="mb-1" color="red">
</Badge> <Text>All Proxy Models</Text>
)) </Badge>
) : ( ) : model === "all-team-models" ? (
// If selected team is None or selected team's models are empty, show all models <Badge key={index} size={"xs"} className="mb-1" color="red">
<Badge size={"xs"} className="mb-1" color="blue"> <Text>All Team Models</Text>
<Text>all-proxy-models</Text> </Badge>
</Badge> ) : (
)} <Badge key={index} size={"xs"} className="mb-1" color="blue">
</> <Text>{model.length > 30 ? `${model.slice(0, 30)}...` : model}</Text>
) : ( </Badge>
item.models.map((model: string, index: number) => ( )
<Badge key={index} size={"xs"} className="mb-1" color="blue"> ))
<Text>{model.length > 30 ? `${model.slice(0, 30)}...` : model}</Text> ) : (
</Badge> // If selected team is None or selected team's models are empty, show all models
)) <Badge size={"xs"} className="mb-1" color="blue">
)} <Text>all-proxy-models</Text>
</div> </Badge>
) : null} )}
</TableCell> </>
) : (
item.models.map((model: string, index: number) => (
model === "all-proxy-models" ? (
<Badge key={index} size={"xs"} className="mb-1" color="red">
<Text>All Proxy Models</Text>
</Badge>
) : model === "all-team-models" ? (
<Badge key={index} size={"xs"} className="mb-1" color="red">
<Text>All Team Models</Text>
</Badge>
) : (
<Badge key={index} size={"xs"} className="mb-1" color="blue">
<Text>{model.length > 30 ? `${model.slice(0, 30)}...` : model}</Text>
</Badge>
)
))
)}
</div>
) : null}
</TableCell>
<TableCell> <TableCell>
<Text> <Text>