§ 03 — PROJETS

Le travail.

HOME/WORK/MY_AI
● LIVE · FEATURED CASE STUDY · 01 / 01

MY_AI

Assistant IA 100% local. Multi-agents. Extensible.

ANNÉES
2025 — 2026
RÔLE
SOLO
STATUS
● LIVE
PYTHON OLLAMA CHROMADB MCP FASTAPI FASTER-WHISPER SENTENCE-TRANSFORMERS HNSW SQLITE WEBSOCKET CLOUDFLARED DUCKDUCKGO DISKCACHE BS4 CUSTOMTKINTER TIKTOKEN TYPESCRIPT VS CODE API AES-256-GCM SOUNDDEVICE
v7.4.0 · MIT · Python 3.10+ · Extension VS Code v1.2.2
GITHUB ↗ RELEASES ↗
INTERFACES GUI · TKINTER CLI API · FASTAPI RELAY · PWA VSX · AGENT ORCH. CHAT · AGENT ReAct + P&E LLMOLLAMA MEMORYCHROMA · SQLITE 9 AGENTSSPECIALIZED KBSQLITE MCPTOOLS · I/O WEB SEARCHDUCKDUCKGO DOC PROCESSORSPDF · DOCX · XLSX · CSV MY_AI · ORCHESTRATOR ◼ LIVE
§ 04 — AGENTS 9 AGENTS SPÉCIALISÉS

Architecture multi-agents.

Chaque agent est responsable d'un domaine précis. L'orchestrateur route chaque requête vers le bon agent selon l'intention détectée. Survolez pour explorer.

01 / 09

CODE

Génération et debug de code multi-langages. Python, C, JS et plus.

models/ai_agents.py · CodeAgent
02 / 09

WEB

Recherche internet temps réel via DuckDuckGo. Fact-checking et résumés.

models/ai_agents.py · WebAgent
03 / 09

ANALYST

Analyse de données et extraction d'insights sur les corpus ingérés.

models/ai_agents.py · AnalystAgent
04 / 09

CREATIVE

Rédaction et contenu créatif. Adapte le ton et le format à la demande.

models/ai_agents.py · CreativeAgent
05 / 09

DEBUG

Détection et correction d'erreurs. Analyse de traces et suggestions de fix.

models/ai_agents.py · DebugAgent
06 / 09

PLANNER

Découpe les projets complexes en étapes actionnables et séquencées.

models/ai_agents.py · PlannerAgent
07 / 09

SECURITY

Audit de sécurité et détection de vulnérabilités dans le code.

models/ai_agents.py · SecurityAgent
08 / 09

OPTIMIZER

Optimisation et performance. Profiling, refactor, réduction de coût.

models/ai_agents.py · OptimizerAgent
09 / 09

DATA SCIENCE

Data Science et Machine Learning. Pipelines ML, features, évaluation.

models/ai_agents.py · DataScienceAgent

Points forts.

§ 05 — DEEP DIVE
01

100% local, 0 API payante

Tout tourne sur Ollama en local. Aucune donnée ne sort de la machine. Adapté aux contextes sensibles où le cloud n'est pas une option.

02

Mémoire vectorielle persistante

ChromaDB stocke les conversations et documents en embeddings. L'assistant se souvient des échanges précédents sans ré-entraînement.

03

Pipeline multi-formats

Ingère PDF, DOCX, Excel. Normalise, chunk, indexe. Prêt pour RAG sur n'importe quelle base documentaire.

04

Extensible via MCP

Le protocole Model Context Protocol permet de brancher de nouveaux outils (bases SQL, APIs, file systems) sans toucher au cœur.

// SPEC.01 — TECH METRICS CHIFFRES DURS

Les chiffres.

Les paramètres et seuils réels du projet, extraits de la doc et de config.yaml.

