Code_LLM / src /utils /helpers.py
AnatoliiG
split code
42fa16e
def get_clean_text(content):
"""
Извлекает чистый текст из любого формата (str, dict, list).
Поддерживает:
- Простые строки
- Gradio формат: {'text': '...'}
- OpenAI/Zed формат: [{'type': 'text', 'text': '...'}]
"""
if content is None:
return ""
# 1. Если это уже строка — возвращаем как есть
if isinstance(content, str):
return content
# 2. Если это словарь (Gradio 5 или часть OpenAI message)
if isinstance(content, dict):
return content.get("text", "")
# 3. Если это список (Zed, VS Code, OpenAI Vision)
if isinstance(content, list):
text_parts = []
for item in content:
if isinstance(item, str):
text_parts.append(item)
elif isinstance(item, dict):
# Извлекаем 'text' если он есть, иначе игнорируем (например, картинки)
text_parts.append(item.get("text", ""))
else:
text_parts.append(str(item))
return "".join(text_parts)
# 4. Фолбэк для всего остального
return str(content)