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

ContextProviderInterface

L'interface ContextProviderInterface permet d'injecter dynamiquement un prompt système et des données contextuelles au début de chaque échange avec l'IA.

Namespace

ArnaudMoncondhuy\SynapseCore\Contract\ContextProviderInterface

Contrat complet

interface ContextProviderInterface
{
    public function getSystemPrompt(): string;
    public function getInitialContext(): array;
}

Méthodes

Méthode Rôle
getSystemPrompt(): string Retourne le prompt système principal (identité et règles de base de l'IA).
getInitialContext(): array Retourne des données contextuelles additionnelles (converties en texte et injectées après le prompt système).

Pourquoi l'utiliser ?

  • Prompt Engineering dynamique : injecter le nom de l'utilisateur, ses préférences ou son contexte métier.
  • Multilinguisme : adapter la langue des instructions selon la session.
  • Isolation des données : donner à l'IA uniquement ce dont elle a besoin pour le cas d'usage.

!!! tip "Fraîcheur des données" Ces méthodes sont appelées au moment de la génération. Les données injectées sont toujours à jour avec l'état actuel de votre application.


Exemple : Injecter le profil utilisateur

namespace App\Synapse\Context;

use ArnaudMoncondhuy\SynapseCore\Contract\ContextProviderInterface;
use Symfony\Bundle\SecurityBundle\Security;

class UserContextProvider implements ContextProviderInterface
{
    public function __construct(private Security $security) {}

    public function getSystemPrompt(): string
    {
        $user = $this->security->getUser();
        if ($user) {
            return sprintf("Tu discutes avec %s. Parle-lui de manière amicale.", $user->getUserIdentifier());
        }
        return "Tu es un assistant IA utile.";
    }

    public function getInitialContext(): array
    {
        return [
            'language'     => 'fr',
            'current_time' => date('Y-m-d H:i:s'),
            'app_version'  => '2.1.0',
        ];
    }
}

Enregistrement

Le service est résolu automatiquement via l'autoconfiguration Symfony. Si vous avez plusieurs providers, leurs instructions système sont concaténées dans l'ordre de priorité des services.

# config/services.yaml
services:
    App\Synapse\Context\UserContextProvider:
        tags: ['synapse.context_provider']

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