mirror of
https://github.com/R0m1k3/Loki.git
synced 2026-10-21 05:58:13 +02:00
Faire d'un petit modèle un bon agent : - memory.py : contexte = invite + résumé des anciens tours + 10 derniers messages ; résumé régénéré en arrière-plan après chaque réponse (colonne summary sur sessions, migration douce). Contexte court = modèle concentré et qui tient sur le GPU. - tools.py : edit_file (recherche/remplacement exact, erreurs pédagogiques, unicité exigée), grep_search (regex bornée, dossiers ignorés), et vérification syntaxique auto (.py/.json) après chaque écriture — l'erreur revient au modèle qui se corrige dans le même tour. - coder.pick_code_model : les tâches de code vont au meilleur modèle code installé (qwen-coder, deepseek-coder…) via config code_model=auto. - Branché dans la route chat (mémoire + résolution du modèle code) et la boucle agent (code_task) ; UI : descriptions et glyphes des nouveaux outils. Tests : edit/grep/vérification, compression mémoire (19 msgs -> 12 dont résumé), pick auto/explicite, chat HTTP de bout en bout, build front. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SVay7z3y7q2gEe54ByAE6N
39 lines
1.1 KiB
Python
39 lines
1.1 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
|
|
|
|
|
|
@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}
|