Knowledge este colecția de date proprii pe care aplicațiile Dify le folosesc drept context (RAG): la o întrebare, sistemul caută fragmentele relevante, le adaugă la prompt, iar modelul răspunde pe baza lor. Poți crea o bază ready-to-use (importi datele, alegi regulile, Dify face restul), una personalizată prin Knowledge Pipeline sau te conectezi la o bază externă prin External Knowledge API (de exemplu AWS Bedrock); în ultimul caz, Dify doar citește.
Sursele pentru o bază ready-to-use sunt fișiere locale (implicit 5 fișiere pe încărcare și 15 MB pe fișier, prin UPLOAD_FILE_BATCH_LIMIT și UPLOAD_FILE_SIZE_LIMIT), Notion, pagini web preluate cu Jina Reader sau Firecrawl ori o bază goală. Sursa nu se mai poate schimba după creare. Extractorul implicit acceptă txt, md, pdf, html, xlsx, docx și csv; cu Unstructured se adaugă doc, ppt, pptx, eml și altele. Imaginile JPG, JPEG, PNG și GIF sub 2 MB din DOCX și XLSX se atașează chunk-urilor (cel mult 10 pe chunk).
Chunking. În modul General toate chunk-urile au aceleași setări: delimitator (de exemplu \n\n; delimitatorul se elimină din text), lungime maximă și suprapunere, ambele în caractere. În modul Parent-child, chunk-urile copil, mai mici, se folosesc la potrivire, iar chunk-ul părinte întreg se trimite modelului; părintele este un paragraf sau tot documentul (Full Doc, din care se procesează doar primii 10.000 de tokeni). Modul nu se schimbă după creare. Opțional, Summary Auto-Gen generează și indexează un rezumat pentru fiecare chunk.
Indexare și căutare. High Quality transformă chunk-urile în vectori cu un model de embedding și permite căutare vectorială, full-text sau hibridă; opțional, Q&A Mode generează perechi întrebare-răspuns și compară întrebarea utilizatorului cu întrebările generate. O bază High Quality nu mai poate trece la Economical. Economical folosește 10 cuvinte cheie pe chunk și un index inversat, fără tokeni consumați, cu precizie mai mică, și acceptă doar TopK. Căutarea hibridă combină rezultatele vectoriale și full-text prin Weight Settings (pondere semantică / cuvinte cheie) sau printr-un Rerank Model configurat în Integrations › Model Provider. TopK este implicit 3, iar Score Threshold 0,5.
Concepte cheie și caracteristici
| Concept / Parametru | Descriere practică |
|---|---|
General |
Chunk-uri cu aceleași setări, returnate direct. Compatibil cu High Quality și Economical. |
Parent-child |
Copilul se potrivește cu întrebarea, părintele se trimite ca context. Doar cu High Quality. |
Delimiter / Maximum chunk length / Chunk overlap |
Unde se taie textul, lungimea maximă în caractere și câte caractere se repetă între chunk-uri vecine. |
High Quality |
Embedding + căutare vectorială, full-text sau hibridă. Cu un model de embedding multimodal (iconița Vision), indexează și imaginile. |
Economical |
10 cuvinte cheie pe chunk, index inversat, fără cost de tokeni; se poate trece ulterior la High Quality. |
Q&A Mode |
Generează perechi întrebare-răspuns din fiecare segment și potrivește „întrebare cu întrebare”. |
Vector / Full-Text / Hybrid Search |
Similaritate de vectori, căutare după termeni sau ambele combinate. |
Rerank Model / Weight Settings |
Reordonarea rezultatelor cu un model de rerank (consumă tokeni la furnizor) sau ponderi fixe între semantic și cuvinte cheie. |
TopK / Score Threshold |
Câte chunk-uri se întorc (implicit 3, maxim TOP_K_MAX_VALUE, implicit 10) și scorul minim (implicit 0,5). La căutarea vectorială și full-text se aplică doar în faza de rerank. |
Metadata |
Câmpuri pe documente pentru filtrarea căutării, în baza de cunoștințe și în nodul Knowledge Retrieval. |
Test Retrieval |
Simulezi întrebări și vezi ce chunk-uri se întorc, înainte de a lega baza într-o aplicație. |
Exemple practice și scenarii reale
Exemplul 1: O bază pentru documentație tehnică
Valorile de lungime, suprapunere, TopK și prag sunt alegeri de pornire, de verificat cu Test Retrieval pe întrebări reale.
1. Knowledge → Create → Create a ready-to-use knowledge base
2. Import from file → manual_erp.pdf (sub 15 MB, limita implicită)
3. Chunk Settings:
• Mod: Parent-child, părinte Paragraph, delimitator \n\n
• Copil: delimitator \n, lungime maximă 300 de caractere
• Preview pentru a vedea împărțirea
4. Index Method: High Quality, modelul de embedding configurat în Model Provider
5. Retrieval Setting: Hybrid Search + Rerank Model, TopK 4, Score Threshold 0,6
6. Save & Process, apoi Test Retrieval cu „Ce înseamnă eroarea E-104?”
Exemplul 2: Căutare în baza de cunoștințe prin API
Endpoint-ul folosește o cheie API de knowledge (Knowledge › Service API), nu cheia unei aplicații. retrieval_model este opțional; fără el se folosesc setările bazei.
curl -X POST "https://dify.example.com/v1/datasets/$DATASET_ID/retrieve" \
-H "Authorization: Bearer $DIFY_KNOWLEDGE_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": "Ce înseamnă eroarea E-104?",
"retrieval_model": {
"search_method": "semantic_search",
"reranking_enable": false,
"top_k": 4,
"score_threshold_enabled": false
}
}'
Greșeli frecvente și capcane
- Setezi TopK și Score Threshold la căutarea vectorială sau full-text fără model de rerank și te aștepți să se aplice. Documentația spune că ambele funcționează doar în faza de rerank.
- Alegi Parent-child cu indexare Economical. Parent-child funcționează doar cu High Quality.
- Te bazezi pe faptul că vei schimba mai târziu modul de chunking, sursa datelor sau trecerea High Quality → Economical. Niciuna nu mai e posibilă după creare.
- Indexezi PDF-uri scanate fără strat de text. Fragmentele rezultate sunt goale sau ilizibile; folosește un pipeline cu un extractor care face OCR.