mirror of
https://github.com/trustgraph-ai/trustgraph.git
synced 2026-04-25 08:26:21 +02:00
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.
|