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

Créer des outils IA (Function Calling)

Les outils permettent au LLM d'appeler des fonctions de votre application pour récupérer des données en temps réel ou effectuer des actions.

1. Implémenter l'interface

Créez une classe qui implémente ArnaudMoncondhuy\SynapseCore\Contract\AiToolInterface.

Exemple : Outil de calcul de prix

namespace App\Tool;

use ArnaudMoncondhuy\SynapseCore\Contract\AiToolInterface;

class PriceCalculatorTool implements AiToolInterface
{
    public function getName(): string
    {
        return 'calculate_total';
    }

    public function getDescription(): string
    {
        return 'Calcule le prix TTC à partir du HT. Utiliser cet outil quand l\'utilisateur demande un prix final.';
    }

    public function getInputSchema(): array
    {
        return [
            'type' => 'object',
            'properties' => [
                'ht_price' => ['type' => 'number', 'description' => 'Prix hors taxes'],
                'tva_rate' => ['type' => 'number', 'description' => 'Taux de TVA (ex: 20)'],
            ],
            'required' => ['ht_price', 'tva_rate'],
        ];
    }

    public function execute(array $parameters): mixed
    {
        return $parameters['ht_price'] * (1 + $parameters['tva_rate'] / 100);
    }
}

2. Enregistrement des outils

Le bundle utilise l'auto-configuration. Vous devez simplement taguer vos services avec synapse.tool (souvent automatique via _instanceof dans services.yaml).

# config/services.yaml
services:
    _instanceof:
        ArnaudMoncondhuy\SynapseCore\Contract\AiToolInterface:
            tags: ['synapse.tool']

3. Utilisation

Une fois l'outil enregistré, le LLM décidera automatiquement de l'appeler si la question de l'utilisateur correspond à la description de l'outil.

[!TIP] Plus votre description est précise, plus le LLM sera efficace pour choisir le bon outil au bon moment.

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.
mehedimi/laravel-amp-mail
happones/laravel-vue-i18n-generator
jwerd/inertia-table
siberfx/flysystem-wasabi
hollyit/token-replace
ippanelcom/laravel-sdk
adachsoft/changelog-linter
adachsoft/collection
payerurl/telegrambot-crypto-payment-instant-payout
dskripchenko/laravel-hybrid-search
riorizkyrainey/lara-ced
mehedimi/static-vel
zharp/zharp
nonsapiens/bigquery-model-sync
lgu-bayambang-ict-office/lgu-laravel-development-standards
andydefer/laravel-support
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel