arnaudmoncondhuy / synapse-core
Moteur d'orchestration IA sans interface pour Symfony — Clients LLM, agents, mémoire et stockage.
Installs: 2
Dependents: 4
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
Type:symfony-bundle
pkg:composer/arnaudmoncondhuy/synapse-core
Requires
- php: >=8.2
- doctrine/doctrine-bundle: ^2.10 || ^3.0
- doctrine/orm: ^2.19 || ^3.0
- symfony/doctrine-messenger: ^7.0 || ^8.0
- symfony/framework-bundle: ^7.0 || ^8.0
- symfony/http-client: ^7.0 || ^8.0
- symfony/messenger: ^7.0 || ^8.0
- symfony/security-bundle: ^7.0 || ^8.0
- symfony/uid: ^7.0 || ^8.0
- symfony/yaml: ^7.0 || ^8.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.93
- symfony/process: ^8.0
- symfony/test-pack: ^1.2
This package is auto-updated.
Last update: 2026-02-27 07:19:47 UTC
README
Headless AI orchestration engine for Symfony — LLM clients, agents, memory, and storage.
Synapse Core est le cœur du framework Synapse : orchestration d'IA, support multi-LLM (Gemini, OVH AI, OpenAI), gestion de mémoire sémantique, et entités de stockage.
Installation
composer require arnaudmoncondhuy/synapse-core:^0.1
Caractéristiques principales
🤖 Support Multi-LLM
- Gemini API - Modèles à la pointe (Gemini 2.0 Flash, Pro)
- OVH AI - Infrastructure européenne compatible OpenAI
- OpenAI compatible - Framework standardisé pour tous les clients
🧠 Agents et Orchestration
- SynapseAgent - Exécution d'agents conversationnels avec tool use
- SynapseAgentBuilder - Construction déclarative d'agents
- Tool Registry - Enregistrement et exécution d'outils personnalisés
💾 Stockage et Entités Doctrine
- Conversation - Historique conversationnel
- Message - Messages avec roles (user, assistant, tool)
- SynapsePreset - Configurations d'IA réutilisables
- SynapseProvider - Crédentials et configuration de providers
- SynapseModel - Métadonnées et capabilities des modèles
🔐 Sécurité
- PermissionCheckerInterface - Vérification des droits d'accès
- DefaultPermissionChecker - Implémentation standard avec Symfony Security
- LibsodiumEncryptionService - Chiffrement XSalsa20-Poly1305 des crédentials
📚 Mémoire Sémantique
- VectorStore - Abstraction pour stockage vectoriel (DoctrineVectorStore, InMemory)
- TextSplitter - Découpage adaptatif de texte (RecursiveTextSplitter, FixedSize)
- EmbeddingService - Génération d'embeddings via Gemini ou OpenAI
- MemoryManager - Gestion des souvenirs avec contexte sémantique
📊 Token Accounting
- TokenAccountingService - Suivi de l'usage (input/output tokens par conversation)
- SynapseTokenUsage - Entité pour historique des dépenses
Configuration minimale
config/packages/doctrine.yaml :
doctrine: orm: mappings: ArnaudMoncondhuy: type: attribute prefix: 'ArnaudMoncondhuy\SynapseCore\Storage\Entity' dir: '%kernel.project_dir%/vendor/arnaudmoncondhuy/synapse-core/src/Storage/Entity'
config/services.yaml :
services: # Vos outils personnalisés ici App\Tool\YourCustomTool: tags: - synapse.tool
Fusion des presets depuis DB :
synapse_core: # Le bundle charge automatiquement les providers/presets/models de la DB
Événements disponibles
Le bundle dispatch plusieurs événements pour hook custom logic :
SynapsePrePromptEvent- Avant l'envoi au LLMSynapseGenerationStartedEvent- Génération commencéeSynapseChunkReceivedEvent- Chunk reçu (streaming)SynapseGenerationCompletedEvent- Génération terminéeSynapseToolCallRequestedEvent- Tool use détectéSynapseToolCallCompletedEvent- Exécution d'outil terminéeSynapseExchangeCompletedEvent- Échange complet terminé
Routes API disponibles
POST /api/chat- Envoi de message et streaming de réponsePOST /api/memory- Ajout de souvenir à la mémoirePOST /api/reset- Réinitialisation de la conversationPOST /api/csrf- Token CSRF pour requêtes frontend
(Routes précises définies par les bundles admin/chat)
Structure des dépendances
synapse-core
├── symfony/framework-bundle
├── symfony/security-bundle
├── doctrine/orm
└── symfony/messenger
Les bundles admin et chat dépendent de core.
Licence
PolyForm Noncommercial 1.0.0 (usage non-commercial uniquement)