Intégrez la recherche IA de LiKE dans vos applications, votre site web ou vos systèmes internes. Trois méthodes d'intégration : API REST, widget JS, iframe.


#API REST

Disponibilité selon l'offre. L'API publique et le widget public ne fonctionnent que sur les offres qui les incluent (voir Plans et facturation). Sur les autres offres, il est impossible de créer une clé ou un widget public, et ceux déjà émis cessent de répondre : une requête avec la clé reçoit 403, le bouton du widget n'apparaît pas sur le site. Le widget d'entreprise ne dépend pas de ce paramètre.

#Étape 1 — Créer une clé API

  1. Intégrations → API publique → « Créer une clé »
  2. Saisissez un nom (par exemple, « Application mobile »)
  3. Copiez la clé — elle n'est affichée qu'une seule fois

#Étape 2 — Utiliser l'API

Toutes les requêtes sont autorisées via l'en-tête :

X-API-Key: your-key

#Endpoints principaux

Endpoint Méthode Description
/api/public/search POST Recherche IA dans la base de connaissances
/api/public/toc GET Sommaire des articles publics
/api/public/articles GET Liste des articles publics
/api/public/articles/{id} GET Contenu de l'article

#Exemple : recherche IA

curl -X POST https://your-account.lynkora.pro/api/public/search \
  -H "X-API-Key: $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"q": "Как оформить отпуск?"}'

Réponse :

{
  "answer": "Для оформления отпуска...",
  "sources": [
    {"title": "Политика отпусков", "url": "..."}
  ]
}

#Limites de débit

Les requêtes API sont limitées par clé ; en cas de dépassement, une HTTP 429 est renvoyée avec un en-tête Retry-After.

#Sécurité

  1. Stockez les clés dans des variables d'environnement, pas dans le code
  2. Créez une clé distincte pour chaque application
  3. Supprimez les clés inutilisées
  4. Restreignez les domaines dans les paramètres de la clé

#Widget JS

Un bouton flottant de recherche IA à intégrer sur n'importe quel site web.

#Étape 1 — Obtenir le code

  1. Intégrations → Canaux → carte « JS Widget » → « Gérer les widgets » → « Créer un widget ». Indiquez l'« Adresse du site où le widget sera installé »
  2. Configurez les paramètres (voir le tableau ci-dessous)
  3. Copiez le code

#Étape 2 — L'ajouter à votre site

Insérez le <script> copié avant la balise fermante </body> :

#Où coller le code dans les constructeurs de sites

Le code est le même pour tous les sites — inutile de le modifier : le widget se repère lui-même sur la page, quel que soit l'endroit où le constructeur place la ligne. Seul change l'endroit où le coller.

N'importe quel site (HTML). Collez le code avant la balise fermante </body> sur chaque page qui a besoin de la recherche — ou dans le modèle commun du site.

WordPress. Installez l'extension WPCode (Insert Headers and Footers) → Code Snippets → Header & Footer → collez le code dans Footer → Save Changes. Sur WordPress.com, les extensions ne sont pas disponibles avec tous les forfaits.

Tilda. Pour tout le site : Site Settings → More → HTML code for the HEAD section → collez le code → Save → republiez toutes les pages. Pour une seule page : ajoutez le bloc Other → T123 (HTML code) et collez-y le code.

