FujiwaraChoki/MoneyPrinterV2 · error · RuntimeError
No Ollama model selected. Call select_model() first or pass
Error message
No Ollama model selected. Call select_model() first or pass model_name.
What it means
RuntimeError from llm_provider.generate_text when both the model_name argument and the module-level _selected_model are empty, so there is no Ollama model to send the chat request to. It is a usage/ordering error: select_model() (or an explicit model_name) must precede generation.
Source
Thrown at src/llm_provider.py:54
Returns the currently selected model, or None if none has been selected.
"""
return _selected_model
def generate_text(prompt: str, model_name: str = None) -> str:
"""
Generates text using the local Ollama server.
Args:
prompt (str): User prompt
model_name (str): Optional model name override
Returns:
response (str): Generated text
"""
model = model_name or _selected_model
if not model:
raise RuntimeError(
"No Ollama model selected. Call select_model() first or pass model_name."
)
response = _client().chat(
model=model,
messages=[{"role": "user", "content": prompt}],
)
return response["message"]["content"].strip()
View on GitHub (pinned to 5192af8eca)
Solutions
- Call select_model('llama3') (or your model) once at startup before generate_text
- Or pass model_name explicitly: generate_text(prompt, model_name='llama3')
- Persist/restore the selected model in config so restarts keep it
- Add a startup assertion that _selected_model is set
Example fix
# before
text = generate_text(prompt)
# after
from src import llm_provider
llm_provider.select_model("llama3")
text = llm_provider.generate_text(prompt)
# or
text = llm_provider.generate_text(prompt, model_name="llama3") Defensive patterns
Strategy: validation
Validate before calling
from src import llm_provider
if not (llm_provider._selected_model or explicit_model):
llm_provider.select_model("llama3") Type guard
def has_model_selected() -> bool:
from src import llm_provider
return bool(llm_provider._selected_model) Try / catch
try:
text = llm_provider.generate_text(prompt)
except RuntimeError as e:
if "No Ollama model" in str(e):
llm_provider.select_model("llama3")
text = llm_provider.generate_text(prompt) Prevention
- Call select_model() once during app bootstrap
- Pass model_name explicitly in ad-hoc scripts
- Assert model selection in preflight before batch generation
When it happens
Trigger: Calling generate_text(prompt) without ever calling select_model() earlier in the process, or after _selected_model was reset to None/empty; equally affects callers generate_response and generate_post.
Common situations: New integration forgetting the one-time select_model() bootstrap, model selection step skipped on an error path, or config key for the default model missing so selection silently no-ops.
AI-assisted analysis of FujiwaraChoki/MoneyPrinterV2@5192af8eca (2026-08-28).
Data as JSON: /api/errors/70456f44b29b801c.
Report an issue: GitHub.