mirror of
https://github.com/R0m1k3/Loki.git
synced 2026-10-11 17:26:57 +02:00
1. Plan-puis-exécute (enhance.make_plan) : les demandes complexes sont décomposées en 3-5 étapes (event SSE 'plan', carte PLAN dans le fil, meta.plan persisté) ; le plan guide l'agent et le moteur code. 2. Auto-critique « Qualité + » (enhance.self_review, toggle Intelligence) : critique éclair puis révision de la réponse (event 'revision'). 3. Mémoire long-terme RAG (rag.py) : échanges vectorisés via /api/embed (modèle d'embedding auto-détecté), rappel cosinus top-3 inter-sessions injecté en contexte, indexation en arrière-plan, élagage à 2000 souvenirs. 4. Vérification HTML (tools.check_html) : références locales cassées et balises déséquilibrées ; branchée sur l'auto-vérification des outils ET sur le moteur code avec une passe d'auto-correction Aider. 5. Benchmark intégré (bench.py + /api/bench) : 5 épreuves notées /100 (appel d'outil, code exécuté en sous-processus isolé, consignes, JSON, format), streaming SSE, scores stockés ; carte BENCHMARK dans l'UI. Config : plan_mode / self_review / rag_enabled / embed_model + carte Intelligence (3 toggles). Client SSE : events plan/revision ; PlanCard. Tests : heuristique+parsing du plan, révision, index/rappel RAG (exclusion de la session courante), html_check, bench 100/100 sur modèle simulé, intégration chat HTTP (event plan + meta persisté), build front. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SVay7z3y7q2gEe54ByAE6N
43 lines
1.2 KiB
Python
43 lines
1.2 KiB
Python
"""Routes de lecture et mise à jour de la configuration de l'agent."""
|
|
from __future__ import annotations
|
|
|
|
from fastapi import APIRouter
|
|
from pydantic import BaseModel
|
|
|
|
from .. import agent_config
|
|
|
|
router = APIRouter(prefix="/api/config", tags=["config"])
|
|
|
|
|
|
class ConfigPatch(BaseModel):
|
|
system_prompt: str | None = None
|
|
temperature: float | None = None
|
|
top_p: float | None = None
|
|
top_k: int | None = None
|
|
max_tokens: int | None = None
|
|
num_ctx: int | None = None
|
|
num_gpu: int | None = None
|
|
num_batch: int | None = None
|
|
tools: dict[str, bool] | None = None
|
|
confirm_shell: bool | None = None
|
|
think: bool | None = None
|
|
code_model: str | None = None
|
|
plan_mode: bool | None = None
|
|
self_review: bool | None = None
|
|
rag_enabled: bool | None = None
|
|
embed_model: str | None = None
|
|
|
|
|
|
@router.get("")
|
|
async def get_config(model: str | None = None) -> dict:
|
|
return {
|
|
"config": agent_config.get_config(model),
|
|
"available_tools": agent_config.AVAILABLE_TOOLS,
|
|
}
|
|
|
|
|
|
@router.put("")
|
|
async def put_config(patch: ConfigPatch, model: str | None = None) -> dict:
|
|
cfg = agent_config.save_config(patch.model_dump(exclude_none=True), model)
|
|
return {"config": cfg}
|