trustgraph/docs/tech-specs/extraction-flows.tr.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

12 KiB
Raw Blame History

layout title parent
default Veri Çıkarma Akışları Turkish (Beta)

Veri Çıkarma Akışları

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.

Bu belge, verilerin TrustGraph veri çıkarma işlem hattı üzerinden nasıl aktığını, belge gönderiminden başlayarak bilgi depolarına kaydedilmesine kadar olan süreci açıklamaktadır.

Genel Bakış

┌──────────┐     ┌─────────────┐     ┌─────────┐     ┌────────────────────┐
│ Librarian│────▶│ PDF Decoder │────▶│ Chunker │────▶│ Knowledge          │
│          │     │ (PDF only)  │     │         │     │ Extraction         │
│          │────────────────────────▶│         │     │                    │
└──────────┘     └─────────────┘     └─────────┘     └────────────────────┘
                                          │                    │
                                          │                    ├──▶ Triples
                                          │                    ├──▶ Entity Contexts
                                          │                    └──▶ Rows
                                          │
                                          └──▶ Document Embeddings

İçerik Depolama

Blob Depolama (S3/Minio)

Belge içeriği, S3 uyumlu blob depolama alanında saklanır: Yol formatı: doc/{object_id}, burada object_id bir UUID'dir. Tüm belge türleri burada saklanır: kaynak belgeler, sayfalar, parçalar.

Metaveri Depolama (Cassandra)

Cassandra'da saklanan belge metaverileri şunları içerir: Belge ID'si, başlık, tür (MIME türü). Blob depolama alanına object_id referansı. Alt belgelere (sayfalar, parçalar) ait parent_id. document_type: "kaynak", "sayfa", "parça", "cevap".

İçerik vs. Akış Eşiği

İçerik iletimi, boyuta dayalı bir strateji kullanır: < 2MB: İçerik, mesaj içinde (base64 ile kodlanmış) yer alır. ≥ 2MB: Yalnızca document_id gönderilir; işlemci, kütüphaneci API'si aracılığıyla içeriği alır.

1. Aşama: Belge Gönderimi (Kütüphaneci)

Giriş Noktası

Belgeler, kütüphanecinin add-document işlemi aracılığıyla sisteme girer:

  1. İçerik, blob depolama alanına yüklenir.
  2. Cassandra'da bir metaveri kaydı oluşturulur.
  3. Belge ID'si döndürülür.

Çıkarım Tetikleme

add-processing işlemi, çıkarımı tetikler: document_id, flow (işlem hattı ID'si) ve collection (hedef depolama alanı) belirtir. Kütüphanecinin load_document() işlemi, içeriği alır ve akış giriş kuyruğuna yayınlar.

Şema: Belge

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)

Yönlendirme: kind alanına göre: application/pdfdocument-load kuyruğu → PDF Kod Çözücü text/plaintext-load kuyruğu → Parçalayıcı

2. Aşama: PDF Kod Çözücü

PDF belgelerini metin sayfalarına dönüştürür.

İşlem

  1. İçeriği al (doğrudan data veya document_id üzerinden kütüphaneciden)
  2. Sayfaları PyPDF kullanarak çıkar
  3. Her sayfa için: Kütüphanecide alt belge olarak kaydet ({doc_id}/p{page_num}) Kaynak üçlülerini yayınla (sayfa, belgeden türetilmiştir) Parçalayıcıya ilet

Şema: 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. Aşama: Parçalayıcı (Chunker)

Metni, yapılandırılmış boyutta parçalara ayırır.

Parametreler (akışa bağımlı olarak yapılandırılabilir)

chunk_size: Karakter cinsinden hedef parça boyutu (varsayılan: 2000) chunk_overlap: Parçalar arasındaki örtüşme (varsayılan: 100)

İşlem

  1. Metin içeriğini alın (doğrudan veya kütüphaneci aracılığıyla)
  2. Özyinelemeli karakter ayırıcı kullanarak parçalara ayırın
  3. Her parça için: Kütüphanecide alt belge olarak kaydedin ({parent_id}/c{index}) Kaynak bilgilerini yayınlayın (parça, sayfadan/belgeden türetilmiştir) Çıkarma işleme modüllerine yönlendirin

Şema: Parça (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")

Belge Kimlik Hiyerarşisi

Alt belgeler, kimlik içinde kendi kökenlerini kodlar: Kaynak: doc123 Sayfa: doc123/p5 Sayfadan parça: doc123/p5/c2 Metinden parça: doc123/c2

4. Aşama: Bilgi Çıkarımı

Kullanılabilir çoklu çıkarma kalıpları, akış yapılandırması tarafından seçilir.

Kalıp A: Temel GraphRAG

İki paralel işlemci:

kg-extract-definitions Giriş: Parça Çıkış: Üçlüler (varlık tanımları), Varlık Bağlamları Çıkarır: varlık etiketleri, tanımlar

kg-extract-relationships Giriş: Parça Çıkış: Üçlüler (ilişkiler), Varlık Bağlamları Çıkarır: özne-yüklem-nesne ilişkileri

Kalıp B: Ontoloji Odaklı (kg-extract-ontology)

Giriş: Parça Çıkış: Üçlüler, Varlık Bağlamları Çıkarımı yönlendirmek için yapılandırılmış bir ontoloji kullanır

Kalıp C: Ajan Tabanlı (kg-extract-agent)

Giriş: Parça Çıkış: Üçlüler, Varlık Bağlamları Çıkarım için ajan çerçevesini kullanır

Kalıp D: Satır Çıkarımı (kg-extract-rows)

Giriş: Parça Çıkış: Satırlar (üçlüler değil, yapılandırılmış veri) Yapılandırılmış kayıtları çıkarmak için şema tanımını kullanır

Şema: Üçlüler

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

Şema: Varlık Bağlamları

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)

