zeroclaw, refactor a bit more, add env variables to zeroclaw daemon.
This commit is contained in:
@@ -32,53 +32,65 @@
|
|||||||
zerocode: zerocode
|
zerocode: zerocode
|
||||||
llm_concurrency: "{{ ansible_processor_vcpus / 4 | round(0, method='ceil') | int }}"
|
llm_concurrency: "{{ ansible_processor_vcpus / 4 | round(0, method='ceil') | int }}"
|
||||||
llm_installs: []
|
llm_installs: []
|
||||||
llm_micro_cpu: 1
|
llm_tier0_cpu: 1
|
||||||
llm_micro_ram: 2000
|
llm_tier0_ram: 2000
|
||||||
llm_micro:
|
llm_tier0:
|
||||||
- { "model": "qwen3.5:0.8b", "provider": "qwen_35_0008" }
|
- { "model": "qwen3.5:0.8b", "provider": "qwen_35_0008" }
|
||||||
- { "model": "qwen2.5-coder:0.5b", "provider": "qwen_25_coder_0005" }
|
- { "model": "qwen2.5-coder:0.5b", "provider": "qwen_25_coder_0005" }
|
||||||
- { "model": "qwen2.5-coder:1.5b", "provider": "qwen_25_coder_0015" }
|
- { "model": "qwen2.5-coder:1.5b", "provider": "qwen_25_coder_0015" }
|
||||||
llm_small_cpu: 2
|
llm_tier1_cpu: 2
|
||||||
llm_small_ram: 4000
|
llm_tier1_ram: 4000
|
||||||
llm_small:
|
llm_tier1:
|
||||||
- { "model": "qwen3.5:2b", "provider": "qwen_35_0020" }
|
- { "model": "qwen3.5:2b", "provider": "qwen_35_0020" }
|
||||||
- { "model": "qwen2.5-coder:3b", "provider": "qwen_25_coder_0030" }
|
- { "model": "qwen2.5-coder:3b", "provider": "qwen_25_coder_0030" }
|
||||||
llm_medium_cpu: 4
|
llm_tier2_cpu: 3
|
||||||
llm_medium_ram: 8000
|
llm_tier2_ram: 6000
|
||||||
llm_medium:
|
llm_tier2:
|
||||||
- { "model": "qwen3.5:4b", "provider": "qwen_35_0040" }
|
- { "model": "qwen3.5:4b", "provider": "qwen_35_0040" }
|
||||||
- { "model": "qwen2.5-coder:7b", "provider": "qwen_25_coder_0070" }
|
- { "model": "qwen2.5-coder:7b", "provider": "qwen_25_coder_0070" }
|
||||||
llm_large_cpu: 8
|
llm_tier3_cpu: 4
|
||||||
llm_large_ram: 16000
|
llm_tier3_ram: 8000
|
||||||
llm_large:
|
llm_tier3:
|
||||||
- { "model": "qwen3.5:9b", "provider": "qwen_35_0090" }
|
- { "model": "qwen3.5:9b", "provider": "qwen_35_0090" }
|
||||||
- { "model": "qwen2.5-coder:14b", "provider": "qwen_25_coder_0140" }
|
- { "model": "qwen2.5-coder:14b", "provider": "qwen_25_coder_0140" }
|
||||||
llm_huge_cpu: 12
|
llm_tier4_cpu: 6
|
||||||
llm_huge_ram: 32000
|
llm_tier4_ram: 12000
|
||||||
llm_huge:
|
llm_tier4:
|
||||||
|
llm_tier5_cpu: 8
|
||||||
|
llm_tier5_ram: 16000
|
||||||
|
llm_tier5:
|
||||||
|
llm_tier6_cpu: 10
|
||||||
|
llm_tier6_ram: 30000
|
||||||
|
llm_tier6:
|
||||||
|
#- { "model": "qwen3.8:27b", "provider": "qwen_38_0270" }
|
||||||
|
#- { "model": "qwen3.6:35b", "provider": "qwen_36_0350" }
|
||||||
- { "model": "qwen3.5:35b", "provider": "qwen_35_0350" }
|
- { "model": "qwen3.5:35b", "provider": "qwen_35_0350" }
|
||||||
- { "model": "qwen3-coder:30b", "provider": "qwen_30_coder_0300" }
|
- { "model": "qwen3-coder:30b", "provider": "qwen_30_coder_0300" }
|
||||||
- { "model": "qwen2.5-coder:32b", "provider": "qwen_25_coder_0320" }
|
- { "model": "qwen2.5-coder:32b", "provider": "qwen_25_coder_0320" }
|
||||||
llm_giant_cpu: 18
|
llm_tier7_cpu: 12
|
||||||
llm_giant_ram: 64000
|
llm_tier7_ram: 64000
|
||||||
llm_giant:
|
llm_tier7:
|
||||||
|
llm_tier8_cpu: 32
|
||||||
|
llm_tier8_ram: 320000
|
||||||
|
llm_tier8:
|
||||||
- { "model": "qwen3.5:122b", "provider": "qwen_35_1220" }
|
- { "model": "qwen3.5:122b", "provider": "qwen_35_1220" }
|
||||||
llm_removals:
|
llm_tier9_cpu: 64
|
||||||
# Micro #
|
llm_tier9_ram: 999000
|
||||||
# Small #
|
llm_tier9:
|
||||||
- { "model": "qwen3:4b", "provider": "qwen_30_0040" } # QWEN3 is the most similar to Ask Brave.
|
|
||||||
# Medium #
|
|
||||||
# Large #
|
|
||||||
# Huge #
|
|
||||||
- { "model": "qwen3.5:27b", "provider": "qwen_35_0270" }
|
|
||||||
# Giant #
|
|
||||||
# MEGA #
|
|
||||||
- { "model": "qwen3-coder:420b", "provider": "qwen_30_coder_4200" }
|
- { "model": "qwen3-coder:420b", "provider": "qwen_30_coder_4200" }
|
||||||
|
llm_removals:
|
||||||
|
# tier0 #
|
||||||
|
# tier1 #
|
||||||
|
- { "model": "qwen3:4b", "provider": "qwen_30_0040" }
|
||||||
|
# tier2 #
|
||||||
|
# tier3 #
|
||||||
|
# tier4 #
|
||||||
|
- { "model": "qwen3.6:27b", "provider": "qwen_36_0270" }
|
||||||
|
- { "model": "qwen3.5:27b", "provider": "qwen_35_0270" }
|
||||||
|
# tier5 #
|
||||||
|
# tier9 #
|
||||||
|
|
||||||
##### TBD #####
|
##### TBD #####
|
||||||
#- qwen3.8:27b
|
|
||||||
#- qwen3.6:27b
|
|
||||||
#- qwen3.6:35b
|
|
||||||
### 2.5, does not have "thinking" as an attribute, tempting!
|
### 2.5, does not have "thinking" as an attribute, tempting!
|
||||||
#- qwen2.5:0.5b
|
#- qwen2.5:0.5b
|
||||||
#- qwen2.5:1.5b
|
#- qwen2.5:1.5b
|
||||||
@@ -117,77 +129,125 @@
|
|||||||
ollama_runit_log_script: "{{ ollama_runit_log_dir }}/{{ runit_log_script }}"
|
ollama_runit_log_script: "{{ ollama_runit_log_dir }}/{{ runit_log_script }}"
|
||||||
zeroclaw_runit_log_script: "{{ zeroclaw_runit_log_dir }}/{{ runit_log_script }}"
|
zeroclaw_runit_log_script: "{{ zeroclaw_runit_log_dir }}/{{ runit_log_script }}"
|
||||||
|
|
||||||
- name: Workstation | Linux | Software | ZeroClaw | Facts | Merge | Micro
|
- name: Workstation | Linux | Software | ZeroClaw | Facts | Merge | tier0
|
||||||
ansible.builtin.set_fact:
|
ansible.builtin.set_fact:
|
||||||
llm_installs: "{{ llm_installs + llm_micro }}"
|
llm_installs: "{{ llm_installs + llm_tier0 }}"
|
||||||
when: ansible_processor_vcpus >= llm_micro_cpu
|
when: ansible_processor_vcpus >= llm_tier0_cpu
|
||||||
and ansible_memtotal_mb >= llm_micro_ram
|
and ansible_memtotal_mb >= llm_tier0_ram
|
||||||
|
|
||||||
- name: Workstation | Linux | Software | ZeroClaw | Facts | Merge | Micro | Uninstall
|
- name: Workstation | Linux | Software | ZeroClaw | Facts | Merge | tier0 | Uninstall
|
||||||
ansible.builtin.set_fact:
|
ansible.builtin.set_fact:
|
||||||
llm_removals: "{{ llm_removals + llm_micro }}"
|
llm_removals: "{{ llm_removals + llm_tier0 }}"
|
||||||
when: ansible_processor_vcpus < llm_micro_cpu
|
when: ansible_processor_vcpus < llm_tier0_cpu
|
||||||
or ansible_memtotal_mb < llm_micro_ram
|
or ansible_memtotal_mb < llm_tier0_ram
|
||||||
|
|
||||||
- name: Workstation | Linux | Software | ZeroClaw | Facts | Merge | Small
|
- name: Workstation | Linux | Software | ZeroClaw | Facts | Merge | tier1
|
||||||
ansible.builtin.set_fact:
|
ansible.builtin.set_fact:
|
||||||
llm_installs: "{{ llm_installs + llm_small }}"
|
llm_installs: "{{ llm_installs + llm_tier1 }}"
|
||||||
when: ansible_processor_vcpus >= llm_small_cpu
|
when: ansible_processor_vcpus >= llm_tier1_cpu
|
||||||
and ansible_memtotal_mb >= llm_small_ram
|
and ansible_memtotal_mb >= llm_tier1_ram
|
||||||
|
|
||||||
- name: Workstation | Linux | Software | ZeroClaw | Facts | Merge | Small | Uninstall
|
- name: Workstation | Linux | Software | ZeroClaw | Facts | Merge | tier1 | Uninstall
|
||||||
ansible.builtin.set_fact:
|
ansible.builtin.set_fact:
|
||||||
llm_removals: "{{ llm_removals + llm_small }}"
|
llm_removals: "{{ llm_removals + llm_tier1 }}"
|
||||||
when: ansible_processor_vcpus < llm_small_cpu
|
when: ansible_processor_vcpus < llm_tier1_cpu
|
||||||
or ansible_memtotal_mb < llm_small_ram
|
or ansible_memtotal_mb < llm_tier1_ram
|
||||||
|
|
||||||
- name: Workstation | Linux | Software | ZeroClaw | Facts | Merge | Medium
|
- name: Workstation | Linux | Software | ZeroClaw | Facts | Merge | tier2
|
||||||
ansible.builtin.set_fact:
|
ansible.builtin.set_fact:
|
||||||
llm_installs: "{{ llm_installs + llm_medium }}"
|
llm_installs: "{{ llm_installs + llm_tier2 }}"
|
||||||
when: ansible_processor_vcpus >= llm_medium_cpu
|
when: ansible_processor_vcpus >= llm_tier2_cpu
|
||||||
and ansible_memtotal_mb >= llm_medium_ram
|
and ansible_memtotal_mb >= llm_tier2_ram
|
||||||
|
|
||||||
- name: Workstation | Linux | Software | ZeroClaw | Facts | Merge | Medium | Uninstalls
|
- name: Workstation | Linux | Software | ZeroClaw | Facts | Merge | tier2 | Uninstalls
|
||||||
ansible.builtin.set_fact:
|
ansible.builtin.set_fact:
|
||||||
llm_removals: "{{ llm_removals + llm_medium }}"
|
llm_removals: "{{ llm_removals + llm_tier2 }}"
|
||||||
when: ansible_processor_vcpus < llm_medium_cpu
|
when: ansible_processor_vcpus < llm_tier2_cpu
|
||||||
or ansible_memtotal_mb < llm_medium_ram
|
or ansible_memtotal_mb < llm_tier2_ram
|
||||||
|
|
||||||
- name: Workstation | Linux | Software | ZeroClaw | Facts | Merge | Large
|
- name: Workstation | Linux | Software | ZeroClaw | Facts | Merge | tier3
|
||||||
ansible.builtin.set_fact:
|
ansible.builtin.set_fact:
|
||||||
llm_installs: "{{ llm_installs + llm_large }}"
|
llm_installs: "{{ llm_installs + llm_tier3 }}"
|
||||||
when: ansible_processor_vcpus >= llm_large_cpu
|
when: ansible_processor_vcpus >= llm_tier3_cpu
|
||||||
and ansible_memtotal_mb >= llm_large_ram
|
and ansible_memtotal_mb >= llm_tier3_ram
|
||||||
|
|
||||||
- name: Workstation | Linux | Software | ZeroClaw | Facts | Merge | Large | Uninstalls
|
- name: Workstation | Linux | Software | ZeroClaw | Facts | Merge | tier3 | Uninstalls
|
||||||
ansible.builtin.set_fact:
|
ansible.builtin.set_fact:
|
||||||
llm_removals: "{{ llm_removals + llm_large }}"
|
llm_removals: "{{ llm_removals + llm_tier3 }}"
|
||||||
when: ansible_processor_vcpus < llm_large_cpu
|
when: ansible_processor_vcpus < llm_tier3_cpu
|
||||||
or ansible_memtotal_mb < llm_large_ram
|
or ansible_memtotal_mb < llm_tier3_ram
|
||||||
|
|
||||||
- name: Workstation | Linux | Software | ZeroClaw | Facts | Merge | Huge
|
- name: Workstation | Linux | Software | ZeroClaw | Facts | Merge | tier4
|
||||||
ansible.builtin.set_fact:
|
ansible.builtin.set_fact:
|
||||||
llm_installs: "{{ llm_installs + llm_huge }}"
|
llm_installs: "{{ llm_installs + llm_tier4 }}"
|
||||||
when: ansible_processor_vcpus >= llm_huge_cpu
|
when: ansible_processor_vcpus >= llm_tier4_cpu
|
||||||
and ansible_memtotal_mb >= llm_huge_ram
|
and ansible_memtotal_mb >= llm_tier4_ram
|
||||||
|
|
||||||
- name: Workstation | Linux | Software | ZeroClaw | Facts | Merge | Huge | Uninstalls
|
- name: Workstation | Linux | Software | ZeroClaw | Facts | Merge | tier4 | Uninstalls
|
||||||
ansible.builtin.set_fact:
|
ansible.builtin.set_fact:
|
||||||
llm_removals: "{{ llm_removals + llm_huge }}"
|
llm_removals: "{{ llm_removals + llm_tier4 }}"
|
||||||
when: ansible_processor_vcpus < llm_huge_cpu
|
when: ansible_processor_vcpus < llm_tier4_cpu
|
||||||
or ansible_memtotal_mb < llm_huge_ram
|
or ansible_memtotal_mb < llm_tier4_ram
|
||||||
|
|
||||||
- name: Workstation | Linux | Software | ZeroClaw | Facts | Merge | Giant
|
- name: Workstation | Linux | Software | ZeroClaw | Facts | Merge | tier5
|
||||||
ansible.builtin.set_fact:
|
ansible.builtin.set_fact:
|
||||||
llm_installs: "{{ llm_installs + llm_giant }}"
|
llm_installs: "{{ llm_installs + llm_tier5 }}"
|
||||||
when: ansible_processor_vcpus >= llm_giant_cpu
|
when: ansible_processor_vcpus >= llm_tier5_cpu
|
||||||
and ansible_memtotal_mb >= llm_giant_ram
|
and ansible_memtotal_mb >= llm_tier5_ram
|
||||||
|
|
||||||
- name: Workstation | Linux | Software | ZeroClaw | Facts | Merge | Giant | Uninstalls
|
- name: Workstation | Linux | Software | ZeroClaw | Facts | Merge | tier5 | Uninstalls
|
||||||
ansible.builtin.set_fact:
|
ansible.builtin.set_fact:
|
||||||
llm_removals: "{{ llm_removals + llm_giant }}"
|
llm_removals: "{{ llm_removals + llm_tier5 }}"
|
||||||
when: ansible_processor_vcpus < llm_giant_cpu
|
when: ansible_processor_vcpus < llm_tier5_cpu
|
||||||
or ansible_memtotal_mb < llm_giant_ram
|
or ansible_memtotal_mb < llm_tier5_ram
|
||||||
|
|
||||||
|
- name: Workstation | Linux | Software | ZeroClaw | Facts | Merge | tier6
|
||||||
|
ansible.builtin.set_fact:
|
||||||
|
llm_installs: "{{ llm_installs + llm_tier6 }}"
|
||||||
|
when: ansible_processor_vcpus >= llm_tier6_cpu
|
||||||
|
and ansible_memtotal_mb >= llm_tier6_ram
|
||||||
|
|
||||||
|
- name: Workstation | Linux | Software | ZeroClaw | Facts | Merge | tier6 | Uninstalls
|
||||||
|
ansible.builtin.set_fact:
|
||||||
|
llm_removals: "{{ llm_removals + llm_tier6 }}"
|
||||||
|
when: ansible_processor_vcpus < llm_tier6_cpu
|
||||||
|
or ansible_memtotal_mb < llm_tier6_ram
|
||||||
|
|
||||||
|
- name: Workstation | Linux | Software | ZeroClaw | Facts | Merge | tier7
|
||||||
|
ansible.builtin.set_fact:
|
||||||
|
llm_installs: "{{ llm_installs + llm_tier7 }}"
|
||||||
|
when: ansible_processor_vcpus >= llm_tier7_cpu
|
||||||
|
and ansible_memtotal_mb >= llm_tier7_ram
|
||||||
|
|
||||||
|
- name: Workstation | Linux | Software | ZeroClaw | Facts | Merge | tier7 | Uninstalls
|
||||||
|
ansible.builtin.set_fact:
|
||||||
|
llm_removals: "{{ llm_removals + llm_tier7 }}"
|
||||||
|
when: ansible_processor_vcpus < llm_tier7_cpu
|
||||||
|
or ansible_memtotal_mb < llm_tier7_ram
|
||||||
|
|
||||||
|
- name: Workstation | Linux | Software | ZeroClaw | Facts | Merge | tier8
|
||||||
|
ansible.builtin.set_fact:
|
||||||
|
llm_installs: "{{ llm_installs + llm_tier8 }}"
|
||||||
|
when: ansible_processor_vcpus >= llm_tier8_cpu
|
||||||
|
and ansible_memtotal_mb >= llm_tier8_ram
|
||||||
|
|
||||||
|
- name: Workstation | Linux | Software | ZeroClaw | Facts | Merge | tier8 | Uninstalls
|
||||||
|
ansible.builtin.set_fact:
|
||||||
|
llm_removals: "{{ llm_removals + llm_tier8 }}"
|
||||||
|
when: ansible_processor_vcpus < llm_tier8_cpu
|
||||||
|
or ansible_memtotal_mb < llm_tier8_ram
|
||||||
|
|
||||||
|
- name: Workstation | Linux | Software | ZeroClaw | Facts | Merge | tier9
|
||||||
|
ansible.builtin.set_fact:
|
||||||
|
llm_installs: "{{ llm_installs + llm_tier9 }}"
|
||||||
|
when: ansible_processor_vcpus >= llm_tier9_cpu
|
||||||
|
and ansible_memtotal_mb >= llm_tier9_ram
|
||||||
|
|
||||||
|
- name: Workstation | Linux | Software | ZeroClaw | Facts | Merge | tier9 | Uninstalls
|
||||||
|
ansible.builtin.set_fact:
|
||||||
|
llm_removals: "{{ llm_removals + llm_tier9 }}"
|
||||||
|
when: ansible_processor_vcpus < llm_tier9_cpu
|
||||||
|
or ansible_memtotal_mb < llm_tier9_ram
|
||||||
|
|
||||||
- name: Workstation | Linux | Software | ZeroClaw | Facts | Merge | Print
|
- name: Workstation | Linux | Software | ZeroClaw | Facts | Merge | Print
|
||||||
ansible.builtin.debug:
|
ansible.builtin.debug:
|
||||||
@@ -238,7 +298,7 @@
|
|||||||
# Allow pulling LLMs for use with ZeroClaw.
|
# Allow pulling LLMs for use with ZeroClaw.
|
||||||
exec 2>&1
|
exec 2>&1
|
||||||
export HOME={{ user_user.home }}
|
export HOME={{ user_user.home }}
|
||||||
export OLLAMA_KEEP_ALIVE=1h # default 5m
|
export OLLAMA_KEEP_ALIVE=20m # default 5m
|
||||||
export OLLAMA_REQUEST_TIMEOUT=3600 # default 300 (unconfirmed, not in the list of --help vars)
|
export OLLAMA_REQUEST_TIMEOUT=3600 # default 300 (unconfirmed, not in the list of --help vars)
|
||||||
export OLLAMA_LOAD_TIMEOUT=30m # default is 5m
|
export OLLAMA_LOAD_TIMEOUT=30m # default is 5m
|
||||||
export OLLAMA_MAX_LOADED_MODELS={{ llm_concurrency }} # default is 3 if using CPUs, or 3 * NumGPUs
|
export OLLAMA_MAX_LOADED_MODELS={{ llm_concurrency }} # default is 3 if using CPUs, or 3 * NumGPUs
|
||||||
@@ -292,6 +352,8 @@
|
|||||||
#!/bin/sh -e
|
#!/bin/sh -e
|
||||||
# Allow using the ZeroClaw frontend.
|
# Allow using the ZeroClaw frontend.
|
||||||
exec 2>&1
|
exec 2>&1
|
||||||
|
export HOME={{ user_user.home }}
|
||||||
|
export SHELL={{ bash_exec.stdout }}
|
||||||
exec chpst -u {{ user }} zeroclaw daemon -v --log-level info
|
exec chpst -u {{ user }} zeroclaw daemon -v --log-level info
|
||||||
dest: "{{ zeroclaw_runit_script }}"
|
dest: "{{ zeroclaw_runit_script }}"
|
||||||
mode: "0755"
|
mode: "0755"
|
||||||
@@ -420,7 +482,7 @@
|
|||||||
insertafter: EOF
|
insertafter: EOF
|
||||||
block: |
|
block: |
|
||||||
{% for llm in llm_installs %}
|
{% for llm in llm_installs %}
|
||||||
[providers.models.ollama.ansible_{{ llm.provider }}]
|
[providers.models.ollama.{{ llm.provider }}]
|
||||||
model = "{{ llm.model }}"
|
model = "{{ llm.model }}"
|
||||||
timeout_secs = 3600 # 1 hour, default is 120 (2 minutes), issue happens between 5 and 6 minutes though.
|
timeout_secs = 3600 # 1 hour, default is 120 (2 minutes), issue happens between 5 and 6 minutes though.
|
||||||
context_window = 999999999
|
context_window = 999999999
|
||||||
|
|||||||
Reference in New Issue
Block a user