10 485 760
TOKENS · MÉMOIRE VECTORIELLE MAX
256 / 32
CHUNK / OVERLAP (TOKENS)
384
DIM · all-MiniLM-L6-v2
~20 ms
RECALL · HNSW + COSINUS
32 768
CTX LLM · 8 192 SIMPLE · 4 096 VISION
15
MAX_TOURS · BOUCLE ReAct
8765
PORT · WEBSOCKET RELAY
25 MB
UPLOAD MAX · RELAY MOBILE
12
LANGUES AUTO-DÉTECTÉES
1 — 5 ★
ÉCHELLE FEEDBACK · RLHF
3.10+
PYTHON · RUNTIME MIN
AES-256
CHIFFREMENT MÉMOIRE · OPTIONNEL
// SPEC.02 — MODULE MAP ~/my_ai/

L'arborescence.

Vue condensée des modules clés. Chaque dossier porte une responsabilité unique.

my_ai/
├─ core/                    # moteur, orchestrateurs, API, MCP
│  ├─ ai_engine.py            # point d'entrée intelligence
│  ├─ chat_orchestrator.py    # boucle ReAct · scratchpad XML · MAX_TOURS=15
│  ├─ agent_orchestrator.py   # page Agents · historiques séparés
│  ├─ api_server.py           # FastAPI
│  ├─ mcp_client.py           # Model Context Protocol · stdio
│  ├─ rlhf_manager.py         # feedback 1—5 ★
│  ├─ knowledge_base_manager.py
│  ├─ language_detector.py    # 12 langues
│  ├─ session_manager.py · conversation.py · validation.py
│  ├─ optimization.py · evaluation.py · training_pipeline.py
│  └─ web_cache.py · network.py · compression_monitor.py
├─ memory/                  # 10 M tokens · ChromaDB persistant
│  ├─ vector_memory.py        # tiktoken cl100k_base · all-MiniLM-L6-v2
│  └─ vector_store/chroma_db/
├─ models/                  # 9 agents + LLM local
│  ├─ ai_agents.py            # Code/Web/Analyst/Creative/Debug/Planner/Security/Optimizer/DS
│  ├─ local_llm.py            # wrapper Ollama
│  ├─ intelligent_code_orchestrator.py
│  ├─ intelligent_document_analyzer.py
│  ├─ smart_web_searcher.py · smart_code_searcher.py
│  ├─ knowledge_base.py
│  └─ mixins/ · weights/ · training_runs/
├─ processors/              # PDF · DOCX · XLSX · CSV · CODE
│  └─ pdf_processor.py · docx_processor.py · excel_processor.py · code_processor.py
├─ generators/              # export documents & code
├─ interfaces/              # GUI CustomTkinter · CLI · Agents · Workflow
│  ├─ gui_modern.py · cli.py · agents_interface.py
│  ├─ workflow_canvas.py · resource_monitor.py
│  ├─ gui/                    # widgets · chat_area · sidebar · streaming
│  │  └─ voice_input.py           # faster-whisper · STT 100% local · 99+ langues
│  └─ agents/
├─ relay/                   # PWA mobile · WebSocket · cloudflared tunnel
│  ├─ relay_server.py · relay_bridge.py
│  └─ static/  (index.html · style.css · app.js)
├─ vscode_extension/        # extension VS Code agentique · TypeScript · esbuild
│  ├─ src/                    # client WebSocket E2EE · UI webview · 9 outils workspace
│  ├─ l10n/ · media/          # i18n (FR/EN) · icônes
│  ├─ package.json · esbuild.js · tsconfig.json
│  └─ README.md · README.fr.md · CHANGELOG.md
├─ data/                    # KB · workspaces · web_cache
├─ utils/ · tests/ · tools/ · examples/ · docs/
├─ main.py · launch_unified.py · launch.bat
├─ Modelfile · config.yaml · requirements.txt
└─ create_custom_model.bat · clean_project.bat · test_features.bat
// SPEC.03 — MODELS & RELAY LLM SUPPORTÉS · ACCÈS MOBILE

Le cœur & le relay.

