Этап 7: долговременная память

- Факты о пользователе в SQLite, в системном промпте с номерами
- Инструменты remember / update_memory / forget, автоматическое запоминание отключается
- Цикл вызова инструментов со стримингом (до 5 кругов), проверка и приведение аргументов
- Откат без инструментов для моделей, которые их не поддерживают, с одним предупреждением
- Действия в журнале, вкладка «Память» в настройках
- Фейковый OpenAI-совместимый сервер для тестов, тесты полного цикла через Assistant

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
mrleo1nid
2026-09-17 04:27:16 +03:00
co-authored by Claude Opus 5
parent 542389c0f9
commit 84d8aaa848
18 changed files with 1168 additions and 37 deletions
+11
View File
@@ -5,9 +5,20 @@ import pytest
# Окна в тестах не показываем
os.environ.setdefault("QT_QPA_PLATFORM", "offscreen")
from collections.abc import Iterator # noqa: E402
from PySide6.QtWidgets import QApplication # noqa: E402
from tests.fake_llm import FakeLLMServer # noqa: E402
@pytest.fixture(scope="session")
def qapp() -> QApplication:
return QApplication.instance() or QApplication([])
@pytest.fixture
def fake_llm() -> Iterator[FakeLLMServer]:
server = FakeLLMServer()
yield server
server.close()