Weave 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

Guide rapide (Quickstart)

Une fois le bundle installé, vous pouvez commencer à interagir avec les LLM en utilisant le service ChatService.

1. Injecter le service

Dans votre contrôleur ou service, injectez ArnaudMoncondhuy\SynapseCore\Engine\ChatService.

namespace App\Controller;

use ArnaudMoncondhuy\SynapseCore\Engine\ChatService;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\Routing\Annotation\Route;

class ChatController extends AbstractController
{
    #[Route('/ask', name: 'app_chat_ask', methods: ['POST'])]
    public function ask(ChatService $chatService): JsonResponse
    {
        $result = $chatService->ask("Bonjour, comment vas-tu ?");

        return $this->json([
            'answer' => $result['answer'],
            'model'  => $result['model'],
        ]);
    }
}

2. Structure de la réponse

La méthode ask() retourne un tableau contenant :

Clé Type Description
answer string La réponse textuelle du modèle.
usage array Tokens consommés (prompt_tokens, completion_tokens, total_tokens).
model string L'identifiant du modèle utilisé.
debug_id ?string Identifiant unique si le mode debug est activé.
preset_id ?int ID du preset actif.
agent_id ?int ID de l'agent actif.
safety array Évaluations de sécurité du provider.
generated_attachments array Images générées (modèles image-only).

3. Options courantes

Vous pouvez passer un tableau d'options en deuxième argument de ask() :

// Avec un agent spécialisé
$result = $chatService->ask("Explique-moi la relativité", [
    'agent'    => 'expert_sciences',  // Clé de l'agent à utiliser
    'tone'     => 'efficace',         // Ton de réponse
    'stateless' => true,              // Ne pas enregistrer en BDD
]);

// Reprendre une conversation existante
$result = $chatService->ask("Et pour la mécanique quantique ?", [
    'conversation_id' => '01AN4V0... (ULID)',
    'user_id'         => (string) $user->getId(),
]);

// Injecter un historique manuel
$result = $chatService->ask("Quelle heure est-il ?", [
    'history' => [
        ['role' => 'user',      'content' => 'Bonjour'],
        ['role' => 'assistant', 'content' => 'Bonjour ! Comment puis-je vous aider ?'],
    ],
]);

// Mode debug (pour inspecter le payload dans l'admin)
$result = $chatService->ask("Test", ['debug' => true]);
$debugId = $result['debug_id']; // Utilisez cet ID dans l'admin > Logs de Debug

Et après ?

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.
xiloryx/log-collector
a21ns1g4ts/filament-stripe
la-php/laravel-admin
artisan-build/community-prompts
vleroy/smart
ayles-software/laravel-australian-public-holidays
cboxdk/laravel-id-spatie
cboxdk/laravel-id-billing
cboxdk/laravel-id-billing-bridge
simple-as-fuck/php-performance-log
hsluv/hsluv
seampact/codegen
seampact/hooks
seampact/ir
mehedimi/laravel-amp-mail
happones/laravel-vue-i18n-generator
jwerd/inertia-table
siberfx/flysystem-wasabi
hollyit/token-replace
ippanelcom/laravel-sdk