Cycle de vie des Événements
Synapse Core est entièrement évènementiel. Cela vous permet d'intervenir à chaque étape de la génération pour modifier le comportement de l'IA.
Séquence d'exécution
Voici l'ordre d'apparition des événements lors d'un appel à ChatService::ask() :
SynapseGenerationStartedEvent: Début global. Initialisation.SynapsePrePromptEvent: Crucial. Modification du prompt système ou du contexte juste avant l'envoi.SynapseChunkReceivedEvent: Répété pour chaque token reçu (Streaming).SynapseToolCallRequestedEvent: Si le LLM demande un outil. Déclenche l'exécution.SynapseToolCallCompletedEvent: Une fois l'outil exécuté, contient le résultat.- Retour à l'étape 3 si le LLM a besoin de traiter les résultats d'outils.
SynapseGenerationCompletedEvent: Fin de la génération textuelle.SynapseExchangeCompletedEvent: Fin technique de l'échange (Debug & Logs).
Diagramme des flux
sequenceDiagram
participant App
participant ChatService
participant LLM
App->>ChatService: ask($message)
ChatService->>App: Event: GenerationStarted
ChatService->>App: Event: PrePrompt
ChatService->>LLM: Requête API
loop Streaming
LLM-->>ChatService: Token / Chunk
ChatService->>App: Event: ChunkReceived
end
opt Tool Calling
ChatService->>App: Event: ToolCallRequested
App-->>ChatService: Résultat de l'outil
ChatService->>App: Event: ToolCallCompleted
ChatService->>LLM: Envoi du résultat
LLM-->>ChatService: Suite de la réponse...
end
ChatService->>App: Event: GenerationCompleted
ChatService->>App: Event: ExchangeCompleted