85 lines
4.8 KiB
YAML
85 lines
4.8 KiB
YAML
---
|
|
litellm_service_name: litellm-proxy
|
|
litellm_service_user: ubuntu
|
|
litellm_service_group: ubuntu
|
|
litellm_service_home: "/home/{{ litellm_service_user }}"
|
|
litellm_source_repo: "https://github.com/ai-workspace-services/litellm.git"
|
|
litellm_version: "3ad385a8a46988b6a81fe6c0bc22ef58685baa58"
|
|
litellm_debian_11_compat_version: "1.74.9"
|
|
litellm_package_spec: >-
|
|
{{
|
|
lookup('ansible.builtin.env', 'LITELLM_PACKAGE_SPEC')
|
|
| default(
|
|
'litellm[proxy]==' ~ litellm_debian_11_compat_version
|
|
if ansible_facts.distribution == 'Debian' and ansible_facts.distribution_major_version == '11'
|
|
else 'litellm[proxy] @ git+' ~ litellm_source_repo ~ '@' ~ litellm_version,
|
|
true)
|
|
}}
|
|
litellm_python_executable: "{{ lookup('ansible.builtin.env', 'LITELLM_PYTHON_EXECUTABLE') | default('python3', true) }}"
|
|
litellm_pip_executable: "{{ lookup('ansible.builtin.env', 'LITELLM_PIP_EXECUTABLE') | default('', true) }}"
|
|
litellm_listen_host: 127.0.0.1
|
|
litellm_listen_port: 4000
|
|
litellm_config_dir: /etc/litellm
|
|
litellm_config_file: "{{ litellm_config_dir }}/config.yaml"
|
|
litellm_env_file: "{{ litellm_config_dir }}/litellm.env"
|
|
litellm_systemd_unit_path: "/etc/systemd/system/{{ litellm_service_name }}.service"
|
|
|
|
ai_workspace_auth_token: "{{ lookup('ansible.builtin.env', 'AI_WORKSPACE_AUTH_TOKEN') | default('', true) }}"
|
|
litellm_master_key: "{{ lookup('ansible.builtin.env', 'LITELLM_MASTER_KEY') | default(ai_workspace_auth_token, true) }}"
|
|
litellm_salt_key_file: /root/.ai_workspace_litellm_salt_key
|
|
litellm_salt_key: "{{ lookup('ansible.builtin.env', 'LITELLM_SALT_KEY') | default(lookup('password', litellm_salt_key_file ~ ' length=32 chars=ascii_letters,digits'), true) }}"
|
|
|
|
litellm_ui_username: "{{ lookup('ansible.builtin.env', 'LITELLM_UI_USERNAME') | default('admin', true) }}"
|
|
litellm_ui_password: "{{ litellm_master_key }}"
|
|
|
|
litellm_caddyfile_path: /etc/caddy/Caddyfile
|
|
litellm_caddy_conf_dir: /etc/caddy/conf.d
|
|
|
|
litellm_basic_auth_username: "{{ litellm_ui_username }}"
|
|
# litellm_basic_auth_password_hash is generated dynamically via tasks
|
|
|
|
litellm_api_domain: api.svc.plus
|
|
litellm_ui_domain: litellm.svc.plus
|
|
litellm_ui_path: /ui
|
|
litellm_api_caddy_fragment_path: "/etc/caddy/conf.d/{{ litellm_api_domain }}.caddy"
|
|
litellm_ui_caddy_fragment_path: "/etc/caddy/conf.d/{{ litellm_ui_domain }}.caddy"
|
|
litellm_caddy_config_enabled: false
|
|
litellm_enable_basic_auth: false
|
|
|
|
# When true, strictly whitelists AI API paths only. When false, proxies all paths (Open Public Access).
|
|
litellm_api_caddy_strict_whitelist: false
|
|
|
|
|
|
# =============================================================================
|
|
# Database Configuration
|
|
# Set litellm_database_host to empty string to disable DB (no UI login).
|
|
# When set, the provision-database task creates the litellm DB + user for you.
|
|
# =============================================================================
|
|
litellm_database_host: "{{ lookup('ansible.builtin.env', 'LITELLM_DATABASE_HOST') | default('127.0.0.1', true) }}"
|
|
litellm_database_port: "{{ lookup('ansible.builtin.env', 'LITELLM_DATABASE_PORT') | default('5432', true) }}"
|
|
litellm_database_sslmode: "{{ lookup('ansible.builtin.env', 'LITELLM_DATABASE_SSLMODE') | default('disable', true) }}"
|
|
litellm_database_provisioner: "{{ lookup('ansible.builtin.env', 'LITELLM_DATABASE_PROVISIONER') | default('docker' if (postgresql_deploy_mode | default('compose')) == 'compose' else 'local', true) }}"
|
|
litellm_database_container_name: "{{ postgresql_container_name | default('ai-workspace-postgres') }}"
|
|
litellm_database_name: litellm
|
|
litellm_database_user: litellm
|
|
litellm_database_password_file: /root/.ai_workspace_litellm_database_password
|
|
litellm_database_password: "{{ lookup('ansible.builtin.env', 'LITELLM_DATABASE_PASSWORD') | default(lookup('password', litellm_database_password_file ~ ' length=32 chars=ascii_letters,digits'), true) }}"
|
|
litellm_database_admin_user: "{{ lookup('ansible.builtin.env', 'LITELLM_DATABASE_ADMIN_USER') | default('postgres', true) }}"
|
|
litellm_database_admin_password: "{{ lookup('ansible.builtin.env', 'LITELLM_DATABASE_ADMIN_PASSWORD') | default('', true) }}"
|
|
|
|
# Build DATABASE_URL from components (used in litellm.env)
|
|
litellm_database_url: "{% if litellm_database_host | trim | length > 0 %}postgresql://{{ litellm_database_user }}:{{ litellm_database_password }}@{{ litellm_database_host }}:{{ litellm_database_port }}/{{ litellm_database_name }}?sslmode={{ litellm_database_sslmode }}{% else %}{% endif %}"
|
|
|
|
# Models are now dynamically managed via DB/UI or user-provided config
|
|
|
|
# =============================================================================
|
|
# Router Settings
|
|
# =============================================================================
|
|
litellm_routing_strategy: "latency-based-routing"
|
|
litellm_enable_pre_call_checks: false
|
|
litellm_retry_after: 60
|
|
litellm_num_retries: 3
|
|
litellm_request_timeout: 600
|
|
litellm_max_parallel_requests: 1000
|
|
litellm_telemetry: false
|