Şema: Satırlar

Rows
├── metadata: Metadata
├── row_schema: RowSchema
│   ├── name: str
│   ├── description: str
│   └── fields: list[Field]
└── rows: list[dict[str, str]]   # Extracted records

5. Aşama: Gömme (Embedding) Oluşturma

Grafik Gömme (Graph Embeddings)

Varlık bağlamlarını vektör gömmelerine dönüştürür.

Süreç:

  1. Varlık Bağlamlarını Alın
  2. Bağlam metniyle gömme hizmetini çağırın
  3. GrafikGömme'leri Çıktılayın (varlık → vektör eşlemesi)

Şema: GrafikGömme (GraphEmbeddings)

GraphEmbeddings
├── metadata: Metadata
└── entities: list[EntityEmbeddings]
    └── EntityEmbeddings
        ├── entity: Term         # Entity identifier
        ├── vector: list[float]  # Embedding vector
        └── chunk_id: str        # Source chunk (provenance)

Belge Gömme (Document Embeddings)

Parça metnini doğrudan vektör gömmelerine dönüştürür.

Süreç:

  1. Parçayı Al
  2. Parça metniyle gömme hizmetini çağır
  3. DocumentEmbeddings çıktısını ver

Şema: DocumentEmbeddings

DocumentEmbeddings
├── metadata: Metadata
└── chunks: list[ChunkEmbeddings]
    └── ChunkEmbeddings
        ├── chunk_id: str        # Chunk identifier
        └── vector: list[float]  # Embedding vector

Satır Gömme (Row Embeddings)

Satır indeks alanlarını vektör gömmelerine dönüştürür.

İşlem:

  1. Satırları Al
  2. Yapılandırılmış indeks alanlarını göm
  3. Satır vektör deposuna çıktı ver

6. Aşama: Depolama

Üçlü Depo (Triple Store)

Gelen: Üçlüler Depolama: Cassandra (varlık odaklı tablolar) İsimlendirilmiş grafikler, temel bilgiyi köken bilgisinden ayırır: "" (varsayılan): Temel bilgi gerçekleri urn:graph:source: Çıkarma kökeni urn:graph:retrieval: Sorgu zamanııklanabilirliği

Vektör Deposu (Grafik Gömme)

Gelen: GrafikGömme (GraphEmbeddings) Depolama: Qdrant, Milvus veya Pinecone Dizin: Varlık IRI'si ile Metaveri: Köken için chunk_id

Vektör Deposu (Belge Gömme)

Gelen: BelgeGömme (DocumentEmbeddings) Depolama: Qdrant, Milvus veya Pinecone Dizin: chunk_id ile

Satır Deposu (Row Store)

Gelen: Satırlar Depolama: Cassandra Şema odaklı tablo yapısı

Satır Vektör Deposu

Gelen: Satır gömmeleri Depolama: Vektör Veritabanı Dizin: Satır indeks alanları ile

Metaveri Alanı Analizi

Aktif Olarak Kullanılan Alanlar

Alan Kullanım
metadata.id Belge/parça tanımlayıcı, günlükleme, köken
metadata.user Çoklu kiracılık, depolama yönlendirme
metadata.collection Hedef koleksiyon seçimi
document_id Kütüphaneci referansı, köken bağlantısı
chunk_id İşlem hattı boyunca köken takibi

<<<<<<< HEAD

Potansiyel Olarak Gereksiz Alanlar

Alan Durum
metadata.metadata Tüm çıkarıcılar tarafından [] olarak ayarlanır; belge düzeyindeki metaveri artık gönderim zamanında kütüphaneci tarafından işlenir

=======

Kaldırılan Alanlar

Alan Durum
metadata.metadata Metadata sınıfından kaldırıldı. Belge düzeyindeki metaveri üçlüleri artık kütüphaneci tarafından doğrudan üçlü depoya gönderim zamanında gönderilir, çıkarma hattı üzerinden taşınmaz.

e3bcbf73 (The metadata field (list of triples) in the pipeline Metadata class)

Bayt Alanı Modeli

Tüm içerik alanları (data, text, chunk) bytes'tür, ancak tüm işlemciler tarafından hemen UTF-8 dizelerine kod çözülür. İşlemci tarafından ham bayt kullanılmaz.

Akış Yapılandırması

Akışlar harici olarak tanımlanır ve kütüphaneci aracılığıyla yapılandırma hizmetinden sağlanır. Her akış şunları belirtir:

Giriş kuyrukları (text-load, document-load) İşlemci zinciri Parametreler (parça boyutu, çıkarma yöntemi, vb.)

Örnek akış modelleri: pdf-graphrag: PDF → Kod Çözücü → Parçalayıcı → Tanımlar + İlişkiler → Gömme text-graphrag: Metin → Parçalayıcı → Tanımlar + İlişkiler → Gömme pdf-ontology: PDF → Kod Çözücü → Parçalayıcı → Ontoloji Çıkarma → Gömme text-rows: Metin → Parçalayıcı → Satır Çıkarma → Satır Deposu