2026-04-10 12:22:20 -04:00
# JSONL İstek Çı ktı sı Teknik Özellikleri
## Genel Bakı ş
Bu özellik, TrustGraph'ta istek yanı tları için JSONL (JSON Lines) çı ktı biçiminin uygulanması nı tanı mlar. JSONL, LLM yanı tları ndan yapı landı rı lmı ş verilerin, LLM yanı tları çı ktı belirteç sı nı rları na ulaştı ğı nda JSON dizisi çı ktı ları bozulduğunda ortaya çı kan kritik sorunları ele alarak, kesme hataları na karşı dayanı klı bir şekilde çı karı lması nı sağlar.
Bu uygulama, aşağı daki kullanı m senaryoları nı destekler:
1. **Kesintiye Dayanı klı Çı karma** : LLM çı ktı sı yanı tı n ortası nda kesildiğinde bile geçerli kı smi sonuçları çı karı n.
2. **Büyük Ölçekli Çı karma** : Token limitleri nedeniyle tam bir başarı sı zlı k riski olmadan birçok öğenin çı karı lması nı işleyin.
3. **Karma Tip Çı karma** : Tek bir istemde birden fazla varlı k türünün (tanı mlar, ilişkiler, varlı klar, özellikler) çı karı lması nı destekleyin.
4. **Akı şla Uyumlu Çı ktı ** : Çı karma sonuçları nı n gelecekteki akı ş/artı mlı
işlenmesini sağlayı n.
## Hedefler
2026-04-11 01:08:44 +00:00
< < < < < < < HEAD
2026-04-10 12:22:20 -04:00
**Geriye Dönük Uyumluluk**: `response-type: "text"` kullanan mevcut istemler ve
`response-type: "json"` , herhangi bir değişiklik yapı lmadan çalı şmaya devam eder.
**Kesinti Dayanı klı lı ğı **: Kı smi LLM çı ktı ları , tam bir başarı sı zlı k yerine kı smi, geçerli sonuçlar üretir.
**Şema Doğrulama**: Bireysel nesneler için JSON şema doğrulaması nı destekler.
**Ayı rı cı Birleşimler**: `type` alanı nı kullanarak karma türlü çı ktı ları destekler.
**Minimum API Değişiklikleri**: Mevcut istem yapı landı rması nı , yeni
yanı t türü ve şema anahtarı yla genişletir.
2026-04-11 01:08:44 +00:00
=======
**Geriye Dönük Uyumluluk**: `response-type: "text"` ve
`response-type: "json"` kullanan mevcut istemler, herhangi bir değişiklik yapı lmadan çalı şmaya devam eder.
**Kesme Direnci**: Kı smi LLM çı ktı ları , tam bir başarı sı zlı k yerine, kı smi geçerli sonuçlar üretir.
**Şema Doğrulama**: Bireysel nesneler için JSON Şema doğrulaması nı destekleyin.
**Ayı rı cı Birleşimler**: `type` alanı kullanı larak farklı türlerde çı ktı ları destekleyin.
ayı rı cı .
**Minimum API Değişiklikleri**: Mevcut istem yapı landı rması nı yeni
yanı t türü ve şema anahtarı yla genişletin.
>>>>>>> 82edf2d (New md files from RunPod)
2026-04-10 12:22:20 -04:00
## Arka Plan
### Mevcut Mimari
İstek hizmeti, iki tür yanı tı destekler:
1. `response-type: "text"` - Ham metin yanı tı , olduğu gibi döndürülür.
2. `response-type: "json"` - Yanı ttan ayrı ştı rı lan JSON, isteğe bağlı `response-type: "json"` 'a göre doğrulanı r.
isteğe bağlı `schema`
2026-04-11 01:08:44 +00:00
< < < < < < < HEAD
2026-04-10 12:22:20 -04:00
`trustgraph-flow/trustgraph/template/prompt_manager.py` 'daki mevcut uygulama:
2026-04-11 01:08:44 +00:00
=======
Mevcut uygulama `trustgraph-flow/trustgraph/template/prompt_manager.py` içinde:
>>>>>>> 82edf2d (New md files from RunPod)
2026-04-10 12:22:20 -04:00
```python
class Prompt:
def __init__ (self, template, response_type = "text", terms=None, schema=None):
self.template = template
self.response_type = response_type
self.terms = terms
self.schema = schema
```
### Mevcut Sı nı rlamalar
Çı karma komutları , çı ktı yı JSON dizileri (`[{...}, {...}, ...]` ) olarak istediğinde:
2026-04-11 01:08:44 +00:00
< < < < < < < HEAD
2026-04-10 12:22:20 -04:00
**Kesme nedeniyle oluşan bozulma**: Eğer LLM, dizi ortası nda çı ktı belirteç sı nı rları na ulaştı ğı nda,
tüm yanı t geçersiz bir JSON haline gelir ve işlenemez.
**Tümünü veya hiçbirini işleme**: İşlemeye başlamadan önce tam çı ktı yı almanı z gerekir.
**Kı smi sonuçlar yok**: Kesilmiş bir yanı t, kullanı labilir veri olarak sı fı r veri verir.
**Büyük çı karmalar için güvenilir değil**: Çı karı lan öğe sayı sı arttı kça, başarı sı zlı k riski daha yüksektir.
2026-04-11 01:08:44 +00:00
=======
**Kesme bozulması **: Eğer LLM, dizi ortası nda çı ktı belirteç sı nı rları na ulaştı ğı nda,
tüm yanı t geçersiz bir JSON haline gelir ve işlenemez.
**Tüm veya hiçbir işleme**: İşlemeye başlamadan önce tam çı ktı nı n alı nması gerekir.
**Kı smi sonuçlar yok**: Kesilmiş bir yanı t, kullanı labilir veri olarak sı fı r veri verir.
**Büyük çı karmalar için güvenilir değil**: Çı karı lan öğe sayı sı arttı kça, başarı sı zlı k riski artar.
>>>>>>> 82edf2d (New md files from RunPod)
2026-04-10 12:22:20 -04:00
Bu özellik, her çı karı lan öğenin kendi satı rı nda bulunan tam bir JSON nesnesi olduğu JSONL formatı nı kullanarak, bu sı nı rlamaları ele alı r.
## Teknik Tasarı m
### Yanı t Tipi Genişletmesi
Mevcut `"text"` ve `"json"` türlerinin yanı sı ra yeni bir yanı t türü `"jsonl"` ekleyin.
2026-04-11 01:08:44 +00:00
< < < < < < < HEAD
2026-04-10 12:22:20 -04:00
#### Yapı landı rma Değişiklikleri
2026-04-11 01:08:44 +00:00
=======
#### Yapı landı rma Değişiklikleri
**Yeni yanı t türü değeri:**
>>>>>>> 82edf2d (New md files from RunPod)
2026-04-10 12:22:20 -04:00
```
"response-type": "jsonl"
```
**Şema yorumlaması :**
Mevcut `"schema"` anahtarı , hem `"json"` hem de `"jsonl"` yanı tları için kullanı lmaktadı r.
Yorumlama, yanı t türüne bağlı dı r:
`"json"` : Şema, tüm yanı tı (genellikle bir dizi veya nesne) tanı mlar.
`"jsonl"` : Şema, her bir satı rı /nesneyi ayrı ayrı tanı mlar.
```json
{
"response-type": "jsonl",
"schema": {
"type": "object",
"properties": {
"entity": { "type": "string" },
"definition": { "type": "string" }
},
"required": ["entity", "definition"]
}
}
```
Bu, istem yapı landı rma araçları na ve düzenleyicilere yapı lan değişiklikleri önler.
### JSONL Biçim Özellikleri
#### Basit Çı karma
Tek bir nesne türünü (tanı mlar, ilişkiler,
konular, satı rlar) çı karan istemler için, çı ktı her satı rda bir JSON nesnesidir ve herhangi bir sarma bulunmaz:
**İstem çı ktı biçimi:**
```
{"entity": "photosynthesis", "definition": "Process by which plants convert sunlight"}
{"entity": "chlorophyll", "definition": "Green pigment in plants"}
{"entity": "mitochondria", "definition": "Powerhouse of the cell"}
```
**Önceki JSON dizi formatı yla karşı laştı rma:**
```json
[
{"entity": "photosynthesis", "definition": "Process by which plants convert sunlight"},
{"entity": "chlorophyll", "definition": "Green pigment in plants"},
{"entity": "mitochondria", "definition": "Powerhouse of the cell"}
]
```
2026-04-11 01:08:44 +00:00
< < < < < < < HEAD
2026-04-10 12:22:20 -04:00
Eğer LLM, 2. satı rdan sonra kesilirse, JSON dizisi formatı geçersiz bir JSON oluşturur,
ancak JSONL iki geçerli nesne üretir.
#### Karı şı k Tip Çı karı mı (Ayı rı cı Birleşimler)
Birden fazla nesne türünü çı karan (örneğin, hem tanı mları hem de
ilişkileri, veya varlı klar, ilişkiler ve özellikler) istemler için, bir `"type"`
2026-04-11 01:08:44 +00:00
=======
Eğer LLM, 2. satı rdan sonra kesilirse, JSON dizisi formatı geçersiz bir JSON oluştururken,
JSONL ise iki geçerli nesne üretir.
#### Karı şı k Tip Çı karı mı (Ayı rı cı Birleşimler)
Birden fazla nesne türünü çı karan (örneğin, hem tanı mları ve
ilişkiler veya varlı klar, ilişkiler ve özellikler) istemler için, bir `"type"`
>>>>>>> 82edf2d (New md files from RunPod)
2026-04-10 12:22:20 -04:00
alanı nı ayı rı cı olarak kullanı n:
**İstem çı ktı sı formatı :**
```
{"type": "definition", "entity": "DNA", "definition": "Molecule carrying genetic instructions"}
{"type": "relationship", "subject": "DNA", "predicate": "located_in", "object": "cell nucleus", "object-entity": true}
{"type": "definition", "entity": "RNA", "definition": "Molecule that carries genetic information"}
{"type": "relationship", "subject": "RNA", "predicate": "transcribed_from", "object": "DNA", "object-entity": true}
```
**Ayı rı cı birleşimler için şema, `oneOf` kullanı r:**
```json
{
"response-type": "jsonl",
"schema": {
"oneOf": [
{
"type": "object",
"properties": {
"type": { "const": "definition" },
"entity": { "type": "string" },
"definition": { "type": "string" }
},
"required": ["type", "entity", "definition"]
},
{
"type": "object",
"properties": {
"type": { "const": "relationship" },
"subject": { "type": "string" },
"predicate": { "type": "string" },
"object": { "type": "string" },
"object-entity": { "type": "boolean" }
},
"required": ["type", "subject", "predicate", "object", "object-entity"]
}
]
}
}
```
#### Ontoloji Çı karı mı
Varlı klar, ilişkiler ve özelliklerle ontoloji tabanlı çı karı m için:
**İstenen çı ktı formatı :**
```
{"type": "entity", "entity": "Cornish pasty", "entity_type": "fo/Recipe"}
{"type": "entity", "entity": "beef", "entity_type": "fo/Food"}
{"type": "relationship", "subject": "Cornish pasty", "subject_type": "fo/Recipe", "relation": "fo/has_ingredient", "object": "beef", "object_type": "fo/Food"}
{"type": "attribute", "entity": "Cornish pasty", "entity_type": "fo/Recipe", "attribute": "fo/serves", "value": "4 people"}
```
### Uygulama Detayları
#### İstek Sı nı fı
Mevcut `Prompt` sı nı fı herhangi bir değişiklik gerektirmiyor. `schema` alanı yeniden kullanı lı yor.
JSONL formatı için, yorumlanması `response_type` ile belirlenir:
```python
class Prompt:
def __init__ (self, template, response_type="text", terms=None, schema=None):
self.template = template
self.response_type = response_type
self.terms = terms
self.schema = schema # Interpretation depends on response_type
```
#### PromptManager.load_config
Herhangi bir değişiklik gerekli değil - mevcut yapı landı rma yüklemesi zaten
`schema` anahtarı nı işlemektedir.
#### JSONL Ayrı ştı rma
JSONL yanı tları için yeni bir ayrı ştı rma yöntemi ekleyin:
```python
def parse_jsonl(self, text):
"""
Parse JSONL response, returning list of valid objects.
Invalid lines (malformed JSON, empty lines) are skipped with warnings.
This provides truncation resilience - partial output yields partial results.
"""
results = []
for line_num, line in enumerate(text.strip().split('\n'), 1):
line = line.strip()
# Skip empty lines
if not line:
continue
# Skip markdown code fence markers if present
if line.startswith('```'):
continue
try:
obj = json.loads(line)
results.append(obj)
except json.JSONDecodeError as e:
# Log warning but continue - this provides truncation resilience
logger.warning(f"JSONL parse error on line {line_num}: {e}")
return results
```
#### PromptManager.invoke Değişiklikleri
Yeni yanı t türünü işleyebilmek için invoke yöntemini genişletin:
```python
async def invoke(self, id, input, llm):
logger.debug("Invoking prompt template...")
terms = self.terms | self.prompts[id].terms | input
resp_type = self.prompts[id].response_type
prompt = {
"system": self.system_template.render(terms),
"prompt": self.render(id, input)
}
resp = await llm(**prompt)
if resp_type == "text":
return resp
if resp_type == "json":
try:
obj = self.parse_json(resp)
except:
logger.error(f"JSON parse failed: {resp}")
raise RuntimeError("JSON parse fail")
if self.prompts[id].schema:
try:
validate(instance=obj, schema=self.prompts[id].schema)
logger.debug("Schema validation successful")
except Exception as e:
raise RuntimeError(f"Schema validation fail: {e}")
return obj
if resp_type == "jsonl":
objects = self.parse_jsonl(resp)
if not objects:
logger.warning("JSONL parse returned no valid objects")
return []
# Validate each object against schema if provided
if self.prompts[id].schema:
validated = []
for i, obj in enumerate(objects):
try:
validate(instance=obj, schema=self.prompts[id].schema)
validated.append(obj)
except Exception as e:
logger.warning(f"Object {i} failed schema validation: {e}")
return validated
return objects
raise RuntimeError(f"Response type {resp_type} not known")
```
### Etkilenen İstekler
Aşağı daki istekler JSONL formatı na aktarı lmalı dı r:
| İstek Kimliği | Açı klama | Tür Alanı |
|-----------|-------------|------------|
| `extract-definitions` | Varlı k/tanı m çı karma | Hayı r (tek tür) |
| `extract-relationships` | İlişki çı karma | Hayı r (tek tür) |
| `extract-topics` | Konu/tanı m çı karma | Hayı r (tek tür) |
| `extract-rows` | Yapı landı rı lmı ş satı r çı karma | Hayı r (tek tür) |
| `agent-kg-extract` | Birleştirilmiş tanı m + ilişki çı karma | Evet: `"definition"` , `"relationship"` |
| `extract-with-ontologies` / `ontology-extract` | Ontoloji tabanlı çı karma | Evet: `"entity"` , `"relationship"` , `"attribute"` |
### API Değişiklikleri
#### Müşteri Perspektifi
2026-04-11 01:08:44 +00:00
< < < < < < < HEAD
2026-04-10 12:22:20 -04:00
JSONL ayrı ştı rması , istem hizmeti API'sini kullananlar için şeffaftı r. Ayrı ştı rma, istem hizmetinde sunucu tarafı nda gerçekleşir ve yanı t standart
bir şekilde döndürülür.
`PromptResponse.object` alanı nı seri hale edilmiş bir JSON dizisi olarak.
Müşteriler, istem hizmetini (`PromptClient.prompt()` veya benzeri bir yöntemle) kullandı ğı nda:
**`response-type: "json"` ** (dizi şeması ile) → müşteri, Python `list` alı r.
**`response-type: "jsonl"` ** → müşteri, Python `list` alı r.
Müşterinin bakı ş açı sı yla, her iki yöntem de aynı veri yapı ları nı döndürür.
Fark, tamamen LLM çı ktı sı nı n sunucu tarafı nda nası l işlendiğindedir:
JSON dizisi formatı : Tek `json.loads()` çağrı sı ; kı saltı lı rsa tamamen başarı sı z olur.
JSONL formatı : Satı r satı r ayrı ştı rma; kı saltı lı rsa kı smi sonuçlar verir.
Bu, çı karma istemlerinden bir liste bekleyen mevcut istemci kodunun, istemleri JSON'dan JSONL formatı na geçirirken herhangi bir değişikliğe ihtiyaç duymaması nı sağlar.
#### Sunucu Dönüş Değeri
`response-type: "jsonl"` için, `PromptManager.invoke()` metodu,
başarı yla ayrı ştı rı lmı ş ve doğrulanmı ş tüm nesneleri içeren bir `list[dict]` döndürür. Bu
liste, daha sonra `PromptResponse.object` alanı için JSON'a dönüştürülür.
#### Hata Yönetimi
Boş sonuçlar: Uyarı günlüğü ile boş bir liste `[]` döndürür.
Kı smi ayrı ştı rma hatası : Başarı yla ayrı ştı rı lmı ş nesnelerin bir listesini ve
hatalar için uyarı günlüklerini döndürür.
Tam ayrı ştı rma hatası : Uyarı günlükleriyle boş bir liste `[]` döndürür.
Bu, `response-type: "json"` 'den farklı dı r, çünkü `RuntimeError` ayrı ştı rma hatası durumunda `RuntimeError` hatası oluşturur.
JSONL için daha hoşgörülü davranı ş, kesintilere karşı dayanı klı lı k sağlamak amacı yla kası tlı dı r.
2026-04-11 01:08:44 +00:00
=======
JSONL ayrı ştı rması , istek hizmeti API kullanı cı ları için şeffaftı r. Ayrı ştı rma, isteğin
sunucu tarafı nda gerçekleşir ve yanı t, standart
`PromptResponse.object` alanı aracı lı ğı yla seri hale getirilmiş bir JSON dizisi olarak döndürülür.
Müşteriler, istek hizmetini (`PromptClient.prompt()` veya benzeri aracı lı ğı yla) çağı rdı ğı nda:
**`response-type: "json"` ** dizi şeması ile → müşteri, Python `list` alı r
**`response-type: "jsonl"` ** → müşteri, Python `list` alı r
Müşteri açı sı ndan, her iki yöntem de aynı veri yapı ları nı döndürür. Fark, yalnı zca LLM çı ktı sı nı n
sunucu tarafı nda nası l ayrı ştı rı ldı ğı dı r:
JSON dizisi formatı : Tek `json.loads()` çağrı sı ; kesintiye uğratı lı rsa tamamen başarı sı z olur
JSONL formatı : Satı r satı r ayrı ştı rma; kesintiye uğratı lı rsa kı smi sonuçlar verir
Bu, çı karma isteklerinden gelen listeleri bekleyen mevcut müşteri kodunun,
istekleri JSON'dan JSONL formatı na geçirirken herhangi bir değişikliğe ihtiyaç duymaması nı sağlar.
#### Sunucu Dönüş Değeri
`response-type: "jsonl"` için, `PromptManager.invoke()` yöntemi bir
`list[dict]` döndürür ve bu, başarı yla ayrı ştı rı lmı ş ve doğrulanmı ş tüm nesneleri içerir.
Bu liste daha sonra `PromptResponse.object` alanı için JSON'a seri hale getirilir.
#### Hata Yönetimi
Boş sonuçlar: Uyarı günlüğü ile boş bir liste `[]` döndürülür
Kı smi ayrı ştı rma hatası : Başarı yla ayrı ştı rı lmı ş nesnelerin listesi, hatalar için
uyarı günlükleriyle birlikte döndürülür
Tam ayrı ştı rma hatası : Uyarı günlükleriyle boş bir liste `[]` döndürülür
Bu, ayrı ştı rma hatası durumunda `RuntimeError` 'i yükselten `response-type: "json"` 'dan farklı dı r.
JSONL için esnek davranı ş, kesintiye karşı dayanı klı lı k sağlamak için kası tlı dı r.
>>>>>>> 82edf2d (New md files from RunPod)
2026-04-10 12:22:20 -04:00
### Yapı landı rma Örneği
2026-04-11 01:08:44 +00:00
< < < < < < < HEAD
2026-04-10 12:22:20 -04:00
Tam istem yapı landı rma örneği:
2026-04-11 01:08:44 +00:00
=======
Tam istek yapı landı rma örneği:
>>>>>>> 82edf2d (New md files from RunPod)
2026-04-10 12:22:20 -04:00
```json
{
"prompt": "Extract all entities and their definitions from the following text. Output one JSON object per line.\n\nText:\n{{text}}\n\nOutput format per line:\n{\"entity\": \"< name > \", \"definition\": \"< definition > \"}",
"response-type": "jsonl",
"schema": {
"type": "object",
"properties": {
"entity": {
"type": "string",
"description": "The entity name"
},
"definition": {
"type": "string",
"description": "A clear definition of the entity"
}
},
"required": ["entity", "definition"]
}
}
```
## Güvenlik Hususları
**Girdi Doğrulama**: JSON ayrı ştı rması , standart `json.loads()` 'ı kullanı r ve bu, enjeksiyon saldı rı ları na karşı güvenlidir.
**Şema Doğrulama** : Şema zorlaması için ⟦CODE_0⟧ kullanı lı r.
**Şema Doğrulama**: Şema uyumluluğunu sağlamak için `jsonschema.validate()` kullanı lı r.
**Yeni Bir Saldı rı Yüzeyi Yok**: JSONL ayrı ştı rması , satı r satı r işlenmesi nedeniyle JSON dizisi ayrı ştı rması ndan çok daha güvenlidir.
## Performans Hususları
**Bellek**: Satı r satı r ayrı ştı rma, tam JSON dizilerini yüklemekten daha az bellek kullanı r.
2026-04-11 01:08:44 +00:00
< < < < < < < HEAD
2026-04-10 12:22:20 -04:00
**Gecikme** : Ayrı ştı rma performansı , JSON dizisi ayrı ştı rması yla karşı laştı rı labilir.
**Doğrulama**: Şema doğrulaması , her bir nesne için yapı lı r, bu da ek yük getirir ancak
doğrulama başarı sı z olduğunda kı smi sonuçlar elde etmeyi sağlar.
## Test Stratejisi
2026-04-11 01:08:44 +00:00
=======
**Gecikme**: Ayrı ştı rma performansı , JSON dizisi ayrı ştı rması yla karşı laştı rı labilir.
**Doğrulama**: Şema doğrulaması , her bir nesne için yapı lı r, bu da ek yük getirir ancak
doğrulama başarı sı z olduğunda kı smi sonuçlar elde etmeyi sağlar.
## Test Stratejisi
>>>>>>> 82edf2d (New md files from RunPod)
2026-04-10 12:22:20 -04:00
### Birim Testleri
Geçerli giriş ile JSONL ayrı ştı rma
Boş satı rlarla JSONL ayrı ştı rma
Markdown kod blokları yla JSONL ayrı ştı rma
Kesilmiş son satı rla JSONL ayrı ştı rma
Geçersiz JSON satı rları nı n arası na serpiştirilmiş JSONL ayrı ştı rma
`oneOf` ayrı mcı birleşimlerle şema doğrulaması
Geriye dönük uyumluluk: Mevcut `"text"` ve `"json"` istemleri değişmeden kalı r
### Entegrasyon Testleri
JSONL istemleriyle uçtan uca çı karma
Simüle edilmiş kesme ile çı karma (yapay olarak sı nı rlı yanı t)
Tür ayrı mcı sı ile karma tür çı karma
Üç türün tamamı yla ontoloji çı karma
### Çı karma Kalitesi Testleri
Çı karma sonuçları nı karşı laştı rı n: JSONL ile JSON dizisi formatı
Kesme dayanı klı lı ğı nı doğrulayı n: JSONL, JSON'un başarı sı z olduğu durumlarda kı smi sonuçlar verir
## Geçiş Planı
### 1. Aşama: Uygulama
1. `parse_jsonl()` yöntemini `PromptManager` içinde uygulayı n
2. `invoke()` 'ı `response-type: "jsonl"` 'i işleyebilecek şekilde genişletin
3. Birim testleri ekleyin
### 2. Aşama: İstek Geçişi
1. `extract-definitions` isteğini ve yapı landı rması nı güncelleyin
2. `extract-relationships` isteğini ve yapı landı rması nı güncelleyin
3. `extract-topics` isteğini ve yapı landı rması nı güncelleyin
4. `extract-rows` isteğini ve yapı landı rması nı güncelleyin
5. `agent-kg-extract` isteğini ve yapı landı rması nı güncelleyin
6. `extract-with-ontologies` isteğini ve yapı landı rması nı güncelleyin
### 3. Aşama: Aşağı Akı ş Güncellemeleri
1. Çı karma sonuçları nı kullanan tüm kodu, liste dönüş türünü işleyebilecek şekilde güncelleyin
2026-04-11 01:08:44 +00:00
< < < < < < < HEAD
2026-04-10 12:22:20 -04:00
2. `type` alanı na göre karma türdeki çı karma sonuçları nı kategorize eden kodu güncelleyin
2026-04-11 01:08:44 +00:00
=======
2. `type` alanı yla karma türdeki çı karma türlerini sı nı flandı ran kodu güncelleyin
>>>>>>> 82edf2d (New md files from RunPod)
2026-04-10 12:22:20 -04:00
3. Çı karma çı ktı sı formatı hakkı nda doğrulama yapan testleri güncelleyin
## Açı k Sorular
Şu anda yok.
## Referanslar
Mevcut uygulama: `trustgraph-flow/trustgraph/template/prompt_manager.py`
JSON Lines belirtimi: https://jsonlines.org/
JSON Şeması `oneOf` : https://json-schema.org/understanding-json-schema/reference/combining.html#oneof
İlgili belirtim: Streaming LLM Responses (`docs/tech-specs/streaming-llm-responses.md` )