MODÈLES OLLAMA · LOCAL
TEXTERAMUSAGE
qwen3.5:2b4 GBultra-light
qwen3.5:4b8 GBrecommandé
qwen3.5:9b16 GBdétaillé
mistralalternative
VISIONRAMUSAGE
minicpm-v3 GBrecommandé
llava4.7 GBalternative
llama3.2-visionalternative

Configurable via Modelfile + config.yaml › llm.local.default_model. Fallback automatique sur réponses pattern-based si Ollama indisponible.

MY_AI RELAY · MOBILE PWA
# config.yaml
relay:
  auto_start:        false
  port:              8765
  response_timeout:  500
  password:          ""
  tunnel:            true
  host:              "0.0.0.0"
  • Tunnel cloudflared automatique → URL HTTPS publique + QR code partageable
  • Sync messages temps réel via WebSocket, indicateurs de frappe, thème dark
  • Pièces jointes ≤ 25 MB (images, PDF, DOCX, XLSX, CSV, code)
  • PWA installable, code servi depuis relay/static/ (Vanilla JS)
v7.4.0 · 2026-05-13 Saisie vocale 100% locale — faster-whisper, modèle `small` INT8, 99+ langues auto-détectées.
// SPEC.04 — VS CODE EXTENSION MY_AI RELAY · AGENTIC IDE

L'extension VS Code.

Une extension VS Code (TypeScript) qui transforme My_AI en agent capable d'éditer, exécuter et fouiller le workspace — façon Claude Code, mais 100% local, sur n'importe quel modèle Ollama. Marketplace : gonicolas12.my-ai.

9 OUTILS EXPOSÉS AU LLM
OUTILRÔLEAPPROBATION
read_filelecture · offset/limitauto
write_filecréation/écrasementmodale
edit_fileremplacement exactmodale
list_dircontenu d'un dossierauto
globrecherche par motifauto
grepripgrep + fallback JSauto
run_commandshell workspacemodale
get_active_editorfichier + sélectionauto
open_fileouvrir · ligne préciseauto

