New version.
This commit is contained in:
		
							parent
							
								
									03110b4a80
								
							
						
					
					
						commit
						0b61e1c0cf
					
				| @ -367,45 +367,8 @@ class Agent: | |||||||
|      |      | ||||||
|         return re.findall(image_url_pattern, text, re.IGNORECASE) |         return re.findall(image_url_pattern, text, re.IGNORECASE) | ||||||
| 
 | 
 | ||||||
|     def communicate_images(self, message:str): |     def communicate(self, message: str, role: str = "user"): | ||||||
|         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): |  | ||||||
|         log.debug(f"Sending message: {message} to assistant {self.assistant.id} in thread {self.thread.id}.") |         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] |         messages = isinstance(message, list) and message or [message] | ||||||
|         for message in messages: |         for message in messages: | ||||||
|             if isinstance(message, dict): |             if isinstance(message, dict): | ||||||
| @ -413,6 +376,18 @@ class Agent: | |||||||
|                 message = message["content"] |                 message = message["content"] | ||||||
|             else: |             else: | ||||||
|                 message_role = role |                 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( |             self.client.beta.threads.messages.create( | ||||||
|                 thread_id=self.thread.id, |                 thread_id=self.thread.id, | ||||||
|                 role=message_role, |                 role=message_role, | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user