Skip to content

Commit 4851b78

Browse files
committed
Merge branch 'main' of github.com-jeffser:Jeffser/Alpaca
2 parents d4f359b + 61d2e7c commit 4851b78

File tree

1 file changed

+27
-1
lines changed

1 file changed

+27
-1
lines changed

src/custom_widgets/model_widget.py

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -415,6 +415,7 @@ def __init__(self):
415415
spacing=12,
416416
orientation=1
417417
)
418+
418419
self.pulling_list = pulling_model_list()
419420
self.append(self.pulling_list)
420421
self.local_list = local_model_list()
@@ -483,11 +484,37 @@ def update_available_list(self):
483484
def change_model(self, model_name:str):
484485
self.model_selector.change_model(model_name)
485486

487+
def has_vision(self, model_name) -> bool:
488+
response = (
489+
window.ollama_instance.request(
490+
"POST", "api/show", json.dumps({"name": model_name})
491+
)
492+
)
493+
494+
if response.status_code != 200:
495+
logger.error(f"Status code was {response.status_code}")
496+
return False
497+
498+
try:
499+
model_info = json.loads(response.text)
500+
logger.debug(f"Vision for {model_name}: {'projector_info' in model_info}")
501+
return 'projector_info' in model_info
502+
except Exception as e:
503+
logger.error(f"Error fetching vision info: {str(e)}")
504+
return False
505+
486506
def verify_if_image_can_be_used(self):
487507
logger.debug("Verifying if image can be used")
488508
selected = self.get_selected_model()
489509
if selected == None:
490510
return False
511+
512+
# first try ollama show API.
513+
if self.has_vision(selected):
514+
return True
515+
516+
# then fall back to the old method.)
517+
491518
selected = selected.split(":")[0]
492519
with open(os.path.join(source_dir, 'available_models.json'), 'r', encoding="utf-8") as f:
493520
if selected in [key for key, value in json.load(f).items() if value["image"]]:
@@ -532,4 +559,3 @@ def pull_model(self, model_name:str, modelfile:str=None):
532559
GLib.idle_add(window.chat_list_box.update_welcome_screens, len(self.get_model_list()) > 0)
533560
if len(list(self.pulling_list)) == 0:
534561
GLib.idle_add(self.pulling_list.set_visible, False)
535-

0 commit comments

Comments
 (0)