Support Ollama use: chat|memory and parallel embed beside VL.
Pull nomic-embed-text for Assistent memory, write ollama-roles.json, CPU Modelfile, and raise MAX_LOADED_MODELS/NUM_PARALLEL to 2. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
"""Ollama manifest use: chat|memory parsing."""
|
||||
|
||||
from pathlib import Path
|
||||
|
||||
from gpu_rent.llm_runtime import (
|
||||
MEMORY_EMBED_MODEL,
|
||||
ensure_memory_model_entries,
|
||||
ollama_roles_payload,
|
||||
parse_ollama_models,
|
||||
preferred_ollama_model,
|
||||
write_ollama_models_preset,
|
||||
)
|
||||
|
||||
|
||||
def test_parse_use_chat_and_memory(tmp_path: Path):
|
||||
path = tmp_path / "ollama-models.yaml"
|
||||
path.write_text(
|
||||
"""
|
||||
models:
|
||||
- name: chat-model:7b
|
||||
use: chat
|
||||
default: true
|
||||
- name: nomic-embed-text
|
||||
use: memory
|
||||
""",
|
||||
encoding="utf-8",
|
||||
)
|
||||
entries = parse_ollama_models(path)
|
||||
assert len(entries) == 2
|
||||
assert entries[0].use == "chat" and entries[0].default
|
||||
assert entries[1].use == "memory" and not entries[1].default
|
||||
assert preferred_ollama_model(path) == "chat-model:7b"
|
||||
roles = ollama_roles_payload(entries)
|
||||
assert roles["chat"] == ["chat-model:7b"]
|
||||
assert roles["memory"] == ["nomic-embed-text"]
|
||||
|
||||
|
||||
def test_ensure_memory_appended():
|
||||
from gpu_rent.llm_runtime import OllamaModelEntry
|
||||
|
||||
entries = [OllamaModelEntry(name="vl:7b", default=True, use="chat")]
|
||||
out = ensure_memory_model_entries(entries)
|
||||
assert any(e.use == "memory" and e.name == MEMORY_EMBED_MODEL for e in out)
|
||||
|
||||
|
||||
def test_write_preset_includes_memory(tmp_path: Path):
|
||||
path = tmp_path / "m.yaml"
|
||||
write_ollama_models_preset(path, "recommended")
|
||||
text = path.read_text(encoding="utf-8")
|
||||
assert "use: chat" in text
|
||||
assert "use: memory" in text
|
||||
assert MEMORY_EMBED_MODEL in text
|
||||
entries = parse_ollama_models(path)
|
||||
assert preferred_ollama_model(path) is not None
|
||||
assert preferred_ollama_model(path) != MEMORY_EMBED_MODEL
|
||||
@@ -34,8 +34,8 @@ def test_ollama_high_reserves_vram_for_swarm():
|
||||
)
|
||||
tune = ollama_tune_for(info)
|
||||
assert tune.flash_attention
|
||||
assert tune.num_parallel == 1
|
||||
assert tune.max_loaded_models == 1
|
||||
assert tune.num_parallel == 2
|
||||
assert tune.max_loaded_models == 2
|
||||
assert tune.kv_cache_type == "q8_0"
|
||||
assert tune.gpu_overhead_bytes == 14 * 1024**3
|
||||
env = "\n".join(ollama_env_lines(tune))
|
||||
|
||||
Reference in New Issue
Block a user