nix/hosts/open-webui/default.nix

99 lines
2.5 KiB
Nix

{
config,
pkgs,
lib,
...
}:
let
p = import ../parameters.nix;
litellm-port = 12345;
in
{
age.secrets = {
azure-ai.file = ../../secrets/azure-ai.age;
# open-webui-secrets.file = ../../secrets/open-webui-secrets.age;
};
my = {
utils = {
commons.enable = true;
commons.gc.enable = true;
lxc-standard.enable = true;
};
virtualisation.proxmox.enable = true;
};
services.litellm = {
enable = true;
environmentFile = config.age.secrets.azure-ai.path;
host = "0.0.0.0";
openFirewall = true;
port = litellm-port;
settings = {
model_list = [
{
model_name = "azure-gpt-35-turbo";
litellm_params = {
model = "azure/gpt-35-turbo";
api_base = "os.environ/AZURE_API_BASE_OPENAI";
api_key = "os.environ/AZURE_API_KEY_OPENAI";
};
}
{
model_name = "azure-gpt-4o";
litellm_params = {
model = "azure/gpt-4o";
api_base = "os.environ/AZURE_API_BASE_OPENAI";
api_key = "os.environ/AZURE_API_KEY_OPENAI";
};
}
{
model_name = "azure-gpt-4o-mini";
litellm_params = {
model = "azure/gpt-4o-mini";
api_base = "os.environ/AZURE_API_BASE_OPENAI";
api_key = "os.environ/AZURE_API_KEY_OPENAI";
};
}
{
model_name = "azure-gpt-o3-mini";
litellm_params = {
model = "azure/o3-mini";
api_base = "os.environ/AZURE_API_BASE_OPENAI";
api_key = "os.environ/AZURE_API_KEY_OPENAI";
api_version = "2024-12-01-preview";
};
}
{
model_name = "azure-openai-4o-audio";
litellm_params = {
model = "azure/gpt-4o-audio-preview";
api_base = "os.environ/AZURE_API_BASE_OPENAI";
api_key = "os.environ/AZURE_API_KEY_OPENAI";
};
}
{
model_name = "dall-e-3";
litellm_params = {
model = "azure/dall-e-3";
api_base = "os.environ/AZURE_API_BASE_OPENAI";
api_key = "os.environ/AZURE_API_KEY_OPENAI";
};
}
{
model_name = "azure-DeepSeek-R1";
litellm_params = {
model = "azure_ai/DeepSeek-R1";
api_base = "os.environ/AZURE_API_BASE_R1";
api_key = "os.environ/AZURE_API_KEY_R1";
};
}
];
};
};
system.stateVersion = "24.11";
}