À propos du projet

Charon est une application web auto-hébergée pour jouer des rôles avec des personnages IA, présentée par son auteur comme une combinaison de fonctionnalités de Chub, SillyTavern et d'autres outils. Elle est conçue pour garder les données utilisateur en local plutôt que dans un service cloud. Les capacités principales décrites dans le README : - Conversations ramifiées : chaque balayage d'une réponse IA crée une nouvelle branche, permettant de naviguer entre les alternatives, modifier les messages en ligne et éviter de perdre les réponses précédentes. - Cartes de personnages V2 et V3 : importe les cartes de personnages `.png` depuis SillyTavern, Chub ou d'autres sources sans conversion. - Clé API personnelle : fonctionne avec des fournisseurs compatibles OpenAI tels que OpenAI, Anthropic via proxy, OpenRouter, Ollama et vLLM. Les clés sont décrites comme chiffrées au repos. - Lorebooks : le lore de fond peut être attaché à une conversation, et l'application sélectionne automatiquement les entrées pertinentes pour l'IA. - Personas : plusieurs personas peuvent être définis et changés par conversation. - Rendu Markdown : prend en charge le gras, l'italique, les blocs de code, les images, le cadrage `<style>` et la mise en évidence des dialogues, avec un fondu entrant sûr pour le streaming. - Auto-hébergement : les données sont stockées dans un fichier SQLite local, sans dépendance au cloud, télémétrie ou comptes externes autres que ceux de l'utilisateur. Les options de déploiement incluent Docker via `docker compose up -d` (données persistées dans un volume `charon-data`) ou une configuration de développement basée sur pnpm. Les variables d'environnement requises incluent `BETTER_AUTH_SECRET` et `ENCRYPTION_KEY`, avec des exemples de commandes de génération utilisant `openssl rand`. Les migrations sont censées s'exécuter automatiquement au premier démarrage. Un chemin de mise à niveau pour les bases de données plus anciennes migre vers un compte administrateur unique, avec une procédure documentée de sauvegarde et de restauration utilisant `pnpm migrate:single-user`. La configuration initiale implique de créer un compte, de passer par un assistant d'accueil pour connecter un fournisseur IA et obtenir un personnage, puis de démarrer une conversation. Les personnages ne sont pas inclus ; les utilisateurs sont dirigés vers Chub ou un dossier `public/characters/` de SillyTavern. Les contrôles de conversation incluent envoyer, nouvelle ligne, balayer, régénérer, modifier, se faire passer pour, continuer, supprimer une branche et un menu de commandes Ctrl+K. Un chemin d'import SillyTavern est documenté via la copie de données dans `public/data/` et l'exécution de `pnpm run migrate`. Les builds de production utilisent `pnpm run build` et `pnpm run start` sur le port 3000, avec `APP_URL` défini pour les cookies d'authentification. La documentation pour les développeurs est référencée dans CONTRIBUTING.md.