File size: 1,450 Bytes
0a9155d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import json
import os
from datetime import datetime

# === Путь к файлу памяти ===
MEMORY_FILE = "core/memory.json"


def load_memory():
    """Загружает контекст предыдущих запросов"""
    if not os.path.exists(MEMORY_FILE):
        return []
    try:
        with open(MEMORY_FILE, "r", encoding="utf-8") as f:
            return json.load(f)
    except Exception:
        return []


def save_memory(memory):
    """Сохраняет обновлённую память"""
    os.makedirs(os.path.dirname(MEMORY_FILE), exist_ok=True)
    with open(MEMORY_FILE, "w", encoding="utf-8") as f:
        json.dump(memory[-10:], f, ensure_ascii=False, indent=2)  # храним только последние 10


def update_memory(prompt, response):
    """Добавляет новый элемент в память"""
    memory = load_memory()
    memory.append({
        "time": datetime.now().strftime("%Y-%m-%d %H:%M:%S"),
        "prompt": prompt,
        "response": response[:300]  # короткий обзор ответа
    })
    save_memory(memory)


def summarize_context():
    """Суммирует контекст (чтобы понять, о чём была беседа)"""
    memory = load_memory()
    if not memory:
        return "Нет контекста"
    topics = [m["prompt"] for m in memory[-5:]]
    return "Контекст беседы: " + "; ".join(topics)