SynapseDebugLoggerInterface
L'interface SynapseDebugLoggerInterface permet d'exporter et de journaliser l'intégralité des échanges techniques entre Synapse Core et les LLM.
🛠 Pourquoi l'utiliser ?
- Observabilité : Voir exactement ce qui a été envoyé et reçu par l'IA dans vos outils de log (ELK, CloudWatch, etc.).
- Aide au développement : Diagnostiquer pourquoi un outil n'a pas été appelé ou pourquoi le LLM a mal interprété un prompt.
- Audit : Conserver une trace technique des interactions IA pour des besoins de conformité.
📋 Résumé du Contrat
| Méthode | Rôle |
|---|---|
logExchange(...) |
Enregistre l'intégralité d'un échange (Requête + Réponse + Usage). |
🚀 Exemple : Enregistrement dans les logs Symfony
namespace App\Synapse\Log;
use ArnaudMoncondhuy\SynapseCore\Contract\SynapseDebugLoggerInterface;
use Psr\Log\LoggerInterface;
class SymfonyDebugLogger implements SynapseDebugLoggerInterface
{
public function __construct(private LoggerInterface $logger) {}
public function logExchange(string $debugId, array $data): void
{
$this->logger->debug(sprintf("Synapse Exchange %s", $debugId), $data);
}
}
💡 Conseils d'implémentation
- Activation : Le logging de debug n'est déclenché que si l'option
debug: trueest passée lors de l'appel àChatService::ask(). - Charge de données : Le tableau
$datapeut être volumineux (plusieurs Mo si la conversation est longue). Veillez à ce que votre système de log puisse supporter ce volume ou filtrez les données inutiles.