Tous les chemins sont résolus depuis le workspace VS Code. Toute sortie de ce périmètre exige une approbation modale par chemin (pas d'auto-approve).

SÉCURITÉ · TRANSPORT · APPROBATIONS
# package.json — settings
myaiRelay.openInSecondarySidebar:    true
myaiRelay.healthCheckIntervalSeconds: 10
myaiRelay.autoReconnect:             true
myaiRelay.requestTimeoutSeconds:     15
  • E2EE AES-256-GCM · clé éphémère dans le fragment d'URL (jamais sur le serveur)
  • Multi-tunnel failover : cloudflared · serveo · localhost.run en parallèle
  • Credentials chiffrés dans VS Code SecretStorage (OS keychain)
  • 3 niveaux d'approbation : once · per-file · session-wide (reset à la reconnexion)
  • Parser <tool_use> custom → compatible n'importe quel modèle Ollama
v1.2.2
EXTENSION · MARKETPLACE
≥ 1.85
VS CODE · ENGINE MIN
9
OUTILS WORKSPACE EXPOSÉS
3
TUNNELS PARALLÈLES · FAILOVER
AES-256-GCM
CHIFFREMENT BOUT-EN-BOUT
FR / EN
UI · APPROBATIONS · DOCS

Workflow : on lance My_AI sur la machine hôte → bouton Relay → on copie la connection string → on la colle dans VS Code. À partir de là, le LLM local voit le workspace, propose des modifs, demande l'autorisation pour write/edit/run, et affiche chaque tool call sous forme de carte inline (orange = en cours · vert = succès · rouge = erreur · gris = refusé).

MARKETPLACE ↗ SOURCE ↗
// SPEC.05 — VOICE MODE SAISIE VOCALE · 100% LOCAL

Le mode vocal.

Saisie vocale intégrée à chaque zone de texte de l'app — chat principal, conversation, onglet Agents. Tout est transcrit en local via faster-whisper. La voix ne quitte jamais la machine. Nouveau dans la v7.4.0.

STACK · PIPELINE AUDIO
COMPOSANTVALEUR
Moteur STTfaster-whisper
Modèlesmall · INT8 · ~150 Mo
Capture audiosounddevice · 16 kHz mono
VADintégré · filtre silences
Chargementlazy · ~5 s au 1er usage
Transcription1 à 3 s · CPU only
Langues99+ · auto-détectées
Threadingthread-safe · callback async vers GUI

Module : interfaces/gui/voice_input.py · classe VoiceInput. Dégradation gracieuse si faster-whisper / sounddevice ne sont pas installés.

UX · TOGGLE 1 BOUTON
# 3 états visuels du bouton micro
idle:         🎙️  # gris
recording:       # rouge pulsant
transcribing: ⏳  # orange

# 3 zones de saisie équipées
chat_home · conversation · agents_tab
  • 1er clic : enregistrement démarre · pas de limite de durée
  • 2e clic : arrêt + transcription auto · texte inséré au curseur (avec espace auto)
  • Dictée et frappe alternables sans perte de focus — idéal pour les prompts longs
  • Aucune transmission réseau · zéro API · zéro clé · zéro compte
  • Compatible Relay mobile (PWA) — la dictée fonctionne aussi côté téléphone
~150 MB
WHISPER · MODÈLE SMALL INT8
99+
LANGUES · AUTO-DÉTECTION
16 kHz
CAPTURE · MONO · SOUNDDEVICE
1 — 3 s
LATENCE TRANSCRIPTION · CPU
3
ZONES DE SAISIE ÉQUIPÉES
0
OCTET ENVOYÉ · 100% LOCAL

Pourquoi local ? Les services STT cloud (Whisper API, Google, Azure) impliquent d'envoyer chaque enregistrement chez un tiers. Pour un assistant pensé local-first, c'était disqualifiant. faster-whisper tourne sur CPU en INT8 avec des perfs proches du temps réel, donc plus aucun compromis : la voix reste sur la machine, point.

§ 06 — CODE orchestrator.py

Un extrait.

# my_ai/core/agent_orchestrator.py — extrait simplifié
from models.ai_agents import (
    CodeAgent, WebAgent, AnalystAgent, CreativeAgent,
    DebugAgent, PlannerAgent, SecurityAgent,
    OptimizerAgent, DataScienceAgent,
)
from memory.vector_memory import VectorMemory
from core.mcp_client import MCPClient
from models.local_llm import LocalLLM

class AgentOrchestrator:
    def __init__(self, model="qwen3.5:4b"):
        self.llm = LocalLLM(model)
        self.memory = VectorMemory("memory/vector_store")
        self.agents = {
            "code":     CodeAgent(self.llm),
            "web":      WebAgent(self.llm),
            "analyst":  AnalystAgent(self.llm),
            "creative": CreativeAgent(self.llm),
            "debug":    DebugAgent(self.llm),
            "planner":  PlannerAgent(self.llm),
            "security": SecurityAgent(self.llm),
            "optim":    OptimizerAgent(self.llm),
            "ds":       DataScienceAgent(self.llm),
        }
        self.mcp = MCPClient.from_config("config.yaml")

    def ask_agent(self, kind: str, query: str) -> str:
        # 1. recall — HNSW + cosinus, reranking CrossEncoder (~20 ms)
        ctx = self.memory.search(query, k=5)
        # 2. delegate — agent ReAct + scratchpad XML
        agent = self.agents[kind]
        answer = agent.run(query, context=ctx, tools=self.mcp.tools)
        # 3. persist — chunks 256 tok / overlap 32, jusqu'à 10M tokens
        self.memory.store(query, answer)
        return answer

Autres projets.

En préparation

D'autres side projects arrivent bientôt.

PROPOSER DES IDÉES →

On collabore ?

CONTACT →