litellm / scripts /start-local.ps1
fahadbinhussain's picture
Refresh model catalog metadata
99fd212
Raw
History Blame Contribute Delete
1.75 kB
param(
[string]$HostName = '127.0.0.1',
[int]$Port = 4000,
[string]$LiteLlmExe = '',
[switch]$StrictEnv
)
$ErrorActionPreference = 'Stop'
$root = Split-Path -Parent $PSScriptRoot
$template = Join-Path $root 'config\config.yaml'
$rendered = Join-Path $root 'config\local.generated.yaml'
$secrets = Join-Path $root 'config\local.secrets.json'
$liteLlmCommand = @()
if ($LiteLlmExe -and (Test-Path -LiteralPath $LiteLlmExe)) {
$liteLlmCommand = @($LiteLlmExe)
} else {
$pathLiteLlm = Get-Command litellm -ErrorAction SilentlyContinue
if ($pathLiteLlm) {
$liteLlmCommand = @($pathLiteLlm.Source)
} else {
$uvx = Get-Command uvx -ErrorAction SilentlyContinue
if (-not $uvx) {
throw 'LiteLLM is not installed and uvx was not found. Install with: uv tool install litellm'
}
$liteLlmCommand = @($uvx.Source, '--from', 'litellm[proxy]', 'litellm')
}
}
$loadOutput = & (Join-Path $PSScriptRoot 'load-local-secrets.ps1') -SecretsPath $secrets
$loadInfo = $loadOutput | ConvertFrom-Json
Write-Host (@{
secretsPath = $loadInfo.secretsPath
loaded = $loadInfo.loaded
} | ConvertTo-Json)
$renderArgs = @(
(Join-Path $PSScriptRoot 'render-config.py'),
$template,
$rendered,
'--include-legacy-aliases',
'--secrets',
$secrets
)
if ($StrictEnv) {
$renderArgs += '--strict-env'
}
& python @renderArgs
if ($LASTEXITCODE -ne 0) {
throw "render-config.py failed with exit code $LASTEXITCODE"
}
$liteLlmExeResolved = $liteLlmCommand[0]
$liteLlmArgs = @()
if ($liteLlmCommand.Count -gt 1) {
$liteLlmArgs = $liteLlmCommand[1..($liteLlmCommand.Count - 1)]
}
& $liteLlmExeResolved @liteLlmArgs --config $rendered --host $HostName --port $Port