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