Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 3 additions & 8 deletions lars/nepho/models/ollama_model.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ async def chat(self, prompt: str, images: Optional[List[str]] = None) -> str:
raise RuntimeError(f"Failed to pull model {self.model_name}")

# Prepare the request payload
if images and self.supports_vision():
if images:
# For vision models, encode images as base64
images_data = []
for image_path in images:
Expand Down Expand Up @@ -104,20 +104,15 @@ async def chat(self, prompt: str, images: Optional[List[str]] = None) -> str:
raise RuntimeError(f"Ollama API error: {response.status} - {error_text}")

data = await response.json()
if images and self.supports_vision():

if images:
return data.get("response", "No response received")
else:
return data.get("message", {}).get("content", "No response received")

except Exception as e:
raise RuntimeError(f"Error calling Ollama API: {e}")

def supports_vision(self) -> bool:
"""Check if this model supports vision capabilities."""
vision_models = ["llava", "bakllava", "moondream", "minicpm-v", "llava-llama2", "llava-llama3", "llama4:scout"]
return any(vision_model in self.model_name.lower() for vision_model in vision_models)

async def list_available_models(self) -> List[str]:
"""List all available models in Ollama."""
try:
Expand Down
Loading