in app/app.py [0:0]
def format_history_as_messages(history: list):
messages = []
current_role = None
current_message_content = []
if TEXT_ONLY:
for entry in history:
messages.append({"role": entry["role"], "content": entry["content"]})
return messages
if TEXT_ONLY:
for entry in history:
messages.append({"role": entry["role"], "content": entry["content"]})
return messages
for entry in history:
content = entry["content"]
if entry["role"] != current_role:
if current_role is not None:
messages.append(
{"role": current_role, "content": current_message_content}
)
current_role = entry["role"]
current_message_content = []
if isinstance(content, tuple): # Handle file paths
for temp_path in content:
if space_host := os.getenv("SPACE_HOST"):
url = f"https://{space_host}/gradio_api/file%3D{temp_path}"
else:
url = _convert_path_to_data_uri(temp_path)
current_message_content.append(
{"type": "image_url", "image_url": {"url": url}}
)
elif isinstance(content, str): # Handle text
current_message_content.append({"type": "text", "text": content})
if current_role is not None:
messages.append({"role": current_role, "content": current_message_content})
return messages