/
Alekron
/
Unbeatable_Benchmarking
Обзор
Документация
Войти
/
Alekron
/
Unbeatable_Benchmarking
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
Backend/model_logger.py
59 строк
2 KB
Alekron
Initial Backend
23 ноя 2025, 09:12
23 ноя 2025, 09:12
245fffc
Код
Авторство
О чём код?
import logging import json from datetime import datetime import os class ModelLogger: def __init__(self, log_dir: str = "model_logs"): self.log_dir = log_dir os.makedirs(log_dir, exist_ok=True) self.logger = logging.getLogger('model_interaction') self.logger.setLevel(logging.INFO) log_file = os.path.join(log_dir, f"model_log_{datetime.now().strftime('%Y%m%d_%H%M%S')}.txt") file_handler = logging.FileHandler(log_file, encoding='utf-8') file_handler.setLevel(logging.INFO) formatter = logging.Formatter('%(asctime)s - %(message)s') file_handler.setFormatter(formatter) self.logger.addHandler(file_handler) def log_interaction(self, bank: str, url: str, page_content: str, prompt: str, model_response: str, extracted_data: dict): """Логирует полное взаимодействие с моделью""" log_entry = f""" {'=' * 80} БАНК: {bank} URL: {url} ВРЕМЯ: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')} === СОДЕРЖАНИЕ СТРАНИЦЫ === Длина: {len(page_content)} символов Первые 1000 символов: {page_content[:1000]} ... Последние 500 символов: {page_content[-500:]} === ПРОМПТ ДЛЯ МОДЕЛИ === {prompt} === ОТВЕТ МОДЕЛИ === {model_response} === ИЗВЛЕЧЕННЫЕ ДАННЫЕ === {json.dumps(extracted_data, ensure_ascii=False, indent=2)} {'=' * 80} """ self.logger.info(log_entry) content_filename = os.path.join(self.log_dir, f"page_content_{bank}_{datetime.now().strftime('%H%M%S')}.txt") with open(content_filename, 'w', encoding='utf-8') as f: f.write(f"URL: {url}\n") f.write(f"Bank: {bank}\n") f.write(f"Time: {datetime.now()}\n") f.write("\n=== FULL PAGE CONTENT ===\n") f.write(page_content)