From d63f01f9996d5a18c811377091e8bf386d0da289 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E0=AE=AE=E0=AE=A9=E0=AF=8B=E0=AE=9C=E0=AF=8D=E0=AE=95?= =?UTF-8?q?=E0=AF=81=E0=AE=AE=E0=AE=BE=E0=AE=B0=E0=AF=8D=20=E0=AE=AA?= =?UTF-8?q?=E0=AE=B4=E0=AE=A9=E0=AE=BF=E0=AE=9A=E0=AF=8D=E0=AE=9A=E0=AE=BE?= =?UTF-8?q?=E0=AE=AE=E0=AE=BF?= Date: Thu, 15 Aug 2024 22:37:33 +0530 Subject: [PATCH] check whether the model supports vision Fixes https://github.com/OpenDevin/OpenDevin/issues/3408 --- opendevin/core/message.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/opendevin/core/message.py b/opendevin/core/message.py index ef850bf236b1..03544f88ea64 100644 --- a/opendevin/core/message.py +++ b/opendevin/core/message.py @@ -1,5 +1,6 @@ from enum import Enum +import litellm from pydantic import BaseModel, Field, model_serializer from typing_extensions import Literal @@ -60,8 +61,9 @@ def serialize_model(self) -> dict: if self.role in ['system', 'assistant']: return {'role': self.role, 'content': self.content[0].text} - # TODO: check whether the model supports vision - if 'ollama/' in config.get_llm_config().model: + model = config.get_llm_config().model + supports_vision = litellm.supports_vision(model) + if not supports_vision: text_contents = '\n'.join([item.text for item in self.content]) return {'role': self.role, 'content': text_contents}