mirror of
https://github.com/BerriAI/litellm.git
synced 2025-04-26 19:24:27 +00:00
Merge pull request #2735 from BerriAI/admin_ui_clearly_show_models
Admin UI clearly show models
This commit is contained in:
commit
ddba16756d
4 changed files with 65 additions and 16 deletions
|
@ -1,10 +1,43 @@
|
||||||
model_list:
|
model_list:
|
||||||
- model_name: azure-gpt-3.5
|
|
||||||
|
- model_name: gpt-3.5-turbo
|
||||||
litellm_params:
|
litellm_params:
|
||||||
model: azure/chatgpt-v-2
|
model: azure/chatgpt-v-2
|
||||||
api_base: os.environ/AZURE_API_BASE
|
api_base: https://openai-gpt-4-test-v-1.openai.azure.com/
|
||||||
|
api_version: "2023-05-15"
|
||||||
|
api_key: os.environ/AZURE_API_KEY # The `os.environ/` prefix tells litellm to read this from the env. See https://docs.litellm.ai/docs/simple_proxy#load-api-keys-from-vault
|
||||||
|
- model_name: gpt-3.5-turbo-large
|
||||||
|
litellm_params:
|
||||||
|
model: "gpt-3.5-turbo-1106"
|
||||||
|
api_key: os.environ/OPENAI_API_KEY
|
||||||
|
- model_name: gpt-4
|
||||||
|
litellm_params:
|
||||||
|
model: azure/chatgpt-v-2
|
||||||
|
api_base: https://openai-gpt-4-test-v-1.openai.azure.com/
|
||||||
|
api_version: "2023-05-15"
|
||||||
|
api_key: os.environ/AZURE_API_KEY # The `os.environ/` prefix tells litellm to read this from the env. See https://docs.litellm.ai/docs/simple_proxy#load-api-keys-from-vault
|
||||||
|
- model_name: sagemaker-completion-model
|
||||||
|
litellm_params:
|
||||||
|
model: sagemaker/berri-benchmarking-Llama-2-70b-chat-hf-4
|
||||||
|
input_cost_per_second: 0.000420
|
||||||
|
- model_name: text-embedding-ada-002
|
||||||
|
litellm_params:
|
||||||
|
model: azure/azure-embedding-model
|
||||||
api_key: os.environ/AZURE_API_KEY
|
api_key: os.environ/AZURE_API_KEY
|
||||||
api_version: "2023-07-01-preview"
|
api_base: https://openai-gpt-4-test-v-1.openai.azure.com/
|
||||||
|
api_version: "2023-05-15"
|
||||||
|
model_info:
|
||||||
|
mode: embedding
|
||||||
|
base_model: text-embedding-ada-002
|
||||||
|
- model_name: dall-e-2
|
||||||
|
litellm_params:
|
||||||
|
model: azure/
|
||||||
|
api_version: 2023-06-01-preview
|
||||||
|
api_base: https://openai-gpt-4-test-v-1.openai.azure.com/
|
||||||
|
api_key: os.environ/AZURE_API_KEY
|
||||||
|
- model_name: openai-dall-e-3
|
||||||
|
litellm_params:
|
||||||
|
model: dall-e-3
|
||||||
- model_name: fake-openai-endpoint
|
- model_name: fake-openai-endpoint
|
||||||
litellm_params:
|
litellm_params:
|
||||||
model: openai/fake
|
model: openai/fake
|
||||||
|
|
|
@ -5315,8 +5315,6 @@ async def user_info(
|
||||||
except:
|
except:
|
||||||
# if using pydantic v1
|
# if using pydantic v1
|
||||||
key = key.dict()
|
key = key.dict()
|
||||||
key.pop("token", None)
|
|
||||||
|
|
||||||
if (
|
if (
|
||||||
"team_id" in key
|
"team_id" in key
|
||||||
and key["team_id"] is not None
|
and key["team_id"] is not None
|
||||||
|
|
|
@ -21,6 +21,7 @@ import {
|
||||||
Card,
|
Card,
|
||||||
Icon,
|
Icon,
|
||||||
Button,
|
Button,
|
||||||
|
Badge,
|
||||||
Col,
|
Col,
|
||||||
Text,
|
Text,
|
||||||
Grid,
|
Grid,
|
||||||
|
@ -182,14 +183,22 @@ const Team: React.FC<TeamProps> = ({
|
||||||
<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: "4px", whiteSpace: "pre-wrap", overflow: "hidden" }}>
|
<TableCell style={{ maxWidth: "8-x", whiteSpace: "pre-wrap", overflow: "hidden" }}>
|
||||||
<Text>{JSON.stringify(team["models"] ? team["models"] : [])}</Text>
|
{Array.isArray(team.models) ? (
|
||||||
|
<div style={{ display: "flex", flexDirection: "column" }}>
|
||||||
|
{team.models.map((model: string, index: number) => (
|
||||||
|
<Badge key={index} size={"xs"} className="mb-1" color="blue">
|
||||||
|
{model.length > 30 ? `${model.slice(0, 30)}...` : model}
|
||||||
|
</Badge>
|
||||||
|
))}
|
||||||
|
</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 Limit:{" "}
|
TPM:{" "}
|
||||||
{team.tpm_limit ? team.tpm_limit : "Unlimited"}{" "}
|
{team.tpm_limit ? team.tpm_limit : "Unlimited"}{" "}
|
||||||
<br></br>RPM Limit:{" "}
|
<br></br>RPM:{" "}
|
||||||
{team.rpm_limit ? team.rpm_limit : "Unlimited"}
|
{team.rpm_limit ? team.rpm_limit : "Unlimited"}
|
||||||
</Text>
|
</Text>
|
||||||
</TableCell>
|
</TableCell>
|
||||||
|
|
|
@ -85,9 +85,9 @@ const ViewKeyTable: React.FC<ViewKeyTableProps> = ({
|
||||||
<TableHeaderCell>Key Alias</TableHeaderCell>
|
<TableHeaderCell>Key Alias</TableHeaderCell>
|
||||||
<TableHeaderCell>Secret Key</TableHeaderCell>
|
<TableHeaderCell>Secret Key</TableHeaderCell>
|
||||||
<TableHeaderCell>Spend (USD)</TableHeaderCell>
|
<TableHeaderCell>Spend (USD)</TableHeaderCell>
|
||||||
<TableHeaderCell>Key Budget (USD)</TableHeaderCell>
|
<TableHeaderCell>Budget (USD)</TableHeaderCell>
|
||||||
<TableHeaderCell>Spend Report</TableHeaderCell>
|
<TableHeaderCell>Spend Report</TableHeaderCell>
|
||||||
<TableHeaderCell>Team ID</TableHeaderCell>
|
<TableHeaderCell>Team</TableHeaderCell>
|
||||||
<TableHeaderCell>Metadata</TableHeaderCell>
|
<TableHeaderCell>Metadata</TableHeaderCell>
|
||||||
<TableHeaderCell>Models</TableHeaderCell>
|
<TableHeaderCell>Models</TableHeaderCell>
|
||||||
<TableHeaderCell>TPM / RPM Limits</TableHeaderCell>
|
<TableHeaderCell>TPM / RPM Limits</TableHeaderCell>
|
||||||
|
@ -128,7 +128,7 @@ const ViewKeyTable: React.FC<ViewKeyTableProps> = ({
|
||||||
{item.max_budget != null ? (
|
{item.max_budget != null ? (
|
||||||
<Text>{item.max_budget}</Text>
|
<Text>{item.max_budget}</Text>
|
||||||
) : (
|
) : (
|
||||||
<Text>Unlimited Budget</Text>
|
<Text>Unlimited</Text>
|
||||||
)}
|
)}
|
||||||
</TableCell>
|
</TableCell>
|
||||||
<TableCell style={{ maxWidth: '2px' }}>
|
<TableCell style={{ maxWidth: '2px' }}>
|
||||||
|
@ -147,13 +147,22 @@ const ViewKeyTable: React.FC<ViewKeyTableProps> = ({
|
||||||
<Text>{JSON.stringify(item.metadata).slice(0, 400)}</Text>
|
<Text>{JSON.stringify(item.metadata).slice(0, 400)}</Text>
|
||||||
|
|
||||||
</TableCell>
|
</TableCell>
|
||||||
<TableCell style={{ maxWidth: "4px", whiteSpace: "pre-wrap", overflow: "hidden" }}>
|
|
||||||
<Text>{JSON.stringify(item.models)}</Text>
|
<TableCell style={{ maxWidth: "8-x", whiteSpace: "pre-wrap", overflow: "hidden" }}>
|
||||||
|
{Array.isArray(item.models) ? (
|
||||||
|
<div style={{ display: "flex", flexDirection: "column" }}>
|
||||||
|
{item.models.map((model: string, index: number) => (
|
||||||
|
<Badge key={index} size={"xs"} className="mb-1" color="blue">
|
||||||
|
{model.length > 30 ? `${model.slice(0, 30)}...` : model}
|
||||||
|
</Badge>
|
||||||
|
))}
|
||||||
|
</div>
|
||||||
|
) : null}
|
||||||
</TableCell>
|
</TableCell>
|
||||||
<TableCell style={{ maxWidth: "2px", overflowWrap: "break-word" }}>
|
<TableCell style={{ maxWidth: "2px", overflowWrap: "break-word" }}>
|
||||||
<Text>
|
<Text>
|
||||||
TPM Limit: {item.tpm_limit ? item.tpm_limit : "Unlimited"}{" "}
|
TPM: {item.tpm_limit ? item.tpm_limit : "Unlimited"}{" "}
|
||||||
<br></br> RPM Limit:{" "}
|
<br></br> RPM:{" "}
|
||||||
{item.rpm_limit ? item.rpm_limit : "Unlimited"}
|
{item.rpm_limit ? item.rpm_limit : "Unlimited"}
|
||||||
</Text>
|
</Text>
|
||||||
</TableCell>
|
</TableCell>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue