trustgraph/docs/tech-specs/extraction-flows.hi.md
Alex Jenkins 8954fa3ad7 Feat: TrustGraph i18n & Documentation Translation Updates (#781)
Native CLI i18n: The TrustGraph CLI has built-in translation support
that dynamically loads language strings. You can test and use
different languages by simply passing the --lang flag (e.g., --lang
es for Spanish, --lang ru for Russian) or by configuring your
environment's LANG variable.

Automated Docs Translations: This PR introduces autonomously
translated Markdown documentation into several target languages,
including Spanish, Swahili, Portuguese, Turkish, Hindi, Hebrew,
Arabic, Simplified Chinese, and Russian.
2026-04-14 12:08:32 +01:00

355 lines
24 KiB
Markdown

---
layout: default
title: "निष्कर्षण प्रवाह (निकालने की प्रक्रियाएं)"
parent: "Hindi (Beta)"
---
# निष्कर्षण प्रवाह (निकालने की प्रक्रियाएं)
> **Beta Translation:** This document was translated via Machine Learning and as such may not be 100% accurate. All non-English languages are currently classified as Beta.
यह दस्तावेज़ बताता है कि डेटा ट्रस्टग्राफ निष्कर्षण पाइपलाइन के माध्यम से कैसे प्रवाहित होता है, दस्तावेज़ जमा करने से लेकर ज्ञान भंडारों में भंडारण तक।
## अवलोकन
```
┌──────────┐ ┌─────────────┐ ┌─────────┐ ┌────────────────────┐
│ Librarian│────▶│ PDF Decoder │────▶│ Chunker │────▶│ Knowledge │
│ │ │ (PDF only) │ │ │ │ Extraction │
│ │────────────────────────▶│ │ │ │
└──────────┘ └─────────────┘ └─────────┘ └────────────────────┘
│ │
│ ├──▶ Triples
│ ├──▶ Entity Contexts
│ └──▶ Rows
└──▶ Document Embeddings
```
## सामग्री भंडारण
### ब्लॉब भंडारण (S3/Minio)
दस्तावेज़ सामग्री S3-संगत ब्लॉब भंडारण में संग्रहीत की जाती है:
पथ प्रारूप: `doc/{object_id}` जहाँ object_id एक UUID है
सभी दस्तावेज़ प्रकार यहां संग्रहीत किए जाते हैं: स्रोत दस्तावेज़, पृष्ठ, खंड
### मेटाडेटा भंडारण (कैसेंड्रा)
कैसेंड्रा में संग्रहीत दस्तावेज़ मेटाडेटा में शामिल हैं:
दस्तावेज़ आईडी, शीर्षक, प्रकार (MIME प्रकार)
ब्लॉब भंडारण के लिए `object_id` संदर्भ
चाइल्ड दस्तावेज़ों (पृष्ठों, खंडों) के लिए `parent_id`
`document_type`: "स्रोत", "पृष्ठ", "खंड", "उत्तर"
### इनलाइन बनाम स्ट्रीमिंग थ्रेशोल्ड
सामग्री प्रेषण एक आकार-आधारित रणनीति का उपयोग करता है:
**< 2MB**: मग्र संदेश में इनलइन ि है (base64-एन्कडेड)
** 2MB**: केवल `document_id` भेज है; प्रसेसर इब्रेरियन API के ध्यम से प्रप्त करत है
## चरण 1: दस्तावेज़ सबमिशन (लाइब्रेरियन)
### प्रवेश बिंदु
दस्तवेज़ इब्रेरियन के `add-document` ऑपरेशन के ध्यम से िस्टम में प्रवेश करते हैं:
1. मग्र ब्ल भंडरण में अपल ि है
2. कैसेंड्र में मेटडेट िर्ड बन है
3. दस्तवेज़ आईड पस करत है
### निष्कर्षण को ट्रिगर करना
`add-processing` ऑपरेशन िष्कर्षण ट्रिगर करत है:
`document_id`, `flow` (इपलइन आईडी), `collection` (लक्ष्य स्ट) िर्दिष्ट करत है
इब्रेरियन `load_document()` मग्र प्रप्त करत है और फ्ल इनपुट कत पर प्रकि करत है
### स्कीमा: दस्तावेज़
```
Document
├── metadata: Metadata
│ ├── id: str # Document identifier
│ ├── user: str # Tenant/user ID
│ ├── collection: str # Target collection
│ └── metadata: list[Triple] # (largely unused, historical)
├── data: bytes # PDF content (base64, if inline)
└── document_id: str # Librarian reference (if streaming)
```
**राउटिंग (Routing)**: `kind` फ़ल्ड के आध पर:
`application/pdf` `document-load` क्यू एफ िडर
`text/plain` `text-load` क्यू चंकर
## चरण 2: पीडीएफ डिकोडर
एफ दस्तवेज टेक्स्ट पृष्ठ में परिवर्ति करत है
### प्रक्रिया
1. मग्र प्रप्त करें (इनलइन `data` इब्रेरियन से `document_id` के ध्यम से)
2. PyPDF उपय करके पृष्ठ िलें
3. प्रत्येक पृष्ठ के िए:
इब्रेरियन में इल्ड दस्तवेज़ के रूप में सहेजें (`{doc_id}/p{page_num}`)
प्रिकत ट्रिपल उत्सर्जि करें (पृष्ठ दस्तवेज़ से प्रप्त है)
चंकर अग्रेषि करें
### स्कीमा: TextDocument
```
TextDocument
├── metadata: Metadata
│ ├── id: str # Page URI (e.g., https://trustgraph.ai/doc/xxx/p1)
│ ├── user: str
│ ├── collection: str
│ └── metadata: list[Triple]
├── text: bytes # Page text content (if inline)
└── document_id: str # Librarian reference (e.g., "doc123/p1")
```
## चरण 3: चंकर (Chunker)
यह टेक्स्ट न्फ़िगर ि गए आक में टुकड़ में िि करत है
### पैरामीटर (फ्लो-कॉन्फ़िगर करने योग्य)
`chunk_size`: अक्षर में लक्षि टुकड़ आक (िफ़ल्ट: 2000)
`chunk_overlap`: टुकड़ के ओवरलैप (िफ़ल्ट: 100)
### प्रक्रिया
1. टेक्स्ट मग्र प्रप्त करें (इनलइन इब्रेरियन के ध्यम से)
2. िकर्सि कैरेक्टर स्प्लिटर उपय करके िि करें
3. प्रत्येक टुकड़े के िए:
इब्रेरियन में इल्ड दस्तवेज़ के रूप में सहेजें (`{parent_id}/c{index}`)
प्रिकत ट्रिपल उत्सर्जि करें (टुकड़ पृष्ठ/दस्तवेज़ से प्रप्त हुआ है)
िष्कर्षण प्रसेसर अग्रेषि करें
### स्कीमा: टुकड़ा (Chunk)
```
Chunk
├── metadata: Metadata
│ ├── id: str # Chunk URI
│ ├── user: str
│ ├── collection: str
│ └── metadata: list[Triple]
├── chunk: bytes # Chunk text content
└── document_id: str # Librarian chunk ID (e.g., "doc123/p1/c3")
```
### दस्तावेज़ आईडी पदानुक्रम
इल्ड दस्तवेज़ अपन उत्पत्ति आईड में एन्क करते हैं:
स्रत: `doc123`
पृष्ठ: `doc123/p5`
पृष्ठ से अंश: `doc123/p5/c2`
से अंश: `doc123/c2`
## चरण 4: ज्ञान निष्कर्षण
कई िष्कर्षण पैटर्न उपलब्ध हैं, िन्हें प्रव न्फ़िगरेशन द्व चुन है
### पैटर्न ए: बेसिक ग्राफआरएजी
समंतर प्रसेसर:
**kg-extract-definitions**
इनपुट: अंश
आउटपुट: ट्रिपल (इक परिएँ), एंटिन्टेक्स्ट
िष्कर्षण: इक लेबल, परिएँ
**kg-extract-relationships**
इनपुट: अंश
आउटपुट: ट्रिपल (संबंध), एंटिन्टेक्स्ट
िष्कर्षण: िषय-क्रि-वस्तु संबंध
### पैटर्न बी: ऑन्टोलॉजी-संचालित (kg-extract-ontology)
इनपुट: अंश
आउटपुट: ट्रिपल, एंटिन्टेक्स्ट
िष्कर्षण िर्देशि करने के ि न्फ़िगर गई ऑन्ट उपय करत है
### पैटर्न सी: एजेंट-आधारित (kg-extract-agent)
इनपुट: अंश
आउटपुट: ट्रिपल, एंटिन्टेक्स्ट
िष्कर्षण के ि एजेंट फ्रेमवर्क उपय करत है
### पैटर्न डी: पंक्ति निष्कर्षण (kg-extract-rows)
इनपुट: अंश
आउटपुट: पंक्ति (संरचि डेटा, ट्रिपल नह)
संरचि िर्ड िलने के ि स्क परि उपय करत है
### स्कीमा: ट्रिपल
```
Triples
├── metadata: Metadata
│ ├── id: str
│ ├── user: str
│ ├── collection: str
│ └── metadata: list[Triple] # (set to [] by extractors)
└── triples: list[Triple]
└── Triple
├── s: Term # Subject
├── p: Term # Predicate
├── o: Term # Object
└── g: str | None # Named graph
```
### स्कीमा: एंटिटीकॉन्टेक्स्ट्स
```
EntityContexts
├── metadata: Metadata
└── entities: list[EntityContext]
└── EntityContext
├── entity: Term # Entity identifier (IRI)
├── context: str # Textual description for embedding
└── chunk_id: str # Source chunk ID (provenance)
```
### स्कीमा: पंक्तियाँ
```
Rows
├── metadata: Metadata
├── row_schema: RowSchema
│ ├── name: str
│ ├── description: str
│ └── fields: list[Field]
└── rows: list[dict[str, str]] # Extracted records
```
## चरण 5: एम्बेडिंग पीढ़ी
### ग्राफ एम्बेडिंग
इक संदर्भ वेक्टर एम्बेडिंग में परिवर्ति करत है
**प्रक्रिया:**
1. इक संदर्भ प्रप्त करें
2. संदर्भ के एम्बेडिंग सेव करें
3. ग्र एम्बेडिंग आउटपुट करें (इक वेक्टर मैपिंग)
**स्कीमा: ग्राफ एम्बेडिंग**
```
GraphEmbeddings
├── metadata: Metadata
└── entities: list[EntityEmbeddings]
└── EntityEmbeddings
├── entity: Term # Entity identifier
├── vector: list[float] # Embedding vector
└── chunk_id: str # Source chunk (provenance)
```
### दस्तावेज़ एम्बेडिंग
यह धे टेक्स्ट के टुकड़ वेक्टर एम्बेडिंग में परिवर्ति करत है
**प्रक्रिया:**
1. टेक्स्ट टुकड़ प्रप्त करें
2. टेक्स्ट के टुकड़े के एम्बेडिंग सेव करें
3. दस्तवेज़एम्बेडिंग आउटपुट करें
**स्कीमा: दस्तावेज़एम्बेडिंग**
```
DocumentEmbeddings
├── metadata: Metadata
└── chunks: list[ChunkEmbeddings]
└── ChunkEmbeddings
├── chunk_id: str # Chunk identifier
└── vector: list[float] # Embedding vector
```
### पंक्ति एम्बेडिंग (पंक्ति एम्बेडिंग)
पंक्ति अनुक्रमणि फ़ल्ड वेक्टर एम्बेडिंग में परिवर्ति करत है
**प्रक्रिया:**
1. पंक्ति प्रप्त करें
2. न्फ़िगर गई अनुक्रमणि फ़ल्ड एम्बेड करें
3. पंक्ति वेक्टर स्ट पर आउटपुट करें
## चरण 6: भंडारण (चरण 6: भंडारण)
### ट्रिपल स्टोर (ट्रिपल स्टोर)
प्रप्त करत है: ट्रिपल (प्रप्त करत है: ट्रिपल)
भंडरण: कैसेंड्र (इकई-केंद्रि िएँ) (भंडरण: कैसेंड्र (इकई-केंद्रि िएँ))
ि ग्र मूल ज्ञ उत्पत्ति से अलग करते हैं: (ि ग्र मूल ज्ञ उत्पत्ति से अलग करते हैं:)
`""` (िफ़ल्ट): मूल ज्ञ तथ्य (िफ़ल्ट: मूल ज्ञ तथ्य)
`urn:graph:source`: िष्कर्षण उत्पत्ति (िष्कर्षण उत्पत्ति)
`urn:graph:retrieval`: क्वेर-टइम व्यख्य (क्वेर-टइम व्यख्या)
### वेक्टर स्टोर (ग्राफ एम्बेडिंग) (वेक्टर स्टोर (ग्राफ एम्बेडिंग))
प्रप्त करत है: GraphEmbeddings (प्रप्त करत है: GraphEmbeddings)
भंडरण: Qdrant, Milvus, Pinecone (भंडरण: Qdrant, Milvus, Pinecone)
अनुक्रमित: इक IRI द्व (अनुक्रमित: इक IRI द्वा)
मेटडेट: उत्पत्ति के ि chunk_id (मेटडेट: उत्पत्ति के ि chunk_id)
### वेक्टर स्टोर (दस्तावेज़ एम्बेडिंग) (वेक्टर स्टोर (दस्तावेज़ एम्बेडिंग))
प्रप्त करत है: DocumentEmbeddings (प्रप्त करत है: DocumentEmbeddings)
भंडरण: Qdrant, Milvus, Pinecone (भंडरण: Qdrant, Milvus, Pinecone)
अनुक्रमित: chunk_id द्व (अनुक्रमित: chunk_id द्वा)
### पंक्ति स्टोर (पंक्ति स्टोर)
प्रप्त करत है: Rows (प्रप्त करत है: Rows)
भंडरण: कैसेंड्र (भंडरण: कैसेंड्रा)
स्क-संचि ि संरचन (स्क-संचि ि संरचना)
### पंक्ति वेक्टर स्टोर (पंक्ति वेक्टर स्टोर)
प्रप्त है: पंक्ति एम्बेडिंग (पंक्ति एम्बेडिंग)
भंडरण: वेक्टर डेटबेस (वेक्टर डेटबेस)
अनुक्रमि ि गय: पंक्ति अनुक्रमणि फ़ल्ड द्व (पंक्ति अनुक्रमणि फ़ल्ड द्वा)
## मेटाडेटा फ़ील्ड विश्लेषण (मेटाडेटा फ़ील्ड विश्लेषण)
### सक्रिय रूप से उपयोग किए जाने वाले फ़ील्ड (सक्रिय रूप से उपयोग किए जाने वाले फ़ील्ड)
| फ़ल्ड | उपय |
|-------|-------|
| `metadata.id` | दस्तवेज़/चंक पहचनकर्ता, िंग, उत्पत्ति (दस्तवेज़/चंक पहचनकर्ता, िंग, उत्पत्ति)
| `metadata.user` | मल्ट-टेनेंसी, स्टरेज रूटिंग (मल्ट-टेनेंसी, स्टरेज रूटिंग)
| `metadata.collection` | लक्ष्य संग्रह चयन (लक्ष्य संग्रह चयन)
| `document_id` | इब्रेरियन संदर्भ, उत्पत्ति िंकिंग (इब्रेरियन संदर्भ, उत्पत्ति िंकिंग)
| `chunk_id` | इपलइन के ध्यम से उत्पत्ति ट्रैकिंग (इपलइन के ध्यम से उत्पत्ति ट्रैकिंग)
<<<<<<< HEAD
### संभावित रूप से अनावश्यक फ़ील्ड (संभावित रूप से अनावश्यक फ़ील्ड)
| फ़ल्ड | स्थिि |
|-------|--------|
| `metadata.metadata` | सभ एक्सट्रैक्टर द्व `[]` पर सेट; दस्तवेज़-स्तर मेटडेट अब सबमिशन के समय इब्रेरियन द्व संभ है (सभ एक्सट्रैक्टर द्व `[]` पर सेट; दस्तवेज़-स्तर मेटडेट अब सबमिशन के समय इब्रेरियन द्व संभ है)
=======
### हटाए गए फ़ील्ड (हटाए गए फ़ील्ड)
| फ़ल्ड | स्थिि |
|-------|--------|
| `metadata.metadata` | `Metadata` वर्ग से हट ि गया। दस्तवेज़-स्तर मेटडेट ट्रिपल अब धे इब्रेरियन द्व ट्रिपल स्ट सबमिशन के समय भेज है, ि िष्कर्षण इपलइन के ध्यम से (`Metadata` वर्ग से हट ि गया। दस्तवेज़-स्तर मेटडेट ट्रिपल अब धे इब्रेरियन द्व ट्रिपल स्ट सबमिशन के समय भेज है, ि िष्कर्षण इपलइन के ध्यम से)
>>>>>>> e3bcbf73 (The metadata field (list of triples) in the pipeline Metadata class)
### बाइट्स फ़ील्ड पैटर्न (बाइट्स फ़ील्ड पैटर्न)
सभी सामग्री फ़ील्ड (`data`, `text`, `chunk`) `bytes` हैं लेकिन सभी प्रोसेसरों द्वारा तुरंत UTF-8 स्ट्रिंग में डिकोड किए जाते हैं। कोई भी प्रोसेसर कच्चे बाइट्स का उपयोग नहीं करता है।
## फ्लो कॉन्फ़िगरेशन (फ्लो कॉन्फ़िगरेशन)
फ्लो बाहरी रूप से परिभाषित किए जाते हैं और कॉन्फ़िगरेशन सेवा के माध्यम से लाइब्रेरियन को प्रदान किए जाते हैं। प्रत्येक फ्लो में निम्नलिखित निर्दिष्ट होता है:
इनपुट क्यू (इनपुट क्यू) (`text-load`, `document-load`)
प्रोसेसर श्रृंखला (प्रोसेसर श्रृंखला)
पैरामीटर (चंक आकार, निष्कर्षण विधि, आदि) (पैरामीटर (चंक आकार, निष्कर्षण विधि, आदि))
फ्लो पैटर्न के उदाहरण: (फ्लो पैटर्न के उदाहरण:)
`pdf-graphrag`: PDF → Decoder → Chunker → Definitions + Relationships → Embeddings
`text-graphrag`: Text → Chunker → Definitions + Relationships → Embeddings
`pdf-ontology`: PDF → Decoder → Chunker → Ontology Extraction → Embeddings
`text-rows`: Text → Chunker → Row Extraction → Row Store