[Container] ContainerName=llamacpp-embedding Image=localhost/llamacpp:vulkan-amd64 Network=internal.network PublishPort=8091:8091 # Stessa cartella modelli del container chat Volume=/srv/containers/aitools/models/hf:/root/.cache/huggingface/hub # ROCm / Vulkan — stessa GPU del container chat AddDevice=/dev/dri/renderD128 PodmanArgs=--group-add=keep-groups --ipc=host SecurityLabelType=container_runtime_t # Porta dedicata all'embedding Environment=LLAMA_ARG_HOST=0.0.0.0 Environment=LLAMA_ARG_PORT=8091 # Modello di embedding leggero (~274MB Q8), multilingua (funziona bene anche in italiano) # Alternativa: BAAI/bge-m3-GGUF per contesti multilingua più pesanti Environment=LLAMA_ARG_HF_REPO=nomic-ai/nomic-embed-text-v1.5-GGUF:Q6_K # Flag fondamentale: avvia llama-server in modalità embedding-only Environment=LLAMA_ARG_EMBEDDING=true Environment=LLAMA_ARG_NO_MMAP=true # Contesto ridotto: gli embedding non hanno bisogno di 128k token Environment=LLAMA_ARG_CTX_SIZE=8192 # HF Environment=HF_HOME=/root/.cache/huggingface Environment=HF_TOKEN=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 # API Key — protezione accesso al server (da impostare anche in Odoo > AI > Embedding API Key) # Può essere diversa da quella del container chat # Decommentare per abilitare l'autenticazione #Environment=LLAMA_API_KEY=la-tua-chiave-segreta # Model alias — nome con cui il server risponde alle richieste (campo "model" nell'API) # Deve corrispondere al valore impostato in Odoo > AI > Embedding Model Name #Environment=LLAMA_ARG_ALIAS=nomic-embed-text-v1.5 [Service] Restart=on-failure # Avvio veloce: il modello è piccolo TimeoutStartSec=3m [Install] WantedBy=multi-user.target default.target