LLM-Server: ausführbares Projekt in die Hauptverzeichnisse host/, llm/ und encoding/ aufgeteilt.
Grundkonfiguration des Servers liegt nun unter llm-server/host/ansible/ (vorher llm-server/ansible/), der LLM-Stack-Platzhalter unter llm-server/llm/ und der Encoding-Workload unter llm-server/encoding/. Dokumentation und Pfadverweise (ansible.cfg roles_path, .venv-Tiefe, Markdown-Links) angepasst; Linkvalidator meldet broken_local_links=0. Generated by Mistral Vibe. Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
This commit is contained in:
@@ -46,7 +46,8 @@ Der [Dokumentationsindex](docs/GNAI-000-DOC_Index.md) enthält die datierten Que
|
|||||||
| [Plattform-Dokumentation](docs/platform/README.md) | Hostbasis, Zugriffsmodell, Reverse Proxy und VPN |
|
| [Plattform-Dokumentation](docs/platform/README.md) | Hostbasis, Zugriffsmodell, Reverse Proxy und VPN |
|
||||||
| [KI-Dokumentation](docs/platform/llm-server/ai/README.md) | KI-Zielarchitektur, Ansible-Planung, Modellbewertung und technische `llama.cpp`-Sollkonfiguration |
|
| [KI-Dokumentation](docs/platform/llm-server/ai/README.md) | KI-Zielarchitektur, Ansible-Planung, Modellbewertung und technische `llama.cpp`-Sollkonfiguration |
|
||||||
| [Video-Encoding](docs/platform/llm-server/encoding/GNENC-000-DOC_Index.md) | getrennter Planungs- und späterer SOP-Bereich für den CPU-Encoding-Workload |
|
| [Video-Encoding](docs/platform/llm-server/encoding/GNENC-000-DOC_Index.md) | getrennter Planungs- und späterer SOP-Bereich für den CPU-Encoding-Workload |
|
||||||
| [LLM-Server-Automation](llm-server/ansible/README.md) | Host-Baseline, Podman, Workload-Konten, AMD-GPU-Zugriff und rootless ROCm-Probe |
|
| [LLM-Server-Host-Automation](llm-server/host/ansible/README.md) | Host-Baseline, Podman, Workload-Konten, AMD-GPU-Zugriff und rootless ROCm-Probe |
|
||||||
|
| [Encoding-Automation](llm-server/encoding/ansible/README.md) | CPU-Encoding-Grundzustand für `gn-encoding` auf dem KI-Server |
|
||||||
| [Keycloak-CT-102-Automation](proxmox/lxc/ct-102-keycloak/ansible/README.md) | Inventare, Rollen, Restore- und Produktionsverifikation für CT 102 |
|
| [Keycloak-CT-102-Automation](proxmox/lxc/ct-102-keycloak/ansible/README.md) | Inventare, Rollen, Restore- und Produktionsverifikation für CT 102 |
|
||||||
|
|
||||||
## Arbeiten mit dem Repository
|
## Arbeiten mit dem Repository
|
||||||
|
|||||||
@@ -35,6 +35,7 @@
|
|||||||
| 2026-09-21 | 0.14 | spektr / Codex | Unsloth UD-Q6_K als zweites installiertes 128k-Profil und A/B-Kandidat festgelegt |
|
| 2026-09-21 | 0.14 | spektr / Codex | Unsloth UD-Q6_K als zweites installiertes 128k-Profil und A/B-Kandidat festgelegt |
|
||||||
| 2026-09-21 | 0.15 | spektr / Codex | je Modell ein festes, gegenseitig ausgeschlossenes Quadlet vorgesehen und dynamischen llama.cpp-Router zurückgestellt |
|
| 2026-09-21 | 0.15 | spektr / Codex | je Modell ein festes, gegenseitig ausgeschlossenes Quadlet vorgesehen und dynamischen llama.cpp-Router zurückgestellt |
|
||||||
| 2026-09-21 | 0.16 | spektr / Codex | überholten Phasen- und Dokumentenbacklog konsolidiert, Umsetzungsreihenfolge an GNAI-001 delegiert und privilegierten Runner nach Recovery verschoben |
|
| 2026-09-21 | 0.16 | spektr / Codex | überholten Phasen- und Dokumentenbacklog konsolidiert, Umsetzungsreihenfolge an GNAI-001 delegiert und privilegierten Runner nach Recovery verschoben |
|
||||||
|
| 2026-10-19 | 0.17 | spektr / Mistral Vibe | LLM-Server-Projekt in die fachlichen Hauptverzeichnisse `host/`, `llm/` und `encoding/` aufgeteilt; Abschnitte 6 und 7.4 an die neue Struktur angepasst |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -190,25 +191,34 @@ Laufzeitumgebungen und die zugehörigen Workflows besitzen. Damit verändern
|
|||||||
nicht mehrere unabhängige Deployment-Repositories denselben Host.
|
nicht mehrere unabhängige Deployment-Repositories denselben Host.
|
||||||
|
|
||||||
Die ursprünglich vorgesehene Struktur wurde am 14.10.2026 unter einen eigenen
|
Die ursprünglich vorgesehene Struktur wurde am 14.10.2026 unter einen eigenen
|
||||||
Host-Root verschoben. Innerhalb des LLM-Server-Projekts bleibt die bewährte
|
Host-Root verschoben und am 19.10.2026 fachlich in ein Hauptverzeichnis pro
|
||||||
Ansible-Gliederung erhalten:
|
Aufgabe aufgeteilt (analog zu `docs/platform/llm-server/`):
|
||||||
|
|
||||||
```text
|
```text
|
||||||
llm-server/ansible/
|
llm-server/
|
||||||
├── ansible.cfg
|
├── host/ansible/ # gemeinsame Plattform des physischen Servers
|
||||||
├── collections/
|
│ ├── ansible.cfg
|
||||||
│ └── requirements.yml
|
│ ├── inventories/
|
||||||
├── inventories/
|
│ │ ├── bootstrap/
|
||||||
│ ├── production/
|
│ │ ├── host/
|
||||||
│ └── testing/
|
│ │ └── testing/
|
||||||
├── playbooks/
|
│ ├── playbooks/
|
||||||
│ ├── host.yml
|
│ │ ├── host.yml
|
||||||
│ ├── environment.yml
|
│ │ ├── preflight.yml
|
||||||
│ └── verify.yml
|
│ │ ├── bootstrap-deploy-account.yml
|
||||||
└── roles/
|
│ │ ├── verify-deploy-access.yml
|
||||||
├── host_baseline/
|
│ │ └── verify-rocm-container.yml
|
||||||
├── environment_stack/
|
│ └── roles/
|
||||||
└── weitere_fachrollen/
|
│ ├── host_baseline/
|
||||||
|
│ ├── workload_accounts/
|
||||||
|
│ ├── amd_gpu_access/
|
||||||
|
│ └── rocm_container_probe/
|
||||||
|
├── llm/ # LLM-Stack; entsteht mit dem AI-Vertical-Slice
|
||||||
|
└── encoding/ansible/ # CPU-Encoding-Workload
|
||||||
|
├── playbooks/
|
||||||
|
│ └── video-encoding.yml
|
||||||
|
└── roles/
|
||||||
|
└── video_encoding/
|
||||||
|
|
||||||
.gitea/workflows/
|
.gitea/workflows/
|
||||||
├── validate.yml
|
├── validate.yml
|
||||||
@@ -216,11 +226,12 @@ llm-server/ansible/
|
|||||||
└── deploy-production.yml
|
└── deploy-production.yml
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Innerhalb jedes Projekts bleibt die bewährte Ansible-Gliederung erhalten.
|
||||||
Diese Struktur ist ein Ausgangspunkt und noch keine Festlegung aller Rollen.
|
Diese Struktur ist ein Ausgangspunkt und noch keine Festlegung aller Rollen.
|
||||||
`host.yml` und `environment.yml` sollen gemeinsam den unterstützten
|
`host.yml` und ein künftiges `ai.yml` im `llm/`-Projekt sollen gemeinsam den
|
||||||
Gesamtzustand herstellen. Ansible-Tags können Diagnose und gezielte Wartung
|
unterstützten Gesamtzustand herstellen. Ansible-Tags können Diagnose und
|
||||||
unterstützen, dürfen aber nicht zu ungetesteten alternativen Installationswegen
|
gezielte Wartung unterstützen, dürfen aber nicht zu ungetesteten alternativen
|
||||||
führen.
|
Installationswegen führen.
|
||||||
|
|
||||||
Unveränderte Drittanbieterkomponenten wie `llama.cpp`, LiteLLM oder OpenWebUI
|
Unveränderte Drittanbieterkomponenten wie `llama.cpp`, LiteLLM oder OpenWebUI
|
||||||
erhalten derzeit kein eigenes Repository. Ihre freigegebenen Versionen oder
|
erhalten derzeit kein eigenes Repository. Ihre freigegebenen Versionen oder
|
||||||
@@ -351,22 +362,32 @@ ein allgemeines Hostwartungsfenster kann weiterhin alle Workloads stoppen.
|
|||||||
### 7.4 Vorgesehene Ansible-Abbildung
|
### 7.4 Vorgesehene Ansible-Abbildung
|
||||||
|
|
||||||
Gemeinsame Hostaufgaben und umgebungsspezifische Anwendungsaufgaben werden
|
Gemeinsame Hostaufgaben und umgebungsspezifische Anwendungsaufgaben werden
|
||||||
getrennt:
|
getrennt. Seit dem 19.10.2026 liegt pro fachlicher Aufgabe ein Hauptverzeichnis
|
||||||
|
unter `llm-server/`:
|
||||||
|
|
||||||
```text
|
```text
|
||||||
llm-server/ansible/
|
llm-server/
|
||||||
├── playbooks/
|
├── host/ansible/
|
||||||
│ ├── host.yml
|
│ ├── playbooks/
|
||||||
│ ├── ai.yml
|
│ │ ├── host.yml
|
||||||
│ ├── video-encoding.yml
|
│ │ └── verify-rocm-container.yml
|
||||||
│ └── site.yml
|
│ └── roles/
|
||||||
└── roles/
|
│ ├── host_baseline/
|
||||||
├── host_baseline/
|
│ ├── workload_accounts/
|
||||||
├── podman_runtime/
|
│ └── amd_gpu_access/
|
||||||
├── workload_accounts/
|
├── llm/ansible/ # geplant; entsteht mit dem AI-Vertical-Slice
|
||||||
├── ai_stack/
|
│ ├── playbooks/
|
||||||
├── ai_environment_switch/
|
│ │ ├── ai.yml
|
||||||
└── video_encoding/
|
│ │ └── site.yml
|
||||||
|
│ └── roles/
|
||||||
|
│ ├── ai_stack/
|
||||||
|
│ ├── ai_environment_switch/
|
||||||
|
│ └── llama_cpp/
|
||||||
|
└── encoding/ansible/
|
||||||
|
├── playbooks/
|
||||||
|
│ └── video-encoding.yml
|
||||||
|
└── roles/
|
||||||
|
└── video_encoding/
|
||||||
```
|
```
|
||||||
|
|
||||||
`host.yml` verwaltet gemeinsame Pakete, Treiber, Benutzer und
|
`host.yml` verwaltet gemeinsame Pakete, Treiber, Benutzer und
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
**Titel:** `llama.cpp`-Serving mit ROCm und rootless Podman
|
**Titel:** `llama.cpp`-Serving mit ROCm und rootless Podman
|
||||||
**Stand:** 2026-09-21
|
**Stand:** 2026-09-21
|
||||||
**Status:** Technische Sollkonfiguration für Testing; noch nicht implementiert
|
**Status:** Technische Sollkonfiguration für Testing; noch nicht implementiert
|
||||||
**Referenzen:** [Modellbewertung](GNAI-009-PLAN_Llama-Model-Evaluation.md), [Ansible-Deployment](GNAI-008-PLAN_Ansible-Deployment.md), [Zielarchitektur](GNAI-004-INFRA_Architecture.md), [Ansible-Anleitung](../../../../llm-server/ansible/README.md)
|
**Referenzen:** [Modellbewertung](GNAI-009-PLAN_Llama-Model-Evaluation.md), [Ansible-Deployment](GNAI-008-PLAN_Ansible-Deployment.md), [Zielarchitektur](GNAI-004-INFRA_Architecture.md), [Ansible-Anleitung](../../../../llm-server/host/ansible/README.md)
|
||||||
|
|
||||||
> Dieses Dokument beschreibt den vorgesehenen technischen Sollzustand. Es ist
|
> Dieses Dokument beschreibt den vorgesehenen technischen Sollzustand. Es ist
|
||||||
> keine Betriebs-SOP und kein Nachweis, dass Modell, Quadlet oder Inferenz
|
> keine Betriebs-SOP und kein Nachweis, dass Modell, Quadlet oder Inferenz
|
||||||
|
|||||||
+1
-1
@@ -133,7 +133,7 @@ shared/ansible/
|
|||||||
├── requirements-control.txt
|
├── requirements-control.txt
|
||||||
└── roles/podman_runtime/
|
└── roles/podman_runtime/
|
||||||
|
|
||||||
llm-server/ansible/ # physischer KI-Server, getrennt von CT 102
|
llm-server/host/ansible/ # physischer KI-Server, getrennt von CT 102
|
||||||
```
|
```
|
||||||
|
|
||||||
Eine eigene Ansible Collection wird erst eingeführt, wenn dieselben Rollen in
|
Eine eigene Ansible Collection wird erst eingeführt, wenn dieselben Rollen in
|
||||||
|
|||||||
+13
-5
@@ -1,9 +1,17 @@
|
|||||||
# LLM server `ghostnet-ki`
|
# LLM server `ghostnet-ki`
|
||||||
|
|
||||||
This host root contains executable infrastructure for the physical server at
|
This host root contains the executable infrastructure for the physical server at
|
||||||
`10.0.0.90`. Host-specific Ansible inventories, playbooks and roles live under
|
`10.0.0.90`, split into one main directory per task area:
|
||||||
[`ansible/`](ansible/README.md). Reusable roles that are also consumed by
|
|
||||||
other host projects live under [`../shared/ansible/`](../shared/ansible/).
|
| Directory | Purpose |
|
||||||
|
| --- | --- |
|
||||||
|
| [`host/`](host/README.md) | shared server baseline: Ansible control project, host roles and inventories |
|
||||||
|
| [`llm/`](llm/README.md) | LLM serving stack (created with the internal AI vertical slice) |
|
||||||
|
| [`encoding/`](encoding/README.md) | CPU-based video encoding workload and its Ansible control project |
|
||||||
|
|
||||||
|
Reusable roles that are also consumed by other host projects live under
|
||||||
|
[`../shared/ansible/`](../shared/ansible/).
|
||||||
|
|
||||||
The versioned architecture and operating documentation remains under
|
The versioned architecture and operating documentation remains under
|
||||||
[`../docs/platform/llm-server/`](../docs/platform/llm-server/README.md).
|
[`../docs/platform/llm-server/`](../docs/platform/llm-server/README.md) and
|
||||||
|
mirrors the same task areas (`host/`, `ai/`, `encoding/`).
|
||||||
|
|||||||
@@ -0,0 +1,10 @@
|
|||||||
|
# Host baseline `ghostnet-ki`
|
||||||
|
|
||||||
|
Shared platform configuration of the physical LLM server at `10.0.0.90`:
|
||||||
|
host identity, Podman runtime, locked workload accounts and AMD GPU device
|
||||||
|
access. This area is common to all workloads on the server.
|
||||||
|
|
||||||
|
The executable Ansible control project lives under
|
||||||
|
[`ansible/`](ansible/README.md). The operating documentation for this area is
|
||||||
|
under
|
||||||
|
[`../../docs/platform/llm-server/host/`](../../docs/platform/llm-server/host/).
|
||||||
@@ -1,6 +1,9 @@
|
|||||||
# LLM server Ansible control project
|
# LLM server host Ansible control project
|
||||||
|
|
||||||
This directory contains the reproducible control project for `ghostnet-ki`.
|
This directory contains the reproducible control project for the shared host
|
||||||
|
baseline of `ghostnet-ki`. The LLM-Server host root is split into one main
|
||||||
|
directory per task area: `host/` (this project), `llm/` and `encoding/`; see
|
||||||
|
[../../README.md](../../README.md).
|
||||||
The read-only `playbooks/preflight.yml` verifies the documented host identity
|
The read-only `playbooks/preflight.yml` verifies the documented host identity
|
||||||
and hardware. The shared `playbooks/host.yml` applies the host baseline,
|
and hardware. The shared `playbooks/host.yml` applies the host baseline,
|
||||||
Podman runtime, workload identities and narrowly scoped AMD device access
|
Podman runtime, workload identities and narrowly scoped AMD device access
|
||||||
@@ -33,15 +36,15 @@ continuing.
|
|||||||
Run the commands from the host project directory:
|
Run the commands from the host project directory:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd llm-server/ansible
|
cd llm-server/host/ansible
|
||||||
../../.venv/bin/ansible-inventory \
|
../../../.venv/bin/ansible-inventory \
|
||||||
--inventory inventories/testing/hosts.yml \
|
--inventory inventories/testing/hosts.yml \
|
||||||
--graph
|
--graph
|
||||||
../../.venv/bin/ansible-playbook \
|
../../../.venv/bin/ansible-playbook \
|
||||||
--inventory inventories/testing/hosts.yml \
|
--inventory inventories/testing/hosts.yml \
|
||||||
playbooks/preflight.yml \
|
playbooks/preflight.yml \
|
||||||
--syntax-check
|
--syntax-check
|
||||||
../../.venv/bin/ansible-playbook \
|
../../../.venv/bin/ansible-playbook \
|
||||||
--inventory inventories/testing/hosts.yml \
|
--inventory inventories/testing/hosts.yml \
|
||||||
playbooks/preflight.yml
|
playbooks/preflight.yml
|
||||||
```
|
```
|
||||||
@@ -85,12 +88,12 @@ nevertheless grant root-equivalent deployment access; rotate it when moving the
|
|||||||
deployment identity to the runner or after any suspected disclosure.
|
deployment identity to the runner or after any suspected disclosure.
|
||||||
|
|
||||||
Load the existing personal administrator key into an SSH agent, then run the
|
Load the existing personal administrator key into an SSH agent, then run the
|
||||||
bootstrap interactively from `llm-server/ansible/`. Ansible will ask for the
|
bootstrap interactively from `llm-server/host/ansible/`. Ansible will ask for
|
||||||
personal administrator's existing sudo password:
|
the personal administrator's existing sudo password:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
ssh-add /path/to/personal-ghost-private-key
|
ssh-add /path/to/personal-ghost-private-key
|
||||||
../../.venv/bin/ansible-playbook \
|
../../../.venv/bin/ansible-playbook \
|
||||||
--inventory inventories/bootstrap/hosts.yml \
|
--inventory inventories/bootstrap/hosts.yml \
|
||||||
playbooks/bootstrap-deploy-account.yml \
|
playbooks/bootstrap-deploy-account.yml \
|
||||||
--ask-become-pass
|
--ask-become-pass
|
||||||
@@ -103,7 +106,7 @@ changes.
|
|||||||
After a successful bootstrap, verify the new account independently:
|
After a successful bootstrap, verify the new account independently:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
../../.venv/bin/ansible-playbook \
|
../../../.venv/bin/ansible-playbook \
|
||||||
--inventory inventories/host/hosts.yml \
|
--inventory inventories/host/hosts.yml \
|
||||||
playbooks/verify-deploy-access.yml \
|
playbooks/verify-deploy-access.yml \
|
||||||
--extra-vars ansible_user=ansible-deploy \
|
--extra-vars ansible_user=ansible-deploy \
|
||||||
@@ -129,18 +132,18 @@ It does not install software or start services. Use the dedicated host
|
|||||||
inventory and supply the private deployment key outside the repository:
|
inventory and supply the private deployment key outside the repository:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
../../.venv/bin/ansible-playbook \
|
../../../.venv/bin/ansible-playbook \
|
||||||
--inventory inventories/host/hosts.yml \
|
--inventory inventories/host/hosts.yml \
|
||||||
playbooks/host.yml \
|
playbooks/host.yml \
|
||||||
--syntax-check
|
--syntax-check
|
||||||
|
|
||||||
../../.venv/bin/ansible-playbook \
|
../../../.venv/bin/ansible-playbook \
|
||||||
--inventory inventories/host/hosts.yml \
|
--inventory inventories/host/hosts.yml \
|
||||||
playbooks/host.yml \
|
playbooks/host.yml \
|
||||||
--check --diff \
|
--check --diff \
|
||||||
--private-key ~/.ssh/id_ed25519_ghostnet_ai_ansible_deploy
|
--private-key ~/.ssh/id_ed25519_ghostnet_ai_ansible_deploy
|
||||||
|
|
||||||
../../.venv/bin/ansible-playbook \
|
../../../.venv/bin/ansible-playbook \
|
||||||
--inventory inventories/host/hosts.yml \
|
--inventory inventories/host/hosts.yml \
|
||||||
playbooks/host.yml \
|
playbooks/host.yml \
|
||||||
--private-key ~/.ssh/id_ed25519_ghostnet_ai_ansible_deploy
|
--private-key ~/.ssh/id_ed25519_ghostnet_ai_ansible_deploy
|
||||||
@@ -211,21 +214,21 @@ It passes `/dev/kfd` and both discovered render nodes with
|
|||||||
and `llama-server --list-devices` must expose exactly two ROCm devices. No
|
and `llama-server --list-devices` must expose exactly two ROCm devices. No
|
||||||
architecture override is set.
|
architecture override is set.
|
||||||
|
|
||||||
Run the probe from `llm-server/ansible/`:
|
Run the probe from `llm-server/host/ansible/`:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
../../.venv/bin/ansible-playbook \
|
../../../.venv/bin/ansible-playbook \
|
||||||
--inventory inventories/host/hosts.yml \
|
--inventory inventories/host/hosts.yml \
|
||||||
playbooks/verify-rocm-container.yml \
|
playbooks/verify-rocm-container.yml \
|
||||||
--syntax-check
|
--syntax-check
|
||||||
|
|
||||||
../../.venv/bin/ansible-playbook \
|
../../../.venv/bin/ansible-playbook \
|
||||||
--inventory inventories/host/hosts.yml \
|
--inventory inventories/host/hosts.yml \
|
||||||
playbooks/verify-rocm-container.yml \
|
playbooks/verify-rocm-container.yml \
|
||||||
--check \
|
--check \
|
||||||
--private-key ~/.ssh/id_ed25519_ghostnet_ai_ansible_deploy
|
--private-key ~/.ssh/id_ed25519_ghostnet_ai_ansible_deploy
|
||||||
|
|
||||||
../../.venv/bin/ansible-playbook \
|
../../../.venv/bin/ansible-playbook \
|
||||||
--inventory inventories/host/hosts.yml \
|
--inventory inventories/host/hosts.yml \
|
||||||
playbooks/verify-rocm-container.yml \
|
playbooks/verify-rocm-container.yml \
|
||||||
--private-key ~/.ssh/id_ed25519_ghostnet_ai_ansible_deploy
|
--private-key ~/.ssh/id_ed25519_ghostnet_ai_ansible_deploy
|
||||||
@@ -4,7 +4,7 @@ host_key_checking = True
|
|||||||
interpreter_python = auto_silent
|
interpreter_python = auto_silent
|
||||||
local_tmp = .ansible/tmp
|
local_tmp = .ansible/tmp
|
||||||
retry_files_enabled = False
|
retry_files_enabled = False
|
||||||
roles_path = roles:../../shared/ansible/roles
|
roles_path = roles:../../../shared/ansible/roles
|
||||||
timeout = 15
|
timeout = 15
|
||||||
|
|
||||||
[ssh_connection]
|
[ssh_connection]
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
# LLM serving stack
|
||||||
|
|
||||||
|
This directory will hold the executable infrastructure for the LLM serving
|
||||||
|
stack on `ghostnet-ki`: rootless `llama.cpp` with ROCm, separated into
|
||||||
|
Production and Testing environments.
|
||||||
|
|
||||||
|
It is created with the internal LLM vertical slice (roadmap milestone 2 in
|
||||||
|
[GNAI-001](../../docs/GNAI-001-PLAN_Project-Roadmap.md)). The planned
|
||||||
|
architecture, deployment and serving configuration are documented under
|
||||||
|
[`../../docs/platform/llm-server/ai/`](../../docs/platform/llm-server/ai/README.md).
|
||||||
Reference in New Issue
Block a user