Spaces:
Sleeping
Sleeping
from typing import List, Dict, Any | |
from app.image_utils import format_image_url | |
import logging | |
# 配置日志 | |
logging.basicConfig(level=logging.INFO, format='%(asctime)s %(levelname)s %(message)s') | |
logger = logging.getLogger(__name__) | |
class GradioFormatter: | |
"""贴纸格式化类,处理贴纸数据的格式化逻辑""" | |
def format_all_stickers(results: List[Dict[str, Any]]) -> List[List]: | |
"""格式化所有贴纸,用于Gradio UI显示""" | |
formatted_results = [] | |
for record in results: | |
logger.info(f"格式化所有贴纸,用于Gradio UI显示: {record}") | |
image_url = format_image_url(record['file_name']) | |
formatted_results.append([ | |
str(record['id']), | |
f"", | |
record.get('title', ''), | |
record['description'], | |
", ".join(record['tags']) if isinstance(record['tags'], list) else record['tags'], | |
record['file_name'], | |
record['image_hash'] if 'image_hash' in record else '' | |
]) | |
return formatted_results | |
def format_search_results(results: List[Dict[str, Any]]) -> List[List]: | |
"""格式化搜索结果,用于Gradio UI显示""" | |
formatted_results = [] | |
logger.info(f"Formatting search results: {len(results)} items") | |
for hit in results: | |
image_url = format_image_url(hit['entity']['file_name']) | |
formatted_results.append([ | |
f"", | |
round(hit['distance'], 4), | |
hit['entity'].get('description', ''), | |
hit['entity'].get('file_name', '') | |
]) | |
return formatted_results | |
def format_ai_search_results(results: List[Dict[str, Any]]) -> List[List]: | |
"""格式化 AI 搜索结果,用于Gradio UI显示""" | |
formatted_results = [] | |
logger.info(f"Formatting AI search results: {len(results)} items") | |
for hit in results: | |
image_url = format_image_url(hit['entity']['file_name']) | |
formatted_results.append([ | |
f"", | |
hit['entity'].get('score', ''), | |
hit['entity'].get('reason', ''), | |
hit['entity'].get('description', ''), | |
hit['entity'].get('file_name', '') | |
]) | |
return formatted_results | |
# 创建格式化器实例 | |
gradio_formatter = GradioFormatter() |