Analyse en Temps Réel de Mahjong avec Akagi : Assistant IA Open Source pour Plateformes de Jeu

Akagi est un assistant open source conçu pour l'analyse dynamique de parties de mahjong sur plusieurs plateformes, intégrant des modèles d'intelligence artificielle compatibles avec le protocole mjai. Son architecture modulaire permet une analyse précise des décisions en temps réel, avec prise en charge native de solutions comme Mortal AI.

Fonctionnalités Techniques Clés

Le système propose deux méthodes de capture de données :

Mode Implémentation Configuration
Proxy MITM Interception réseau via certificat TLS Nécessite l'installation d'une CA personnalisée
Navigateur Intégré WebView basé sur Chromium Aucune configuration système requise

Intégration des Modèles IA

Le framework supporte les implémentations conformes au protocole mjai :

  • Gestion automatique des modèles 3joueurs/4joueurs
  • Interface de recommandation visuelle superposée (HUD)
  • Analyse de sécurité avec calcul de risque de furiten
  • Évaluation probabiliste des mains via le nombre de tenpai

Configuration Système

Le fichier config.toml définit les paramètres essentiels :

[system]
language = "fr"  # Localisation interface
capture_method = "webview"  # Options: webview | mitm

[ai_models]
quad_player = "mortal-v3"  # Modèle pour 4 joueurs
triple_player = "mortal-3p"  # Modèle pour 3 joueurs

[performance]
analysis_depth = 2  # Profondeur d'analyse (1-3)
history_retention = 200  # Nombre de parties archivées

Développement de Modèles Personnalisés

Structure type d'un bot compatible mjai :

import sys
import json
from typing import Dict, Any

def process_event(payload: Dict[str, Any]) -> Dict[str, Any]:
    # Logique d'analyse personnalisée
    return {"action": "discard", "tile": "5m"}

if __name__ == "__main__":
    while (line := sys.stdin.readline().strip()):
        try:
            event = json.loads(line)
            response = process_event(event)
            sys.stdout.write(json.dumps(response) + "\n")
            sys.stdout.flush()
        except Exception:
            sys.exit(1)

Architecture Technique

Le système repose sur une stack moderne :

  • Cœur applictaif en Rust pour la sécurité mémoire et les performances
  • Interface utilisateur via Tauri (WebView léger)
  • Gestion des connexions WebSocket pour la synchronisation en temps réel
  • Système de journalisation structuré avec niveaux de diagnostic

Optimisation des Performances

Paramètres ajustables selon les capacités matérielles :

Paramètre Configuration Économique Configuration Performante
Profondeur d'analyse 1 3
Rafraîchissement HUD 500ms 200ms
Stockage historique 100 parties Illimité

Résolution des Problèmes Coruants

Procédures de diagnostic :

  • Vérifier les certificats TLS dans le mode MITM via openssl s_client
  • Analyser les flux WebSocket avec l'inspecteur de protocole intégré
  • Valider l'environnement Python avec python -m mjai validate
  • Consulter les journaux système dans le répertoire ~/.akagi/logs

Étiquettes: Rust Tauri mjai-protocol Mahjong-Soul

Publié le 4 octobre à 09h07