119 Commits
Author SHA1 Message Date
Effi Server 05c43cd986 fix: typo UI llm-proxy (l'activer) 2026-09-19 12:09:49 +00:00
Effi Server 5fc23a562d feat: llm-proxy - switch d'instance llama.cpp transparent + UI :3017
- Route virtuelle :3012 -> instance active (8080 Q4_K_M / 8081 IQ4_XS), etat persiste
- Alias modele qwen3.8-27b : reecriture id reel <-> alias (v1/models, chat, completions,
  embeddings, streaming SSE) -> switch transparent pour tous les harnais
- UI de gestion :3017 (statut, Activer, Tester) en page unique sans dependance ajoutee
- Fail-fast 503 (20s) si instance active arreteee, sans spam WOL
2026-09-19 12:09:02 +00:00
Effi Server cbcf349f39 chore: nettoyer refs mortes LITELLM/Jean dans .env.example 2026-08-22 09:55:27 +00:00
Effi Server 5ab8242134 refactor: remplacer les proxies Jean par un unique llm-proxy + WOL
- llm-proxy: 1 service, 4 routes (3011 Ollama, 3012 llama.cpp, 3015 STT, 3016 TTS)
- Wake-on-LAN integre avec anti-spam (3 paquets magic, timeout 300s)
- suppression de jean-router, jean-proxy, wol-proxy, litellm
- OpenWebUI repointe vers le proxy (OpenAI 3012 + Ollama 3011 + STT 3015)
- docs a jour (README, WOL)
2026-08-22 09:26:24 +00:00
Effi Server 14460d387b feat: deploy SearXNG search engine with Valkey rate limiting
- Add SearXNG service on port 6060 (replaces old port 11112)
- Add Valkey for rate limiting (5/min, 60/hour, 500/day)
- Add Nginx reverse proxy with X-Real-IP and X-Forwarded-For headers
- Configure JSON format and French locale
- Add rate limiting configuration in limiter.toml
- Add Valkey configuration in valkey.conf
2026-07-20 15:41:44 +00:00
Folzo 2e83369483 feat: add max_model_len field for OpenFox compatibility
OpenFox looks for max_model_len in /v1/models response to determine
context window size. This commit:
- Adds max_model_len field to Jean models
- Adds max_model_len field to Ollama models
- Removes dead code after return statement
2026-07-20 12:28:44 +02:00
Folzo b04fb2f245 feat: add context_length and context_window at root level for OpenFox compatibility
- Add context_length and context_window fields at model root level
- Keep them in meta for backward compatibility
- This should allow OpenFox to properly detect max context size
2026-07-20 12:18:17 +02:00
Folzo 1670f57377 fix: restore get_ollama_models() function body
The function was accidentally truncated when adding get_jean_context_lengths().
This caused TypeError: 'NoneType' object is not iterable in list_models().
2026-07-20 12:07:08 +02:00
Folzo afd340d8a4 feat: add context_length to /v1/models response
- Add get_jean_context_lengths() to fetch n_ctx from Jean /v1/models
- Add preset_ctx_map with known CTX values for each preset
- Add context_length to Jean model metadata in /v1/models
- Add context_length to Ollama model metadata from details.context_length
- This allows OpenFox to know the max tokens each model can handle
2026-07-20 12:05:48 +02:00
Folzo e9cd1edbff docs: add jean-router architecture and session journal
- Add SESSION-2026-07-20-JEAN-ROUTER.md (complete session journal)
- Add ARCHITECTURE-JEAN-ROUTER.md (new architecture documentation)
- Remove ARCHITECTURE-LITELLM.md (replaced by jean-router)
- Update README.md with jean-router, Jean backend, and VRAM management
- Document dynamic preset discovery and VRAM switching logic
2026-07-20 11:22:47 +02:00
Folzo babe4ee621 chore: add OLLAMA_KEEP_ALIVE_MINUTES=5 to docker-compose 2026-07-20 10:47:41 +02:00
Folzo 20767c2300 feat: keep Ollama models in memory for 5 minutes
- Add OLLAMA_KEEP_ALIVE_MINUTES config (default: 5)
- schedule_ollama_unload(): delays Ollama unload when switching to Jean
- cancel_ollama_unload(): cancels timer if returning to Ollama
- Ollama models stay in VRAM for X minutes after last use
- Timer resets on each Ollama request
2026-07-20 10:46:58 +02:00
Folzo 8b7c4fbd9c feat: add VRAM management for Jean/Ollama switching
- stop_jean(): stops Jean service to free VRAM before Ollama use
- start_jean(): starts Jean service when switching back from Ollama
- unload_ollama(): forces Ollama to unload models before Jean use
- ensure_vram_for_backend(): orchestrates VRAM switching
- Tracks active backend state to avoid unnecessary switches
- Configurable timeouts via environment variables
- Prevents VRAM contention between Jean and Ollama
2026-07-20 10:33:35 +02:00
Folzo 856ba4ae36 refactor: remove LiteLLM, jean-router handles all routing 2026-07-20 10:22:15 +02:00
Folzo 43aacc077d refactor: OpenWebUI points directly to jean-router (no LiteLLM needed) 2026-07-20 10:15:34 +02:00
Folzo b441f3495a fix: jean-router syntax error (missing except block) 2026-07-20 10:14:23 +02:00
Folzo fcad41521e feat: jean-router — routing dynamique Jean + Ollama
- jean-router interroge /api/presets pour lister dynamiquement les presets Jean
- Support Ollama via /api/tags pour les modèles vision
- Switch automatique de preset quand nécessaire
- Expose /v1/models avec tous les modèles disponibles
- Route les requêtes vers Jean ou Ollama selon le modèle demandé
- Nouveaux presets Jean automatiquement visibles dans OpenWebUI

Architecture:
  open-webui → LiteLLM:4000 → jean-router:3014
                                ├→ jean-proxy:3012 → Jean (.11:8080)
                                └→ wol-proxy:3011 → Ollama (.11:11434)
2026-07-20 10:10:18 +02:00
Folzo d566adbf93 fix: revert to large-v3 — distil model outputs English on French audio 2026-06-28 12:44:59 +02:00
Folzo eadc6a0a88 fix: force STT French language + initial prompt (ignore client auto) 2026-06-28 12:42:39 +02:00
Folzo 8e683ca4fd perf: STT optimization — distil-large-v3 + 8 threads (2x faster)
- Switched from large-v3 (1.56B) to distil-large-v3 (~756M) — 2x faster transcription
- Increased CPU threads from 4 to 8 (Ryzen 5800X3D has 8c/16t)
- French language quality preserved (~5% accuracy tradeoff for 2x speed)
- Expected pipeline latency: 4-5s total (down from ~15s)
2026-06-28 12:36:08 +02:00
Folzo 1f55f12331 refactor: LiteLLM unified routing via JeanOrchestrator
- All models now route through single jean-proxy:3012 → orchestrator:8080
- Removed jean-proxy-moe (no longer needed with auto-switch orchestrator)
- Added qwen3.6-moe and qwen3.6-moe-reason model routes
- Updated architecture comments
2026-06-28 11:45:00 +02:00
Folzo 1b4764e9fa fix(litellm): open-webui via OpenAI API (pas Ollama) + 3 profils Qwen3.6
LiteLLM expose l'API OpenAI /v1/* pas l'API Ollama /api/*. open-webui
doit etre branche via la section 'OpenAI API' (env OPENAI_API_BASE_URL +
OPENAI_API_KEY), pas via 'Ollama'. L'override ajoute ces vars a open-webui,
force-recreate pour propager. Confirme en prod: HTTP 200 sur :4000/v1/models
depuis le conteneur open-webui. Les 4 modeles Qwen3.6 remontent dans le chat.
2026-06-27 16:51:51 +02:00
Folzo 7a8dc34212 feat(litellm): 3 profils Qwen3.6 (reason/fast/default) via toggle enable_thinking
Contrainte VRAM: RX 7800 XT 16Go ne peut pas co-heberger Qwen3.6-27B
(14.6 Go) + llama3.1-8b (5 Go). Ollama commente, on expose 3 profils
du meme modele Qwen3.6 via le toggle chat_template_kwargs.enable_thinking:
  - qwen3.6-reason / qwen3.6-27b : raisonnement ON (taches complexes)
  - qwen3.6-fast / qwen3.6       : raisonnement OFF (chat rapide ~400ms TTFT)
drop_params=false pour passer chat_template_kwargs a Jean.
Teste en prod: qwen3.6-fast repond BONJOUR en 400ms, MTP 3/3 acceptes.
2026-06-27 16:40:24 +02:00
Folzo 2a9f721c4e feat: LiteLLM multi-backends + jean-proxy avec WoL
Architecture (voir docs/ARCHITECTURE-LITELLM.md):
  open-webui -> LiteLLM:4000
                 |- qwen3.6-27b -> jean-proxy:3012 -> Jean (.11:8080)
                 |- llama3.1-8b -> wol-proxy:3011  -> Ollama (.11:11434)

Nouveaux fichiers:
- wol-proxy/ (versionne l'app.py de prod deja en place)
- jean-proxy/ (clone du wol-proxy avec HEALTH_PATH=/health + retry post-WoL
  pour services qui mettent du temps a demarrer apres WoL, ex: Jean qui
  charge 14 Go en VRAM)
- litellm/config.yaml (routing par nom de modele, drop_params=true)
- docker-compose.litellm.yml (override ADDITIF: ajoute uniquement jean-proxy
  et litellm, ne redemarre PAS open-webui/wol-proxy/hermes)

Teste en prod sur .27: Jean + Ollama repondent via LiteLLM:4000 avec
path-through de chat_template_kwargs.enable_thinking (raisonnement Qwen3.6
desactivable par requete). Zero impact hermes-webui/wol-proxy.
Basculer open-webui reste une etape manuelle (step 3 de la doc).
2026-06-27 16:19:08 +02:00
Folzo 2f270aeca8 Ajout roadmap orchestrateur wol-proxy 2026-06-14 07:58:39 +02:00
Folzo 7a4d889899 Augmente WAKE_TIMEOUT a 180s (configurable via .env) 2026-06-13 21:08:47 +02:00
Folzo 4acea1ce6d fix: Joplin Tool uses Clipper API (localhost:41184) not Server API
- Server API (/api/items/) does not expose note CRUD, only sync protocol
- Clipper API is the only way to read/write notes remotely
- Requires Joplin desktop open + Web Clipper enabled
- Added ping() function to check connectivity
- Valves: joplin_url, joplin_api_token
2026-05-14 19:34:35 +02:00
Folzo 3e18930dbd feat: add Joplin Tool for Open WebUI (Clipper API)
- Uses local Joplin Clipper API (localhost:41184)
- 11 functions: notebooks, notes, search, create, update, TODOs, delete, ping
- Valves: joplin_url (default 192.168.1.11:41184), joplin_api_token
- Requires Joplin desktop open + Web Clipper enabled
- Synced via Joplin Server (joplin.folzocorp.fr)
2026-05-14 19:11:34 +02:00
Folzo 873432362a feat: add Leantime Open WebUI Tool (direct API, no MCPO needed)
- Tool with Valves (leantime_url, leantime_api_key)
- 14 functions: projects, tickets, comments, users, timesheets, status labels
- JSON-RPC 2.0 client matching Leantime API
- Activate/deactivate per conversation in Open WebUI
2026-05-10 22:28:28 +02:00
Folzo c4467d0da2 feat: integrate Leantime project management via MCP (leantime-mcp + MCPO)
- Add leantime-mcp Dockerfile (daniel-eder/leantime-mcp, SSE transport)
- Add leantime-mcp service to docker-compose.yml on effi-net
- Add Leantime env vars to .env.example (API_KEY, USER_EMAIL, URL)
- Update services.md: Leantime + leantime-mcp entries, dependency diagram, resource table
- Update mcp-et-n8n.md: MCPO config with leantime SSE server, new leantime-mcp section
- Add LEANTIME-INSTALLATION.md: full reinstall guide (XPenology + MCP)
2026-05-10 17:53:21 +02:00
Folzo 21674f6eaf feat: Add SearXNG for improved web search
- Add SearXNG service to docker-compose.yml (port 11112)
- Add SEARXNG_SECRET_KEY to .env.example
- Add searxng-data/settings.yml with FR engines (google, bing, ddg, qwant)
- Add docs/SEARXNG-INTEGRATION.md with OpenWebUI tool setup
2026-04-13 19:59:01 +02:00
Folzo 4f1a6cf0ce Add session doc: Joplin RAG integration + RAG config optimization
- Document Joplin export process (JEX = TAR archive)
- Clean 78 notes from 111 files (removed folders)
- Config RAG optimization: markdown headers, bge-m3, batch=32
- RAG test: 42 sources found, retrieval works
- Note: Prompt RAG needs improvement for more direct responses
2026-04-12 22:37:09 +02:00
Folzo fdcf513baf feat: add effi-ocr tool with Valves configuration and improved file search
- Added Valves (Pydantic) pattern for ocr_url configuration via wheel icon
- Inspired by Kreuzberg tool: multi-level file search (exact, substring, word matches)
- Support for multi-file OCR with extract_text_from_images
- Added search_files function for pattern matching
- effi-ocr runs on port 8301 (Tesseract with preprocessing)
2026-04-12 17:52:42 +02:00
Folzo 82ea2313f0 docs: add Effi system prompt - original and optimized versions
- Original prompt kept for reference (200+ lines, too verbose)
- New optimized prompt: ~40 lines, -75% tokens
- Added table for tools usage (Kreuzberg, web_search, sub-agent, etc.)
- Optimized version includes explicit Kreuzberg usage for OCR
2026-04-12 16:41:13 +02:00
Folzo 189ff4eaab docs: April 2026 optimizations - gemma4:e4b, RAG, Ollama service
- LLM principal: gemma4:e4b (9.6GB, 128K context, MMLU 82.6%)
- Ollama service systemd with optimization vars (FLASH_ATTENTION, KV_CACHE)
- RAG: RAG_SYSTEM_CONTEXT=True, ENABLE_RAG_HYBRID_SEARCH=True
- ComfyUI memory manager: fix timestamp parsing (execution_success)
2026-04-12 16:19:14 +02:00
Folzo 49d7afdf1f docs: restore Structure du Projet section 2026-04-12 14:36:53 +02:00
Folzo 8f472170f6 docs: add Beszel tool improvements + update README
- README: add Tool OpenWebUI section with current features
- README: update Historique with Tool section
- Tool doc: add Limitations and Future Improvements sections

Future improvements noted:
- Support historique (données N dernières minutes)
- Filtres par période
- Graphiques et alertes automatisées
2026-04-12 14:34:29 +02:00
Folzo cf406b764f fix: Beszel tool - correct PocketBase API endpoints
- Changed /api/auth/login to /api/collections/users/auth-with-password
- Changed /api/systems to /api/collections/systems/records
- Added proper error messages for connection issues
2026-04-12 13:59:50 +02:00
Folzo 26e6b89229 fix: Use Pydantic Valves pattern for OpenWebUI tool config
- Add BaseModel Valves class with configurable parameters
- beszel_url, beszel_user, beszel_password as configurable valves
- Matches ACE Step tool pattern for UI configuration
2026-04-12 13:46:20 +02:00
Folzo 6212aa6f27 fix: Use hardcoded config in Beszel tool - no env vars needed 2026-04-12 13:42:44 +02:00
Folzo 3dbd2bcc17 fix: Rename class to Tools for OpenWebUI compatibility 2026-04-12 13:39:12 +02:00
Folzo b42cfcabce feat: Add Beszel tool for OpenWebUI
Permet à Effi de:
- get_all_stats() - Stats de tous les systèmes
- get_system_stats('folzocorp') - Stats d'un système
- check_alerts() - Vérifier les alertes
- get_gpu_status('folzocorp') - Status GPU AMD
- can_run_comfyui() - Vérifier si ComfyUI peut tourner
2026-04-12 13:01:48 +02:00
Folzo 4fff805c3d feat(beszel): Add NAS Synology agent configuration 2026-04-12 12:51:00 +02:00
Folzo f425294473 fix: ComfyUI memory manager - only consider recent history (last 5min)
- Fix bug where old history entries were counted as recent activity
- Added recent_threshold parameter (default 300s)
- is_recent_history() now checks timestamp of last history item
2026-04-12 12:37:18 +02:00
Folzo 952a9da41a docs: Rewrite README.md with complete project overview
- Add full architecture diagram with all machines (FolzoCorp, EffiServer, NAS)
- Document all services on each machine with ports and roles
- Add memory management section (auto-unload scripts)
- Add project structure tree
- Update technologies list
- Add documentation links
2026-04-12 12:30:28 +02:00
Folzo b69dee1d3a docs: Mettre à jour journal de session 2026-04-12
- État final des scripts et services
- ComfyUI memory manager avec restart container
- Beszel wake service
- Résumé commits
2026-04-12 12:25:45 +02:00
Folzo 2ca4235b89 feat: Add ComfyUI memory manager that restarts container after inactivity
- Monitors VRAM, queue status, and history
- Restarts ComfyUI container after timeout if RAM > 5GB and VRAM < 1%
- More effective at freeing RAM than model unloading alone
2026-04-12 12:14:59 +02:00
Folzo 7439033edd fix: Corriger script ComfyUI monitor et service systemd
- Corriger extraction VRAM via API correcte
- Ajouter gestion signaux propre
- Ajouter TimeoutStopSec pour arrêt propre
- Ajouter service restart Beszel au réveil
2026-04-12 12:08:27 +02:00
Folzo e528e25bde feat: Add systemd services and startup script for memory monitors 2026-04-12 10:20:39 +02:00
Folzo cf5b39215e docs: Ajouter journal de session 2026-04-12 - RAM + Beszel 2026-04-12 10:01:55 +02:00