# OneShotAiPanel > Composant React open-source qui se connecte au LLM que vous configurez (opencode, shadcn, fallback) et exécute vos tâches en un seul tour : streaming JSON, schéma validé, review des différences et plug direct dans votre stack. ## Qu'est-ce que OneShotAiPanel ? Un composant React qui se connecte au LLM de votre choix et transforme une demande en livrables validés, sans copier-coller manuel. ## Fonctionnalités - **Connexion au LLM configuré** : le composant appelle le provider que vous configurez (opencode, shadcn, fallback, ou un onSend personnalisé) - **Streaming JSON temps réel** : la réponse du modèle arrive en streaming et est validée contre des schémas (zod) - **Schémas JSON validés** : chaque ticket attend une structure précise, contrôlée par schéma - **Validation automatique** : en cas d'écart, un feedback ciblé est renvoyé pour un second tour - **Diff & review** : si du contenu existe déjà, un diff ligne à ligne montre ce qui change avant d'intégrer - **Plug direct** : récupérez les contenus sélectionnés via onPlug et branchez-les dans votre code, votre adapter ou votre SDK ## Comment ça marche - **1. Décrivez la tâche** — Un prompt utilisateur, un prompt système et les fichiers de contexte. Le composant assemble le prompt final. - **2. Configurez la connexion au modèle** — Le composant se connecte au provider que vous configurez via l'adapter (opencode, shadcn, fallback) ou votre propre onSend. Sans cette connexion, rien ne fonctionne. - **3. Un envoi unique** — Le modèle répond en streaming JSON. Les tickets attendent chacun une structure précise, contrôlée par schéma. - **4. Validation automatique** — La réponse est validée contre les schémas. En cas d'écart, un feedback ciblé est renvoyé pour un second tour. - **5. Diff & review** — Si du contenu existe déjà, un diff ligne à ligne vous montre ce qui change avant d'intégrer. - **6. Plug** — Récupérez les contenus sélectionnés via onPlug et branchez-les dans votre code, votre adapter ou votre SDK. ## Configuration (props principales) ### Contenu - `title` — Titre affiché dans l'en-tête du composant. - `systemPrompt` — Le rôle et les règles donnés au modèle. - `initialUserPrompt` — La demande initiale pré-remplie dans le champ utilisateur. ### Contexte - `files` — Fichiers du projet fournis comme contexte au modèle. - `tickets` — Découpage de la tâche, chaque ticket avec son schéma JSON. ### Contrat - `parser` — Personnalise le parsing et la validation de la réponse. - `invalidMode` — Avertir ou bloquer quand la réponse ne valide pas les schémas. ### Adapter - `adapter` — Provider (opencode, shadcn, fallback), modèle et clé API. - `onSend` — Remplacer l'envoi par votre propre logique (SDK, proxy…). ### Événements - `onPlug` — Appelé quand l'utilisateur intègre les contenus sélectionnés. ### i18n - `language` — Langue de l'interface. - `labels` — Surcharge fine de n'importe quel libellé. ### UI - `actionLabel` — Libellé du bouton principal d'exécution. - `showInfoButton` — Affiche le bouton d'aide / intégration / crédits. - `showSettingsButton` — Affiche le bouton de configuration. - `showInfoIntegration` — Affiche le point d'intégration dans le panneau d'aide. - `showInfoCredits` — Affiche les crédits dans le panneau d'aide. ## Installation Le code source et la démo sont sur GitHub : - Dépôt : https://github.com/bn-dev-19/one-shot-ai-panel - Version actuelle : v1.1.3 (archive : https://github.com/bn-dev-19/one-shot-ai-panel/archive/refs/tags/v1.1.3.zip) ## Playground Le composant tourne réellement sur le site : : https://oneshot-ai-panel.asistem19.com/fr#playground ## Liens - Page d'accueil : https://oneshot-ai-panel.asistem19.com/fr - GitHub : https://github.com/bn-dev-19/one-shot-ai-panel - Licence : https://oneshot-ai-panel.asistem19.com/fr/license - Conditions d'utilisation : https://oneshot-ai-panel.asistem19.com/fr/terms - Politique de confidentialité : https://oneshot-ai-panel.asistem19.com/fr/privacy - Crédits : https://oneshot-ai-panel.asistem19.com/fr/credits