Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Synapse Core Laravel Package

arnaudmoncondhuy/synapse-core

View on GitHub
Deep Wiki
Context7

Synapse Core

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)
  • SynapseModelPreset - 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

💰 Accounting & Plafonds

  • TokenAccountingService - Suivi de l'usage (input/output/thinking par conversation et par action système)
  • SpendingLimitChecker - Vérification des quotas avant chaque requête LLM
  • SynapseTokenUsage - Historique détaillé des dépenses avec conversion monétaire
  • SynapseSpendingLimit - Configuration des plafonds (par utilisateur, agent ou preset)

🗺️ Agents et Tons

  • SynapseAgent - Abstraction d'agent combinant instructions, preset et style
  • SynapseTone - Tons de réponse réutilisables (ex: Professionnel, Concis)
  • AgentRegistry - Inscription et découverte dynamique des agents

🩺 Diagnostic

  • SynapseDoctorCommand - Commande unique pour installer, diagnostiquer et réparer l'intégration (synapse:doctor)

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 LLM
  • SynapseGenerationStartedEvent - Génération commencée
  • SynapseChunkReceivedEvent - Chunk reçu (streaming)
  • SynapseGenerationCompletedEvent - Génération terminée
  • SynapseToolCallRequestedEvent - Tool use détecté
  • SynapseToolCallCompletedEvent - Exécution d'outil terminée
  • SynapseExchangeCompletedEvent - Échange complet terminé
  • SynapseUsageRecordedEvent - Usage de tokens enregistré (Accounting)
  • SynapseSpendingLimitExceededEvent - Plafond de dépense atteint

Routes API disponibles

  • POST /api/chat - Envoi de message et streaming de réponse
  • POST /api/memory - Ajout de souvenir à la mémoire
  • POST /api/reset - Réinitialisation de la conversation
  • POST /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.

Internationalisation

Le Core fournit l'infrastructure pour les traductions des autres bundles.

  • Domaine de traduction : synapse_core
  • Éléments traduits : Prompts système (date/heure, contexte utilisateur, instructions), messages d'erreur de mémoire.
  • Support multilingue : Basé sur TranslatorInterface, avec repli (fallback) sur la propriété language des contextes.

🩺 Synapse Doctor

L'assistant de diagnostic est votre meilleur allié pour l'installation et la maintenance :

# Diagnostic complet
php bin/console synapse:doctor

# Réparation automatique (création config, entités, security, routes)
php bin/console synapse:doctor --fix

# Installation fraîche
php bin/console synapse:doctor --init

💰 Gestion des Coûts (Accounting)

Synapse Core propose un système robuste pour suivre et limiter les dépenses IA.

Configuration des Tarifs

Les tarifs sont configurés directement dans l'entité SynapseModel (via l'admin ou SQL) en prix par million de tokens.

Plafonds de dépense

Vous pouvez définir des limites dans SynapseSpendingLimit :

  • Scopes : USER, AGENT, PRESET.
  • Périodes : CALENDAR_DAY, CALENDAR_MONTH, SLIDING_DAY (24h), SLIDING_MONTH (30j).

📖 Support

Auteur

Arnaud Moncondhuy

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
comsave/common
alecsammon/php-raml-parser
chrome-php/wrench
lendable/composer-license-checker
typhoon/reflection
mesilov/moneyphp-percentage
mike42/gfx-php
bookdown/themes
aura/view
aura/html
aura/cli
povils/phpmnd
nayjest/manipulator
omnipay/tests
psr-mock/http-message-implementation
psr-mock/http-factory-implementation
psr-mock/http-client-implementation
voku/email-check
voku/urlify
rtheunissen/guzzle-log-middleware