Wix. Dans le tableau de bord du site, ouvrez Settings → Custom Code (selon la version de l'interface — sous « Advanced » ou « Development & integrations ») → Add Custom Code → collez le code → All pages → Body — end → Apply. N'utilisez pas l'élément « Embed HTML » sur une page : il s'ouvre dans un cadre à une autre adresse, et le widget n'y fonctionnera pas. Le code personnalisé dans Wix est disponible avec un forfait premium et un domaine connecté.

Webflow. Site settings → Custom code → Footer code → collez le code → Save → publiez le site. Le code personnalisé pour l'ensemble du site est disponible avec les forfaits de site payants.

Squarespace. Ouvrez Code Injection (dans les paramètres du site ; selon la version de l'interface — sous Developer tools ou Website Tools) → collez le code dans Footer → Save. L'injection de code n'est pas disponible avec tous les forfaits.

Shopify. Online Store → Themes → … → Edit code → le fichier layout/theme.liquid → collez le code avant </body> → Save.

Framer. Site Settings → General → Custom Code → collez le code dans End of tag → publiez le site.

Google Tag Manager. Tags → New → Custom HTML → collez le code → déclencheur All Pages → Save → publiez le conteneur avec Publish.

Docusaurus. Le code se place dans docusaurus.config.js, avec la même clé :

scripts: [
  {
    src: 'https://your-account.lynkora.pro/api/public/widget.js',
    'data-key': 'wk_live_YOUR_KEY',
    async: true,
  },
],

Adresses du site. Le widget ne fonctionne que sur les adresses indiquées dans Domaines autorisés, et l'adresse est comparée exactement : example.com et www.example.com sont deux adresses différentes — ajoutez les deux. Si vous testez le site sur l'adresse d'aperçu du constructeur (par exemple *.tilda.ws, *.wixsite.com, *.webflow.io, *.myshopify.com), ajoutez-la aussi.

Le bouton n'apparaît pas ? Vérifiez trois choses : le widget est activé ; l'adresse de la page figure dans Domaines autorisés — exactement, avec ou sans www ; le code se trouve dans les paramètres ou le modèle du site, et non dans un élément que le constructeur ouvre dans un cadre.

#Paramètres du widget

Paramètre Valeur Description
data-key wk_live_... Obligatoire. La clé du widget (créée dans Intégrations → Canaux → JS Widget). Sans elle, le widget ne démarre pas
data-position bottom-right / bottom-left / none Position du bouton flottant (par défaut bottom-right)
data-theme light / dark / auto Thème visuel (par défaut light ; auto suit le thème de votre site)
data-lang ru / en / de / es / fr / it / pt / ko / sr / sr-Cyrl / zh / ar Langue par défaut. S'applique uniquement lorsque la langue du visiteur est inconnue : le choix du visiteur et les langues de son navigateur priment. Si aucune ne convient — l'anglais
data-hotkey k Touche d'ouverture combinée à Cmd/Ctrl (par défaut k → Cmd/Ctrl + K)
data-session-token JWT Facultatif. Jeton de session pour le mode d'identité par utilisateur (voir « Comparaison des modes d'authentification » ci-dessous)

#Résultat

Un bouton apparaît dans le coin de votre site (sa couleur provient des paramètres du widget). Cliquez → une fenêtre de chat avec un champ de question → une réponse IA issue de votre base de connaissances.

#Langue

Le visiteur change de langue avec le bouton en forme de globe dans l'en-tête de la fenêtre ; son choix est mémorisé dans son navigateur pour ce widget. Sans choix, le widget prend la première langue adaptée parmi celles du navigateur, puis la langue définie dans les paramètres du widget (data-lang), puis l'anglais. La langue de la page de votre site n'est pas prise en compte. En arabe, la fenêtre s'affiche de droite à gauche.

#Liaison au site

Le widget ne fonctionne que sur les adresses indiquées lors de sa création (« Adresse du site où le widget sera installé ») ; les requêtes provenant d'autres sites sont rejetées. Plusieurs adresses — séparées par des virgules. Sans adresse, le widget ne peut pas être activé, et l'astérisque « n'importe quel site » n'est pas acceptée. L'adresse est comparée à l'identique : example.com et www.example.com sont des adresses différentes, indiquez les deux si le site s'ouvre sous les deux. Pour un test en local, indiquez l'adresse avec le port, par exemple http://127.0.0.1:8899.

#Ce que voit le visiteur

  • Le texte de la réponse ne contient pas de marques de sources du type [2.3] ; les titres et les liens sont mis en forme.
  • Sous la réponse figure le bloc « Sources » : le lien mène à la page d'origine ou, à défaut, à l'article.
  • Le lien « Ouvrir la recherche complète » n'existe que pour le widget d'entreprise.

#Si la limite de réponses IA est épuisée

Le widget public est entièrement masqué sur le site jusqu'au rétablissement de la limite. Le widget d'entreprise reste en place, mais n'accepte pas de questions et indique quand la recherche sera de nouveau disponible.


#iframe

Une interface de recherche complète intégrée sur votre page :

#Code d'intégration

/embed est la seule adresse du portail autorisée à s'ouvrir dans un cadre sur un site tiers. La racine du portail (https://your-account.lynkora.pro) ne peut pas être intégrée : le navigateur la refusera. Le cadre n'a besoin d'aucune clé : il fonctionne de manière anonyme et affiche exactement ce que voit un visiteur anonyme du portail ; son périmètre provient des paramètres du widget.

#Lien direct

Si une iframe ne vous convient pas, donnez aux utilisateurs un lien direct : https://your-account.lynkora.pro


#Mode démo

Pour les tests sans clé API, un endpoint de démonstration est disponible avec des limitations :

Paramètre Valeur
Autorisation Non requise
Limites Une limite de requêtes par adresse s'applique. En cas de dépassement, HTTP 429 est renvoyé avec l'en-tête Retry-After
Usage Découverte de l'API. Pour une charge de production, créez une clé

Endpoint : POST /api/public/demo/search


#Comparaison des modes d'authentification

Le widget prend en charge deux modes d'authentification.

#Mode A — Faire confiance à la zone d'URL

Authentification côté client : vous êtes responsable de qui atteint les pages contenant le widget (VPN, SSO, routes protégées). Lynkora ne connaît pas l'identité de l'utilisateur — seulement l'Origin/IP de la requête. Le widget est visible par tous ceux qui ouvrent une page avec le code d'intégration.

  • Code backend : 0 ligne
  • Temps de mise en place : ~2 minutes
  • Adapté à : intranet, portail interne

#Mode B — Jeton de session (JWT par utilisateur)

Votre backend émet un jeton de session à courte durée de vie pour chaque utilisateur. Lynkora connaît l'identité, tient un audit par utilisateur et prend en charge la révocation et les DSAR RGPD.

  • Code backend : ~10 lignes (via le SDK)
  • Temps de mise en place : 1 à 2 heures
  • Adapté à : SaaS multi-tenant, secteurs réglementés
Mode A — Zone d'URL Mode B — Jeton de session
Identité de l'utilisateur non (Origin/IP uniquement) oui (JWT par utilisateur)
Audit par utilisateur non oui
Révocation / DSAR RGPD non oui
Code backend 0 ligne ~10 lignes (SDK)
Mise en place ~2 minutes 1 à 2 heures