mirror of
https://github.com/trustgraph-ai/trustgraph.git
synced 2026-04-25 16:36:21 +02:00
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.
147 lines
5.2 KiB
Markdown
147 lines
5.2 KiB
Markdown
---
|
||
layout: default
|
||
title: "Yapılandırılmış Veri Pulsar Şema Değişiklikleri"
|
||
parent: "Turkish (Beta)"
|
||
---
|
||
|
||
# Yapılandırılmış Veri Pulsar Şema Değişiklikleri
|
||
|
||
> **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.
|
||
|
||
## Genel Bakış
|
||
|
||
STRUCTURED_DATA.md spesifikasyonuna dayanarak, bu belge, TrustGraph'ta yapılandırılmış veri yeteneklerini desteklemek için gerekli olan Pulsar şema eklemelerini ve değişikliklerini önermektedir.
|
||
|
||
## Gerekli Şema Değişiklikleri
|
||
|
||
### 1. Temel Şema Geliştirmeleri
|
||
|
||
#### Gelişmiş Alan Tanımı
|
||
`core/primitives.py` içindeki mevcut `Field` sınıfı, ek özelliklere ihtiyaç duymaktadır:
|
||
|
||
```python
|
||
class Field(Record):
|
||
name = String()
|
||
type = String() # int, string, long, bool, float, double, timestamp
|
||
size = Integer()
|
||
primary = Boolean()
|
||
description = String()
|
||
# NEW FIELDS:
|
||
required = Boolean() # Whether field is required
|
||
enum_values = Array(String()) # For enum type fields
|
||
indexed = Boolean() # Whether field should be indexed
|
||
```
|
||
|
||
### 2. Yeni Bilgi Şemaları
|
||
|
||
#### 2.1 Yapılandırılmış Veri Gönderimi
|
||
Yeni dosya: `knowledge/structured.py`
|
||
|
||
```python
|
||
from pulsar.schema import Record, String, Bytes, Map
|
||
from ..core.metadata import Metadata
|
||
|
||
class StructuredDataSubmission(Record):
|
||
metadata = Metadata()
|
||
format = String() # "json", "csv", "xml"
|
||
schema_name = String() # Reference to schema in config
|
||
data = Bytes() # Raw data to ingest
|
||
options = Map(String()) # Format-specific options
|
||
```
|
||
|
||
### 3. Yeni Hizmet Şemaları
|
||
|
||
#### 3.1 Doğal Dil İşleme'den Yapılandırılmış Sorgu Hizmeti
|
||
Yeni dosya: `services/nlp_query.py`
|
||
|
||
```python
|
||
from pulsar.schema import Record, String, Array, Map, Integer, Double
|
||
from ..core.primitives import Error
|
||
|
||
class NLPToStructuredQueryRequest(Record):
|
||
natural_language_query = String()
|
||
max_results = Integer()
|
||
context_hints = Map(String()) # Optional context for query generation
|
||
|
||
class NLPToStructuredQueryResponse(Record):
|
||
error = Error()
|
||
graphql_query = String() # Generated GraphQL query
|
||
variables = Map(String()) # GraphQL variables if any
|
||
detected_schemas = Array(String()) # Which schemas the query targets
|
||
confidence = Double()
|
||
```
|
||
|
||
#### 3.2 Yapılandırılmış Sorgu Hizmeti
|
||
Yeni dosya: `services/structured_query.py`
|
||
|
||
```python
|
||
from pulsar.schema import Record, String, Map, Array
|
||
from ..core.primitives import Error
|
||
|
||
class StructuredQueryRequest(Record):
|
||
query = String() # GraphQL query
|
||
variables = Map(String()) # GraphQL variables
|
||
operation_name = String() # Optional operation name for multi-operation documents
|
||
|
||
class StructuredQueryResponse(Record):
|
||
error = Error()
|
||
data = String() # JSON-encoded GraphQL response data
|
||
errors = Array(String()) # GraphQL errors if any
|
||
```
|
||
|
||
#### 2.2 Nesne Çıkarımı Çıktısı
|
||
Yeni dosya: `knowledge/object.py`
|
||
|
||
```python
|
||
from pulsar.schema import Record, String, Map, Double
|
||
from ..core.metadata import Metadata
|
||
|
||
class ExtractedObject(Record):
|
||
metadata = Metadata()
|
||
schema_name = String() # Which schema this object belongs to
|
||
values = Map(String()) # Field name -> value
|
||
confidence = Double()
|
||
source_span = String() # Text span where object was found
|
||
```
|
||
|
||
### 4. Gelişmiş Bilgi Şemaları
|
||
|
||
#### 4.1 Nesne Gömme İyileştirmeleri
|
||
`knowledge/embeddings.py`'ı, yapılandırılmış nesne gömmelerini daha iyi destekleyecek şekilde güncelleyin:
|
||
|
||
```python
|
||
class StructuredObjectEmbedding(Record):
|
||
metadata = Metadata()
|
||
vectors = Array(Array(Double()))
|
||
schema_name = String()
|
||
object_id = String() # Primary key value
|
||
field_embeddings = Map(Array(Double())) # Per-field embeddings
|
||
```
|
||
|
||
## Entegrasyon Noktaları
|
||
|
||
### Akış Entegrasyonu
|
||
|
||
Bu şemalar, yeni akış modülleri tarafından kullanılacaktır:
|
||
`trustgraph-flow/trustgraph/decoding/structured` - StructuredDataSubmission'ı kullanır
|
||
`trustgraph-flow/trustgraph/query/nlp_query/cassandra` - NLP sorgu şemalarını kullanır
|
||
`trustgraph-flow/trustgraph/query/objects/cassandra` - Yapılandırılmış sorgu şemalarını kullanır
|
||
`trustgraph-flow/trustgraph/extract/object/row/` - Chunk'ı tüketir, ExtractedObject üretir
|
||
`trustgraph-flow/trustgraph/storage/objects/cassandra` - Rows şemasını kullanır
|
||
`trustgraph-flow/trustgraph/embeddings/object_embeddings/qdrant` - Nesne gömme şemalarını kullanır
|
||
|
||
## Uygulama Notları
|
||
|
||
1. **Şema Sürümleme**: Gelecekteki geçiş desteği için RowSchema'ya bir `version` alanı eklemeyi düşünün.
|
||
2. **Tip Sistemi**: `Field.type`, tüm Cassandra yerel türlerini desteklemelidir.
|
||
3. **Toplu İşlemler**: Çoğu hizmet, hem tekil hem de toplu işlemleri desteklemelidir.
|
||
4. **Hata Yönetimi**: Tüm yeni hizmetlerde tutarlı hata raporlama.
|
||
5. **Geriye Uyumluluk**: Mevcut şemalar, küçük alan geliştirmeleri dışında değişmeden kalacaktır.
|
||
|
||
## Sonraki Adımlar
|
||
|
||
1. Şema dosyalarını yeni yapıya göre uygulayın.
|
||
2. Mevcut hizmetleri, yeni şema türlerini tanıyacak şekilde güncelleyin.
|
||
3. Bu şemaları kullanan akış modüllerini uygulayın.
|
||
4. Yeni hizmetler için ağ geçidi/geri ağ geçidi uç noktaları ekleyin.
|
||
5. Şema doğrulaması için birim testleri oluşturun.
|