Dify Plugin für Webseiten und Dateikonvertierung#

Das EnConvert Plugin für Dify ergänzt jeden Agenten und jeden Workflow um sechs Tools: eine Webseite als Markdown lesen, das Web durchsuchen, die URLs einer Site auflisten, strukturierte Felder extrahieren und eine hochgeladene Datei nach Markdown oder PDF konvertieren. Jeder Seiten-Render trägt einen render_quality-Wert von 0.0 bis 1.0, sodass eine Challenge-Seite oder die leere Hülle einer Single-Page-App markiert ankommt, statt als echter Inhalt weiterverarbeitet zu werden.

Paket: enconvert · Quelle: enconvert/dify-enconvert · Mindestversion Dify: 1.0.0 · Lizenz: MIT

Die sechs Tools#

Tool Endpunkt Was es macht
Perceive URL POST /v2/perceive Rendert eine Seite nach Markdown, bereinigtem HTML, rohem HTML, einem Screenshot, einem PDF, Links, Bildern oder strukturierten Daten, mit einem render_quality-Wert. Basiert auf Perceive.
Web Search POST /v2/lookup Web-, News-, Bild-, Scholar-, Patent- und Kartensuche, mit Titel, URL, Snippet und Position. Basiert auf Lookup.
Discover URLs POST /v2/discover Listet die URLs einer Site per Sitemap, Crawl oder beidem auf, ohne sie zu rendern. Basiert auf Discover.
Extract Structured POST /v2/distill Holt benannte Felder aus einer oder aus vielen Seiten, oder aus einer Site, die die API für dich crawlt. Basiert auf Distill.
Convert File to Markdown POST /v1/convert/anything-to-markdown Macht aus Word-, PowerPoint-, Excel-, PDF-, EPUB-, RTF-, HTML- und Textdateien Markdown. Basiert auf Anything to Markdown.
Convert File to PDF POST /v1/convert/anything-to-pdf Macht aus einem Dokument, einer Tabelle, einer Präsentation, einem Bild, einer HTML- oder Textdatei ein PDF. Basiert auf Anything to PDF.

Alles läuft gegen dieselbe REST-API, die auf dieser Site dokumentiert ist, also greifen dein Plan-Kontingent, deine Rate-Limits und deine Features genau so wie überall sonst.


Installation#

Das Plugin installierst du aus seinem GitHub Release, solange der Marketplace-Eintrag noch in Prüfung ist.

  1. Öffne in Dify oben rechts Plugins.
  2. Klicke auf Install Plugin und dann auf From GitHub.
  3. Füge die Repository-URL ein:
https://github.com/enconvert/dify-enconvert
  1. Wähle die Version aus dem Dropdown. Dify holt das passende .difypkg-Asset aus diesem Release.
  2. Prüfe die Berechtigungen und klicke auf Install.

Das Plugin fragt ausschließlich die Tool-Berechtigung an und deklariert ausgehenden Zugriff auf api.enconvert.com, www.enconvert.com und den Storage-Host, der die konvertierten Dateien ausliefert.

Selbst gehostete Dify-Instanzen prüfen Plugin-Signaturen standardmäßig. Nur Marketplace-Pakete tragen eine Signatur, die Dify kennt, deshalb scheitert eine GitHub-Installation mit plugin verification has been enabled, and the plugin you want to install has a bad signature. Die Lösung steht unter Fehlerbehebung. Dify Cloud ist nicht betroffen.

API-Key hinterlegen#

Das Plugin braucht genau eine Zugangsberechtigung: EnConvert API Key.

  1. Erzeuge im Dashboard einen privaten API-Key. Private Keys beginnen mit sk_.
  2. Öffne das EnConvert-Plugin, klicke auf To authorize und füge den Key ein.
  3. Speichere.

Das Speichern ruft GET /v1/whoami auf, und dieser Endpunkt akzeptiert ausschließlich private Keys. Ein öffentlicher pk_-Key wird also schon in dem Moment abgewiesen, in dem du ihn einfügst, statt später mitten in einem Workflow-Lauf zu scheitern. Der Key reist bei jedem Request des Plugins im Header X-API-Key mit.

Öffentliche Keys funktionieren nicht. Keys, die mit pk_ beginnen, sind für Browser-Widgets gedacht und werden von jedem Tool in diesem Plugin abgelehnt. Mehr dazu unter Private Keys.

Eine Seite lesen#

