Plugin Dify pour les pages web et la conversion de fichiers#
Le plugin EnConvert pour Dify ajoute six outils à n'importe quel agent ou workflow : lire une page web en markdown, chercher sur le web, lister les adresses d'un site, extraire des champs structurés, et convertir un fichier téléversé en markdown ou en PDF. Chaque rendu de page porte un score render_quality compris entre 0.0 et 1.0 : une page de vérification ou la coquille vide d'une single-page app arrive donc signalée, au lieu d'être analysée comme du vrai contenu.
enconvert · Source : enconvert/dify-enconvert · Dify minimum : 1.0.0 · Licence : MIT
Les six outils#
| Outil | Endpoint | Ce qu'il fait |
|---|---|---|
| Perceive URL | POST /v2/perceive |
Rend une page en markdown, HTML nettoyé, HTML brut, capture d'écran, PDF, liens, images ou données structurées, avec un score render_quality. Basé sur Perceive. |
| Web Search | POST /v2/lookup |
Recherche web, actualité, images, publications scientifiques, brevets et cartes, renvoyant titre, URL, extrait et position. Basé sur Lookup. |
| Discover URLs | POST /v2/discover |
Liste les adresses d'un site par sitemap, par crawl ou les deux, sans les rendre. Basé sur Discover. |
| Extract Structured | POST /v2/distill |
Récupère des champs nommés sur une ou plusieurs pages, ou sur un site qu'il crawle pour vous. Basé sur Distill. |
| Convert File to Markdown | POST /v1/convert/anything-to-markdown |
Transforme les fichiers Word, PowerPoint, Excel, PDF, EPUB, RTF, HTML et texte en markdown. Basé sur Anything to Markdown. |
| Convert File to PDF | POST /v1/convert/anything-to-pdf |
Transforme un document, un tableur, une présentation, une image, une page HTML ou un fichier texte en PDF. Basé sur Anything to PDF. |
Tout passe par la même API REST documentée sur ce site : le quota de votre offre, vos limites de débit et les fonctionnalités s'appliquent donc exactement comme partout ailleurs.
Installation#
Le plugin s'installe depuis sa release GitHub le temps que la fiche Marketplace soit examinée.
- Dans Dify, ouvrez Plugins en haut à droite.
- Cliquez sur Install Plugin, puis sur From GitHub.
- Collez l'URL du dépôt :
https://github.com/enconvert/dify-enconvert
- Choisissez la version dans le menu déroulant. Dify récupère l'asset
.difypkgcorrespondant dans cette release. - Vérifiez les permissions, puis cliquez sur Install.
Le plugin ne demande que la permission tool, et déclare des accès sortants vers api.enconvert.com, www.enconvert.com et l'hôte de stockage qui sert les fichiers convertis.
plugin verification has been enabled, and the plugin you want to install has a bad signature. Le correctif se trouve dans Dépannage. Dify Cloud n'est pas concerné.
Ajouter votre clé API#
Le plugin ne prend qu'un identifiant : EnConvert API Key.
- Générez une clé API privée dans le tableau de bord. Les clés privées commencent par
sk_. - Ouvrez le plugin EnConvert, cliquez sur To authorize et collez la clé.
- Enregistrez.
L'enregistrement appelle GET /v1/whoami, qui n'accepte que les clés privées : une clé publique pk_ est donc rejetée au moment même où vous la collez, au lieu d'échouer plus tard au sein d'une exécution de workflow. La clé voyage dans l'en-tête X-API-Key de chaque requête émise par le plugin.
pk_ sont destinées aux widgets navigateur et sont rejetées par tous les outils de ce plugin. Plus de détails dans Clés privées.
Lire une page#
Perceive URL prend l'URL fournie par l'agent et deux réglages issus du formulaire :
| Paramètre | Défini par | Par défaut | Objectif |
|---|---|---|---|
| URL | L'agent | -- | L'URL absolue à rendre |
| Outputs | Le formulaire | markdown,structured |
Au choix parmi markdown, html_cleaned, html_raw, screenshot, screenshot_full_page, pdf, links, images, structured, séparés par des virgules |
| Only Main Content | Le formulaire | Désactivé | Retire la navigation, les en-têtes et les pieds de page, en gardant l'article |
L'API renvoie chaque artefact sous forme d'URL signée valable 15 minutes, et non de texte inline, et un agent ne sait pas ouvrir une URL. Le plugin lit donc les artefacts texte pour vous : le markdown, le HTML nettoyé et le HTML brut sont récupérés et insérés dans le résultat de l'outil, jusqu'à 256 Ko chacun. Tout ce qui dépasse, et tout ce qui est binaire, reste un lien. La sortie structured fait exception : elle arrive inline, à la racine de la réponse.
Le score render_quality#
Chaque résultat Perceive porte render_quality, un nombre compris entre 0.0 et 1.0. Zéro signifie que la page était bloquée ou vide, un signifie un rendu propre. Le contenu revient dans les deux cas, signalé, de sorte qu'une mauvaise lecture n'entre jamais discrètement dans un résumé ou une base vectorielle.
Testez-le avec un nœud IF/ELSE placé avant le nœud LLM qui consomme le markdown. Dans un agent, le score se trouve dans le résultat d'outil que le modèle lit : une phrase dans le prompt système suffit alors à lui faire se méfier d'un score bas.
Extraire des champs#
Extract Structured a besoin d'un schéma et d'exactement une source. Le schéma est un objet JSON, sous l'une de deux formes. La plus rapide est une correspondance à plat entre nom de champ et description en langage courant :
{"title": "the page title", "price": "the monthly price in USD"}
Un JSON Schema complet, {"type": "object", "properties": {...}}, est l'autre forme, celle qui vaut la frappe supplémentaire quand vous avez besoin d'imposer des types ou des objets imbriqués.
Pour la source, passez URLs, une liste séparée par des virgules et plafonnée à 50, ou Discover From URL, un site unique que l'API crawle pour vous, cadré par Discover Mode et Discover Max Pages. Passer les deux, ou aucun des deux, renvoie un message qui vous le dit.
Les résultats arrivent dans results[], une entrée par URL, chacune avec ses propres données et son propre extraction_tier, qui indique si la réponse vient d'une passe déterministe ou d'un modèle qui a lu la page.
Convertir des fichiers#
Convert File to Markdown et Convert File to PDF prennent un fichier Dify, pas une URL. Branchez-y un fichier venant de l'entrée fichier d'un nœud Start, ou une variable de fichier produite par un nœud précédent. Le plugin téléverse les octets en multipart et renvoie une URL de téléchargement signée pour le résultat, valable environ 15 minutes et récupérée avec un simple GET, sans clé API.
C'est l'extension du nom de fichier téléversé qui décide du format d'entrée. Dify conserve le nom d'origine, ce qui rend la chose normalement invisible, mais un fichier qui arrive sans extension exploitable se rabat sur ses propres octets : un PDF, une image ou un DOCX est reconnu à sa signature, tandis qu'un format texte comme CSV ou HTML n'en a pas et est rejeté par un 400.
Construire avec#
Un agent qui fait de la recherche#
Donnez à un agent Web Search, Perceive URL et Discover URLs. La recherche trouve les pages candidates, Perceive lit en markdown les plus prometteuses, et Discover cartographie un site quand l'agent a besoin de savoir ce qu'il contient d'autre sans rien rendre.
Un workflow qui transforme un téléversement en réponse#
Start (file input) -> Convert File to Markdown -> LLM -> Answer
L'extraction de documents intégrée à Dify couvre les formats courants. Ce chemin ajoute ceux qu'elle ne couvre pas.
Dépannage#
plugin verification has been enabled, and the plugin you want to install has a bad signature.
Une instance Dify auto-hébergée impose par défaut la vérification de signature sur les paquets de plugin, et seuls les paquets du Marketplace portent une signature qu'elle reconnaît. Ajoutez FORCE_VERIFYING_SIGNATURE=false à docker/.env, puis redémarrez :
cd docker
docker compose down
docker compose up -d
Ce réglage s'applique à tous les plugins hors Marketplace de l'instance : traitez-le donc comme une décision qui engage l'instance, pas comme le détail d'une installation. Dify Cloud n'est pas concerné.
Aucune version n'apparaît dans la boîte de dialogue d'installation.
Dify ne liste une release que si un asset .difypkg y est attaché. Ouvrez la dernière release et vérifiez que l'asset figure bien sous Assets. Un menu déroulant vide veut dire qu'il n'y a pas de paquet, pas que ce n'est pas le bon.
L'enregistrement de l'identifiant échoue.
La clé est incorrecte, ou c'est une clé publique pk_. Générez une clé privée dans le tableau de bord. L'enregistrement appelle GET /v1/whoami, qui n'accepte que les clés privées.
Un outil signale que l'opération n'est pas incluse dans mon offre. Perceive, Web Search, Discover et Extract Structured puisent dans l'allocation mensuelle d'ops de votre offre. Vérifiez votre consommation sur la page des tarifs.
Perceive renvoie un lien là où j'attendais du markdown. Le markdown dépassait la limite de 256 Ko en inline : le plugin a donc transmis l'URL signée à la place. Récupérez-la avec un simple GET, sans clé API. Only Main Content ramène en général une longue page sous la limite.
Un outil de conversion dit qu'il attendait un fichier téléversé.
Une chaîne d'URL a été branchée sur le paramètre File. Les deux outils de conversion prennent un fichier Dify. Pour convertir une page web, utilisez Perceive URL avec pdf ou markdown dans Outputs.
Source et liens#
- Source : enconvert/dify-enconvert
- Dernière release : releases/latest
- Licence : MIT
- Documentation des plugins Dify : docs.dify.ai
- API sous-jacente : Introduction
Questions fréquentes#
Comment installer le plugin EnConvert dans Dify ?#
Ouvrez Plugins, cliquez sur Install Plugin, puis sur From GitHub, et collez https://github.com/enconvert/dify-enconvert. Choisissez la version dans le menu déroulant, vérifiez les permissions et cliquez sur Install. Dify récupère l'asset .difypkg directement depuis cette release GitHub, un chemin d'installation documenté qui ne demande aucune fiche Marketplace.
Puis-je l'installer avant l'approbation de la fiche Marketplace ?#
Oui. L'installation depuis une release GitHub est l'une des voies de publication officielles de Dify et demande à peu près autant de clics que le Marketplace. Seule différence : une instance auto-hébergée avec la vérification de signature activée refuse un paquet hors Marketplace tant que vous n'avez pas mis FORCE_VERIFYING_SIGNATURE=false dans docker/.env.
Comment lire une page web en markdown dans un agent Dify ?#
Ajoutez Perceive URL comme outil et laissez Outputs sur sa valeur par défaut. L'agent transmet l'URL, et le plugin renvoie le markdown inline dans le résultat de l'outil, jusqu'à 256 Ko : le modèle lit donc la page, et non un lien qu'il ne sait pas ouvrir. Activez Only Main Content pour retirer la navigation et les pieds de page.
Pourquoi Perceive me donne-t-il un lien au lieu du texte ?#
Chaque artefact produit par l'API est une URL signée valable 15 minutes. Le plugin va chercher les artefacts texte et les insère inline, jusqu'à 256 Ko. Une page plus grosse, ou une sortie binaire comme une capture d'écran ou un PDF, reste un lien, récupéré avec un simple GET et sans clé API.
Comment convertir un DOCX téléversé en PDF dans un workflow Dify ?#
Ajoutez une entrée fichier au nœud Start, puis branchez cette variable de fichier sur Convert File to PDF. L'outil téléverse les octets et renvoie une URL de téléchargement signée pour le PDF. C'est l'extension du nom de fichier qui décide du format d'entrée : conservez donc le nom d'origine.