Rewrite extraction prompt and system prompt

Extraction: system+user split with explicit SAVE/DON'T SAVE rules,
few-shot examples, stricter JSON-only format. Min fact length 15 chars.

System prompt: model now knows about its 3-level memory, how to use
recalled facts, and that user can control memory via chat commands.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
jze9
2026-05-28 20:48:04 +05:00
parent 9974ce8dd9
commit fa66a8098c
2 changed files with 48 additions and 12 deletions

19
main.py
View File

@@ -101,11 +101,20 @@ async def build_context(request: ChatRequest) -> list[dict]:
summary_block = f"## Earlier conversation summary\n{summary}" if summary else ""
# 4. Assemble system prompt
base_system = (
"You are an expert coding assistant with deep knowledge of the project architecture. "
"Use the provided memory and code context to give precise, informed answers. "
"Always reason about the full architecture, not just isolated snippets."
)
base_system = """Ты — AI-ассистент по программированию с постоянной памятью.
У тебя есть три уровня памяти:
1. Долгосрочная память — факты о пользователе и проектах (показаны ниже в "Relevant memories")
2. История диалога — последние 20 сообщений текущей сессии
3. Контекст кода — граф архитектуры проекта (если проиндексирован)
Используй память чтобы давать точные ответы с учётом контекста пользователя. \
Если в памяти есть релевантный факт — опирайся на него, не переспрашивай то что уже известно.
Пользователь может управлять твоей памятью прямо в чате:
- "запомни что X" — ты сохранишь X с высоким приоритетом
- "забудь про X" — ты удалишь похожие воспоминания
- "что ты помнишь?" — покажи список активных воспоминаний через GET /v1/memories"""
context_parts = [p for p in [base_system, summary_block, mem_block, code_block] if p]
system_content = "\n\n".join(context_parts)