Perceive URL bekommt die URL vom Agenten und zwei Einstellungen aus dem Formular:

Parameter Gesetzt von Standard Zweck
URL Dem Agenten -- Die absolute URL, die gerendert wird
Outputs Dem Formular markdown,structured Beliebige aus markdown, html_cleaned, html_raw, screenshot, screenshot_full_page, pdf, links, images, structured, kommagetrennt
Only Main Content Dem Formular Aus Navigation, Kopf- und Fußzeilen entfernen und den Artikel behalten

Die API gibt jedes Artefakt als signierte URL zurück, die nach 15 Minuten abläuft, nicht als Inline-Text, und ein Agent kann keine URL öffnen. Deshalb liest das Plugin die Text-Artefakte für dich: Markdown, bereinigtes HTML und rohes HTML werden abgeholt und bis zu je 256 KB direkt in das Tool-Ergebnis eingebettet. Alles Größere und alles Binäre bleibt ein Link. Die Ausnahme ist die structured-Ausgabe, die inline auf der obersten Ebene der Antwort ankommt.


Der render_quality-Wert#

Jedes Perceive-Ergebnis trägt render_quality, eine Zahl von 0.0 bis 1.0. Null heißt, die Seite war blockiert oder leer, Eins heißt sauberer Render. Der Inhalt kommt in beiden Fällen zurück, markiert, sodass ein schlechter Lesevorgang nie stillschweigend in eine Zusammenfassung oder einen Vector Store wandert.

Verzweige darauf mit einem IF/ELSE-Node, bevor der LLM-Node das Markdown verarbeitet. In einem Agenten steht der Wert im Tool-Ergebnis, das das Modell ohnehin liest, also reicht ein Satz im System-Prompt, damit das Modell einem niedrigen Wert misstraut.


Felder extrahieren#

Extract Structured braucht ein Schema und genau eine Quelle. Das Schema ist ein JSON-Objekt in einer von zwei Formen. Die schnelle ist eine flache Zuordnung von Feldname zu einer Beschreibung in normaler Sprache:

{"title": "the page title", "price": "the monthly price in USD"}

Die andere ist ein vollständiges JSON Schema, {"type": "object", "properties": {...}}, und den Tippaufwand wert, sobald du Typen oder verschachtelte Objekte erzwingen willst.

Als Quelle übergibst du URLs, eine kommagetrennte Liste mit höchstens 50 Einträgen, oder Discover From URL, eine einzelne Site, die die API für dich crawlt, gesteuert über Discover Mode und Discover Max Pages. Übergibst du beides oder nichts, bekommst du eine Meldung, die genau das sagt.

Die Ergebnisse kommen als results[], ein Eintrag pro URL, jeder mit eigenen Daten und eigenem extraction_tier, das sagt, ob ein deterministischer Durchlauf oder ein Modell, das die Seite liest, die Antwort geliefert hat.


Dateien konvertieren#

Convert File to Markdown und Convert File to PDF nehmen eine Dify-Datei entgegen, keine URL. Verdrahte eine Datei aus dem File-Input eines Start-Nodes oder eine Datei-Variable aus einem früheren Node. Das Plugin lädt die Bytes als Multipart hoch und gibt eine signierte Download-URL für das Ergebnis zurück, rund 15 Minuten gültig und mit einem einfachen GET ohne API-Key abrufbar.

Die Endung des hochgeladenen Dateinamens entscheidet über das Eingabeformat. Dify reicht den ursprünglichen Namen durch, das bleibt also normalerweise unsichtbar, aber eine Datei ohne brauchbare Endung fällt auf ihre eigenen Bytes zurück: Ein PDF, ein Bild oder ein DOCX wird an seiner Signatur erkannt, ein Textformat wie CSV oder HTML hat keine und wird mit einem 400 abgelehnt.


Damit bauen#

Ein Agent, der recherchiert#

Gib einem Agenten Web Search, Perceive URL und Discover URLs. Die Suche findet Kandidatenseiten, Perceive liest die vielversprechenden als Markdown, und Discover kartiert eine Site, wenn der Agent wissen muss, was sonst noch darauf liegt, ohne irgendetwas zu rendern.

Ein Workflow, der aus einem Upload eine Antwort macht#

Start (file input)  ->  Convert File to Markdown  ->  LLM  ->  Answer

Difys eigene Dokumentenextraktion deckt die gängigen Formate ab. Dieser Weg ergänzt die, die sie nicht abdeckt.


