diff --git a/src/ragent/__init__.py b/src/ragent/__init__.py index 8c8a00e..8418b6d 100644 --- a/src/ragent/__init__.py +++ b/src/ragent/__init__.py @@ -367,45 +367,8 @@ class Agent: return re.findall(image_url_pattern, text, re.IGNORECASE) - def communicate_images(self, message:str): - messages = message - if not isinstance(messages, list): - messages = [message] - - for message in messages: - if isinstance(message, dict): - message_role = message["role"] - message = message["content"] - else: - message_role = "user" - - for image_path in self.extract_image_urls(message): - response = self.client.chat.completions.create( - model="gpt-4o-mini", - messages=[ - { - "role": "user", - "content": [ - {"type": "text", "text": "Describe the image in full detail, in a way that a human could understand."}, - { - "type": "image_url", - "image_url": { - "url": image_path, - }, - }, - ], - } - ], - ) - response = response.choices[0].message.content - response = f"This is the description of the image from the url {image_path} i have mentioned: " + response - self.communicate(response,role="user",ignore_image_urls=True) - - - def communicate(self, message: str, role: str = "user", ignore_image_urls:bool=False): + def communicate(self, message: str, role: str = "user"): log.debug(f"Sending message: {message} to assistant {self.assistant.id} in thread {self.thread.id}.") - if not ignore_image_urls: - self.communicate_images(message) messages = isinstance(message, list) and message or [message] for message in messages: if isinstance(message, dict): @@ -413,6 +376,18 @@ class Agent: message = message["content"] else: message_role = role + message = [ + {"type":"text","text":message} + ] + for image_url in self.extract_image_urls(message[0]["text"]): + message.append( + { + "type": "image_url", + "image_url": { + "url": image_url, + }, + } + ) self.client.beta.threads.messages.create( thread_id=self.thread.id, role=message_role,