- PySide6: значок в трее с индикацией состояния, окно чата со стримингом и markdown
- Единый OpenAI-совместимый клиент (Ollama, LM Studio, OpenRouter)
- config.yaml с автосозданием, слиянием с умолчаниями и подстановкой ${ENV}
- Тесты конфига и сборки сообщений
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
20 lines
644 B
Python
20 lines
644 B
Python
from agr_assistent.core.assistant import build_messages
|
|
|
|
|
|
def _history(count: int) -> list[dict[str, str]]:
|
|
return [{"role": "user", "content": str(i)} for i in range(count)]
|
|
|
|
|
|
def test_build_messages_adds_system_prompt_and_trims_history() -> None:
|
|
messages = build_messages(" be nice ", _history(5), max_history_messages=2)
|
|
|
|
assert messages == [
|
|
{"role": "system", "content": "be nice"},
|
|
{"role": "user", "content": "3"},
|
|
{"role": "user", "content": "4"},
|
|
]
|
|
|
|
|
|
def test_build_messages_without_limit_or_prompt() -> None:
|
|
assert build_messages("", _history(3), max_history_messages=0) == _history(3)
|