Fehlerbehebung#

plugin verification has been enabled, and the plugin you want to install has a bad signature. Eine selbst gehostete Dify-Instanz erzwingt die Signaturprüfung für Plugin-Pakete standardmäßig, und nur Marketplace-Pakete tragen eine Signatur, die sie kennt. Trage FORCE_VERIFYING_SIGNATURE=false in docker/.env ein und starte dann neu:

cd docker
docker compose down
docker compose up -d

Diese Einstellung gilt für jedes Nicht-Marketplace-Plugin auf der Instanz, behandle sie also als Entscheidung über die Instanz und nicht über eine einzelne Installation. Dify Cloud ist nicht betroffen.

Im Install-Dialog erscheinen keine Versionen. Dify listet ein Release nur, wenn ein .difypkg-Asset daran hängt. Öffne das neueste Release und prüfe unter Assets, ob das Asset da ist. Ein leeres Dropdown heißt: kein Paket, nicht das falsche.

Das Speichern der Zugangsdaten schlägt fehl. Der Key ist falsch, oder es ist ein öffentlicher pk_-Key. Erzeuge im Dashboard einen privaten Key. Das Speichern ruft GET /v1/whoami auf, das ausschließlich private Keys akzeptiert.

Ein Tool meldet, die Operation sei nicht in meinem Plan enthalten. Perceive, Web Search, Discover und Extract Structured zehren vom monatlichen Ops-Kontingent deines Plans. Prüfe deine Nutzung auf der Preisseite.

Perceive liefert einen Link, wo Markdown erwartet war. Das Markdown hat die Inline-Grenze von 256 KB überschritten, deshalb hat das Plugin stattdessen die signierte URL übergeben. Hol sie mit einem einfachen GET ohne API-Key ab. Only Main Content bringt eine lange Seite meist wieder unter die Grenze.

Ein Convert-Tool sagt, es habe eine hochgeladene Datei erwartet. In den Parameter File wurde ein URL-String verdrahtet. Beide Convert-Tools nehmen eine Dify-Datei entgegen. Um eine Webseite zu konvertieren, nutze Perceive URL mit pdf oder markdown unter Outputs.



Häufig gestellte Fragen#

Wie installiere ich das EnConvert-Plugin in Dify?#

Öffne Plugins, klicke auf Install Plugin, dann auf From GitHub, und füge https://github.com/enconvert/dify-enconvert ein. Wähle die Version aus dem Dropdown, prüfe die Berechtigungen und klicke auf Install. Dify holt das .difypkg-Asset direkt aus diesem GitHub Release, ein dokumentierter Installationsweg, der keinen Marketplace-Eintrag braucht.

Kann ich es installieren, bevor der Marketplace-Eintrag freigegeben ist?#

Ja. Die Installation aus einem GitHub Release ist einer von Difys eigenen Veröffentlichungswegen und kostet etwa gleich viele Klicks wie der Marketplace. Der einzige Unterschied: Eine selbst gehostete Instanz mit aktivierter Signaturprüfung verweigert ein Nicht-Marketplace-Paket, bis du in docker/.env FORCE_VERIFYING_SIGNATURE=false setzt.

Wie lese ich in einem Dify-Agenten eine Webseite als Markdown?#

Füge Perceive URL als Tool hinzu und lass Outputs auf dem Standard. Der Agent übergibt die URL, und das Plugin gibt das Markdown inline im Tool-Ergebnis zurück, bis zu 256 KB, sodass das Modell die Seite liest und nicht einen Link, den es nicht öffnen kann. Schalte Only Main Content ein, um Navigation und Fußzeilen wegzulassen.

Jedes Artefakt, das die API erzeugt, ist eine signierte URL mit 15 Minuten Gültigkeit. Das Plugin holt die Text-Artefakte und bettet sie ein, bis zu 256 KB. Eine größere Seite oder eine binäre Ausgabe wie ein Screenshot oder ein PDF bleibt ein Link, abrufbar mit einem einfachen GET ohne API-Key.

Wie konvertiere ich in einem Dify-Workflow eine hochgeladene DOCX zu PDF?#

Füge dem Start-Node einen File-Input hinzu und verdrahte diese Datei-Variable in Convert File to PDF. Das Tool lädt die Bytes hoch und gibt eine signierte Download-URL für das PDF zurück. Die Endung des Dateinamens entscheidet über das Eingabeformat, behalte also den ursprünglichen Namen.