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

MessageFormatterInterface

L'interface MessageFormatterInterface gère la conversion bidirectionnelle entre les entités Doctrine (SynapseMessage) et le format OpenAI canonical utilisé en interne et par les clients LLM.

Namespace

ArnaudMoncondhuy\SynapseCore\Contract\MessageFormatterInterface

Contrat complet

interface MessageFormatterInterface
{
    public function entitiesToApiFormat(iterable $entities): array;
    public function apiFormatToEntities(array $messages, SynapseConversation $conversation): array;
}

Méthodes

Méthode Rôle
entitiesToApiFormat(iterable $entities): array Convertit des entités SynapseMessage vers le format OpenAI canonical (pour l'envoi au LLM).
apiFormatToEntities(array $messages, SynapseConversation $conversation): array Transforme des messages au format API en objets entités prêts à la persistance.

Cas d'usage

Synapse Core inclut une implémentation par défaut conforme au standard OpenAI. Vous n'avez besoin d'implémenter cette interface que si vous avez des besoins de transformation très spécifiques :

  • Filtrer ou modifier le contenu des messages avant envoi au LLM
  • Ajouter des métadonnées supplémentaires pour le traitement par le LLM
  • Adapter le format pour un provider avec des contraintes particulières

!!! tip "Conseil" N'implémentez cette interface que si nécessaire. La grande majorité des projets n'ont pas à la personnaliser.


Format de sortie de entitiesToApiFormat()

// Exemple de sortie (format OpenAI canonical)
[
    ['role' => 'user',      'content' => 'Bonjour !'],
    ['role' => 'assistant', 'content' => 'Bonjour, comment puis-je vous aider ?'],
    ['role' => 'user',      'content' => 'Quelle heure est-il ?'],
]

Voir aussi

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.
daikazu/eloquent-salesforce-objects
unseen-codes/chat
romalytar/yammi-jobs-monitoring-laravel
kisame76/filament-db-table-state
nqxcode/laravel-lucene-search
dpfx/laravel-livewire-wizards
workos/workos-php-laravel
sofa/laravel-global-scope
nawasara/auth-primitives
adhocrat-io/arkhe-main
make-dev/orca-harpoon
itsemon245/lamet
baks-dev/dashboard
amoifr/pickle-panther-bundle
make-dev/orca
dmstr/symfony-system-resources-bundle
dmstr/symfony-job-queue-bundle
dmstr/openapi-json-schema-bundle
dmstr/keycloak-security-bundle
dmstr/doctrine-audit-log-bundle