Provision Netron and Lab 1 local assets
This commit is contained in:
@@ -15,10 +15,10 @@
|
||||
- "{{ courseware_tools_dir }}"
|
||||
- "{{ courseware_apps_dir }}"
|
||||
- "{{ courseware_downloads_dir }}"
|
||||
- "{{ courseware_lab1_dir }}"
|
||||
- "{{ courseware_lab2_dir }}"
|
||||
- "{{ courseware_safe_homes_dir }}"
|
||||
- "{{ courseware_transformerlab_home }}"
|
||||
- "{{ courseware_unsloth_home }}"
|
||||
- "{{ courseware_lab1_models_dir }}"
|
||||
- "{{ courseware_ollama_models_dir }}"
|
||||
|
||||
- name: Seed managed ownership markers
|
||||
@@ -27,40 +27,8 @@
|
||||
state: touch
|
||||
mode: "0644"
|
||||
loop:
|
||||
- "{{ courseware_transformerlab_home }}/.courseware-managed"
|
||||
- "{{ courseware_unsloth_home }}/.courseware-managed"
|
||||
|
||||
- name: Check existing TransformerLab path
|
||||
stat:
|
||||
path: "{{ ansible_env.HOME }}/.transformerlab"
|
||||
follow: false
|
||||
register: courseware_transformerlab_link
|
||||
|
||||
- name: Check existing TransformerLab ownership marker
|
||||
stat:
|
||||
path: "{{ ansible_env.HOME }}/.transformerlab/.courseware-managed"
|
||||
register: courseware_transformerlab_marker
|
||||
|
||||
- name: Fail if TransformerLab path is already occupied
|
||||
fail:
|
||||
msg: "{{ ansible_env.HOME }}/.transformerlab already exists and is not managed by this project."
|
||||
when:
|
||||
- courseware_transformerlab_link.stat.exists
|
||||
- >
|
||||
(
|
||||
(not courseware_transformerlab_link.stat.islnk) or
|
||||
(courseware_transformerlab_link.stat.islnk and
|
||||
courseware_transformerlab_link.stat.lnk_source != courseware_transformerlab_home)
|
||||
) and
|
||||
(not courseware_transformerlab_marker.stat.exists)
|
||||
|
||||
- name: Link TransformerLab home into project state
|
||||
file:
|
||||
src: "{{ courseware_transformerlab_home }}"
|
||||
dest: "{{ ansible_env.HOME }}/.transformerlab"
|
||||
state: link
|
||||
force: true
|
||||
|
||||
- name: Check existing Unsloth path
|
||||
stat:
|
||||
path: "{{ ansible_env.HOME }}/.unsloth"
|
||||
|
||||
@@ -0,0 +1,71 @@
|
||||
- name: Ensure Lab 1 model directory exists
|
||||
file:
|
||||
path: "{{ courseware_lab1_models_dir }}"
|
||||
state: directory
|
||||
mode: "0755"
|
||||
|
||||
- name: Check installed Ollama version
|
||||
command:
|
||||
argv:
|
||||
- "{{ courseware_ollama_bin }}"
|
||||
- --version
|
||||
register: courseware_lab1_ollama_version
|
||||
changed_when: false
|
||||
|
||||
- name: Extract installed Ollama semantic version
|
||||
set_fact:
|
||||
courseware_lab1_ollama_semver: >-
|
||||
{{
|
||||
courseware_lab1_ollama_version.stdout
|
||||
| regex_search('[0-9]+\\.[0-9]+\\.[0-9]+')
|
||||
| default('')
|
||||
}}
|
||||
|
||||
- name: Fail when Ollama is too old for Lab 1 logprobs
|
||||
fail:
|
||||
msg: >-
|
||||
Lab 1 requires Ollama {{ courseware_ollama_min_version }} or newer because
|
||||
the confidence visualizer depends on logprob support. Installed version:
|
||||
{{ courseware_lab1_ollama_version.stdout | trim }}.
|
||||
when:
|
||||
- courseware_lab1_ollama_semver | length == 0
|
||||
or not (courseware_lab1_ollama_semver is version(courseware_ollama_min_version, '>='))
|
||||
|
||||
- name: Download mirrored Lab 1 Qwen model
|
||||
get_url:
|
||||
url: "{{ courseware_lab1_qwen_download_url }}"
|
||||
dest: "{{ courseware_lab1_qwen_local_path }}"
|
||||
mode: "0644"
|
||||
|
||||
- name: Download mirrored Lab 1 Llama model
|
||||
get_url:
|
||||
url: "{{ courseware_lab1_llama_download_url }}"
|
||||
dest: "{{ courseware_lab1_llama_local_path }}"
|
||||
mode: "0644"
|
||||
|
||||
- name: Write Lab 1 Ollama Modelfile
|
||||
copy:
|
||||
dest: "{{ courseware_lab1_dir }}/Modelfile.{{ courseware_lab1_qwen_model_alias }}"
|
||||
mode: "0644"
|
||||
content: |
|
||||
FROM {{ courseware_lab1_qwen_local_path }}
|
||||
|
||||
- name: Start Ollama before Lab 1 model registration
|
||||
command:
|
||||
argv:
|
||||
- "{{ courseware_root }}/scripts/service_manager.sh"
|
||||
- start
|
||||
- ollama
|
||||
changed_when: false
|
||||
|
||||
- name: Register Lab 1 Qwen model with Ollama
|
||||
command:
|
||||
argv:
|
||||
- "{{ courseware_ollama_bin }}"
|
||||
- create
|
||||
- "{{ courseware_lab1_qwen_model_alias }}"
|
||||
- -f
|
||||
- "{{ courseware_lab1_dir }}/Modelfile.{{ courseware_lab1_qwen_model_alias }}"
|
||||
environment:
|
||||
OLLAMA_HOST: "{{ courseware_bind_host }}:{{ courseware_ports.ollama }}"
|
||||
OLLAMA_MODELS: "{{ courseware_ollama_models_dir }}"
|
||||
@@ -0,0 +1,30 @@
|
||||
- name: Create Netron virtual environment
|
||||
command:
|
||||
argv:
|
||||
- "{{ courseware_python_bin }}"
|
||||
- -m
|
||||
- venv
|
||||
- "{{ courseware_netron_venv_dir }}"
|
||||
args:
|
||||
creates: "{{ courseware_netron_venv_dir }}/bin/python"
|
||||
|
||||
- name: Upgrade Netron venv tooling
|
||||
command:
|
||||
argv:
|
||||
- "{{ courseware_netron_venv_dir }}/bin/python"
|
||||
- -m
|
||||
- pip
|
||||
- install
|
||||
- --upgrade
|
||||
- pip
|
||||
- setuptools
|
||||
- wheel
|
||||
|
||||
- name: Install Netron server runtime
|
||||
command:
|
||||
argv:
|
||||
- "{{ courseware_netron_venv_dir }}/bin/python"
|
||||
- -m
|
||||
- pip
|
||||
- install
|
||||
- "netron=={{ courseware_netron_version }}"
|
||||
@@ -7,7 +7,7 @@
|
||||
- name: Create Open WebUI virtual environment
|
||||
command:
|
||||
argv:
|
||||
- "{{ courseware_transformerlab_home }}/envs/transformerlab/bin/python"
|
||||
- "{{ courseware_python_bin }}"
|
||||
- -m
|
||||
- venv
|
||||
- "{{ courseware_venvs_dir }}/open-webui"
|
||||
@@ -39,7 +39,7 @@
|
||||
- name: Create Embedding Atlas virtual environment
|
||||
command:
|
||||
argv:
|
||||
- "{{ courseware_transformerlab_home }}/envs/transformerlab/bin/python"
|
||||
- "{{ courseware_python_bin }}"
|
||||
- -m
|
||||
- venv
|
||||
- "{{ courseware_venvs_dir }}/embedding-atlas"
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
{
|
||||
"lab1NetronUrl": "http://{{ courseware_url_host }}:{{ courseware_ports.netron }}",
|
||||
"lab3TerminalUrl": "http://{{ courseware_url_host }}:{{ courseware_ports.wetty }}{{ courseware_wetty_base_path }}"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user