mirror of
https://github.com/trustgraph-ai/trustgraph.git
synced 2026-04-26 00:46:22 +02:00
Structure the tech specs directory (#836)
Tech spec some subdirectories for different languages
This commit is contained in:
parent
48da6c5f8b
commit
e7efb673ef
423 changed files with 0 additions and 0 deletions
633
docs/tech-specs/tr/flow-configurable-parameters.tr.md
Normal file
633
docs/tech-specs/tr/flow-configurable-parameters.tr.md
Normal file
|
|
@ -0,0 +1,633 @@
|
|||
---
|
||||
layout: default
|
||||
title: "Akış Şeması Yapılandırılabilir Parametreler Teknik Özellikleri"
|
||||
parent: "Turkish (Beta)"
|
||||
---
|
||||
|
||||
# Akış Şeması Yapılandırılabilir Parametreler Teknik Özellikleri
|
||||
|
||||
> **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ış
|
||||
|
||||
Bu özellik, TrustGraph'taki akış şemaları için yapılandırılabilir parametrelerin uygulanmasını açıklamaktadır. Parametreler, kullanıcıların akış başlatma zamanında işlemci parametrelerini, akış şeması tanımındaki parametre yer tutucularını değiştiren değerler sağlayarak özelleştirmesini sağlar.
|
||||
|
||||
<<<<<<< HEAD
|
||||
Parametreler, işlemci parametrelerinde şablon değişken yerleştirmesi yoluyla çalışır, tıpkı `{id}` ve `{class}` değişkenlerinin nasıl çalıştığı gibi, ancak kullanıcı tarafından sağlanan değerlerle.
|
||||
=======
|
||||
Parametreler, `{id}` ve `{class}` değişkenlerinin nasıl çalıştığına benzer şekilde, işlemci parametrelerinde şablon değişken yerleştirmesi yoluyla çalışır, ancak kullanıcı tarafından sağlanan değerlerle.
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
|
||||
Bu entegrasyon, dört birincil kullanım senaryosunu destekler:
|
||||
|
||||
1. **Model Seçimi**: Kullanıcıların farklı LLM modellerini (örneğin, `gemma3:8b`, `gpt-4`, `claude-3`) işlemciler için seçmesine izin verme.
|
||||
2. **Kaynak Yapılandırması**: Parça boyutları, toplu boyutlar ve eşzamanlılık limitleri gibi işlemci parametrelerini ayarlama.
|
||||
3. **Davranış Ayarı**: Sıcaklık, maksimum-token veya alma eşikleri gibi parametreler aracılığıyla işlemci davranışını değiştirme.
|
||||
4. **Ortama Özgü Parametreler**: Dağıtım başına uç noktaları, API anahtarlarını veya bölgeye özgü URL'leri yapılandırma.
|
||||
|
||||
## Hedefler
|
||||
|
||||
**Dinamik İşlemci Yapılandırması**: Parametre yerleştirmesi yoluyla işlemci parametrelerinin çalışma zamanı yapılandırmasını etkinleştirme.
|
||||
**Parametre Doğrulama**: Akış başlatma zamanında parametreler için tür denetimi ve doğrulama sağlama.
|
||||
<<<<<<< HEAD
|
||||
**Varsayılan Değerler**: Akıllı varsayılan değerleri destekleme ve aynı zamanda gelişmiş kullanıcılar için geçersiz kılmalara izin verme.
|
||||
**Şablon Yerleştirmesi**: İşlemci parametrelerindeki parametre yer tutucularını sorunsuz bir şekilde değiştirme.
|
||||
**Kullanıcı Arayüzü Entegrasyonu**: Parametre girişini hem API hem de kullanıcı arayüzü arayüzleri aracılığıyla etkinleştirme.
|
||||
**Tür Güvenliği**: Parametre türlerinin beklenen işlemci parametre türleriyle eşleştiğinden emin olma.
|
||||
**Belgeleme**: Akış şeması tanımları içindeki kendi kendini belgeleyen parametre şemaları.
|
||||
**Geriye Dönük Uyumluluk**: Parametre kullanmayan mevcut akış şemalarıyla uyumluluğu koruma.
|
||||
=======
|
||||
**Varsayılan Değerler**: Gelişmiş kullanıcılar için geçersiz kılmaları desteklerken anlamlı varsayılan değerleri destekleme.
|
||||
**Şablon Yerleştirmesi**: İşlemci parametrelerindeki parametre yer tutucularını sorunsuz bir şekilde değiştirme.
|
||||
**Kullanıcı Arayüzü Entegrasyonu**: Hem API hem de kullanıcı arayüzü arayüzleri aracılığıyla parametre girişi sağlama.
|
||||
**Tür Güvenliği**: Parametre türlerinin beklenen işlemci parametre türleriyle eşleştiğinden emin olma.
|
||||
**Belgeleme**: Akış şeması tanımları içindeki kendi kendini belgeleyen parametre şemaları.
|
||||
**Geriye Dönük Uyumluluk**: Parametreleri kullanmayan mevcut akış şemalarıyla uyumluluğu koruma.
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
|
||||
## Arka Plan
|
||||
|
||||
TrustGraph'taki akış şemaları artık, sabit değerler veya parametre yer tutucuları içerebilen işlemci parametrelerini desteklemektedir. Bu, çalışma zamanı özelleştirmesi için bir fırsat yaratır.
|
||||
|
||||
<<<<<<< HEAD
|
||||
Mevcut işlemci parametreleri şunları desteklemektedir:
|
||||
Sabit değerler: `"model": "gemma3:12b"`
|
||||
Parametre yer tutucuları: `"model": "gemma3:{model-size}"`
|
||||
|
||||
Bu özellik, parametrelerin nasıl olduğu tanımlamaktadır:
|
||||
Akış şeması tanımlarında beyan edilmesi
|
||||
Akışların başlatıldığı zaman doğrulanması
|
||||
İşlemci parametrelerinde yerleştirilmesi
|
||||
API'ler ve kullanıcı arayüzü aracılığıyla açığa çıkarılması
|
||||
|
||||
Parametreli işlemci parametrelerini kullanarak, TrustGraph şunları yapabilir:
|
||||
Varyasyonlar için parametreleri kullanarak akış şeması çoğaltmasını azaltma.
|
||||
Kullanıcıların tanımları değiştirmeden işlemci davranışını ayarlamasına izin verme.
|
||||
Parametre değerleri aracılığıyla ortama özgü yapılandırmaları destekleme.
|
||||
Parametre şema doğrulaması yoluyla tür güvenliğini sağlama.
|
||||
=======
|
||||
Mevcut işlemci parametreleri şunları destekler:
|
||||
Sabit değerler: `"model": "gemma3:12b"`
|
||||
Parametre yer tutucuları: `"model": "gemma3:{model-size}"`
|
||||
|
||||
Bu özellik, parametrelerin nasıl olduğu tanımlar:
|
||||
Akış şeması tanımlarında beyan edilir
|
||||
Akışlar başlatıldığında doğrulanır
|
||||
İşlemci parametrelerinde yerleştirilir
|
||||
API'ler ve kullanıcı arayüzleri aracılığıyla açığa çıkarılır
|
||||
|
||||
Parametreli işlemci parametrelerini kullanarak, TrustGraph şunları yapabilir:
|
||||
Varyasyonlar için parametreleri kullanarak akış şeması çoğaltmasını azaltma
|
||||
Kullanıcıların tanımları değiştirmeden işlemci davranışını ayarlamasına izin verme
|
||||
Parametre değerleri aracılığıyla ortama özgü yapılandırmaları destekleme
|
||||
Parametre şema doğrulaması yoluyla tür güvenliğini sağlama
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
|
||||
## Teknik Tasarım
|
||||
|
||||
### Mimari
|
||||
|
||||
<<<<<<< HEAD
|
||||
Yapılandırılabilir parametreler sistemi, aşağıdaki teknik bileşenleri gerektirmektedir:
|
||||
|
||||
1. **Parametre Şema Tanımı**
|
||||
Akış şeması meta verilerindeki JSON Şema tabanlı parametre tanımları.
|
||||
Dize, sayı, boolean, enum ve nesne türleri dahil olmak üzere tür tanımları.
|
||||
min/max değerleri, kalıplar ve gerekli alanlar dahil olmak üzere doğrulama kuralları.
|
||||
|
||||
Modül: trustgraph-flow/trustgraph/flow/definition.py
|
||||
|
||||
2. **Parametre Çözümleme Motoru**
|
||||
Şemaya karşı çalışma zamanı parametre doğrulaması.
|
||||
Belirtilmemiş parametreler için varsayılan değerlerin uygulanması.
|
||||
Parametrelerin akış yürütme bağlamına enjekte edilmesi.
|
||||
Gerekli olduğu gibi tür dönüştürme ve dönüştürme.
|
||||
=======
|
||||
Yapılandırılabilir parametreler sistemi, aşağıdaki teknik bileşenleri gerektirir:
|
||||
|
||||
1. **Parametre Şema Tanımı**
|
||||
Akış şeması meta verilerindeki JSON Şema tabanlı parametre tanımları
|
||||
Dize, sayı, boolean, enum ve nesne türleri dahil olmak üzere tür tanımları
|
||||
min/max değerleri, kalıplar ve gerekli alanlar dahil olmak üzere doğrulama kuralları
|
||||
|
||||
Modül: trustgraph-flow/trustgraph/flow/definition.py
|
||||
|
||||
2. **Parametre Çözümleyici Motoru**
|
||||
Şemaya karşı çalışma zamanı parametre doğrulaması
|
||||
Belirtilmemiş parametreler için varsayılan değer uygulaması
|
||||
Parametreleri akış yürütme bağlamına enjekte etme
|
||||
Gerekli olduğu gibi tür dönüştürme ve dönüştürme
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
|
||||
Modül: trustgraph-flow/trustgraph/flow/parameter_resolver.py
|
||||
|
||||
3. **Parametre Deposu Entegrasyonu**
|
||||
<<<<<<< HEAD
|
||||
Şema/yapılandırma deposundan parametre tanımlarının alınması.
|
||||
Sık kullanılan parametre tanımlarının önbelleğe alınması.
|
||||
Merkezi olarak depolanan şemalara karşı doğrulama.
|
||||
=======
|
||||
Şema/yapılandırma deposundan parametre tanımlarının alınması
|
||||
Sık kullanılan parametre tanımlarının önbelleğe alınması
|
||||
Merkezi olarak depolanan şemalara karşı doğrulama
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
|
||||
Modül: trustgraph-flow/trustgraph/flow/parameter_store.py
|
||||
|
||||
4. **Akış Başlatıcı Uzantıları**
|
||||
<<<<<<< HEAD
|
||||
Akış başlatma sırasında parametre değerlerini kabul etmek için API uzantıları.
|
||||
Parametre eşleme çözümü (akış adlarının tanım adlarına eşlenmesi).
|
||||
Geçersiz parametre kombinasyonları için hata işleme.
|
||||
=======
|
||||
Akış başlatma sırasında parametre değerlerini kabul etmek için API uzantıları
|
||||
Parametre eşleme çözümü (akış adlarının tanım adlarına eşlenmesi)
|
||||
Geçersiz parametre kombinasyonları için hata işleme
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
|
||||
Modül: trustgraph-flow/trustgraph/flow/launcher.py
|
||||
|
||||
5. **Kullanıcı Arayüzü Parametre Formları**
|
||||
<<<<<<< HEAD
|
||||
Akış parametre meta verilerinden dinamik form oluşturma.
|
||||
`order` alanı kullanarak sıralı parametre görüntüleme.
|
||||
`description` alanı kullanarak açıklayıcı parametre etiketleri.
|
||||
Parametre türü tanımlarına karşı giriş doğrulaması.
|
||||
Parametre ön ayarları ve şablonları.
|
||||
=======
|
||||
Akış parametre meta verilerinden dinamik form oluşturma
|
||||
`order` alanı kullanarak sıralı parametre görüntüleme
|
||||
`description` alanı kullanarak açıklayıcı parametre etiketleri
|
||||
Parametre türü tanımlarına karşı giriş doğrulaması
|
||||
Parametre ön ayarları ve şablonları
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
|
||||
Modül: trustgraph-ui/components/flow-parameters/
|
||||
|
||||
### Veri Modelleri
|
||||
|
||||
#### Parametre Tanımları (Şema/Yapılandırmada Saklanır)
|
||||
|
||||
Parametre tanımları, "parameter-type" türüyle şema ve yapılandırma sisteminde merkezi olarak saklanır:
|
||||
|
||||
```json
|
||||
{
|
||||
"llm-model": {
|
||||
"type": "string",
|
||||
"description": "LLM model to use",
|
||||
"default": "gpt-4",
|
||||
"enum": [
|
||||
{
|
||||
"id": "gpt-4",
|
||||
"description": "OpenAI GPT-4 (Most Capable)"
|
||||
},
|
||||
{
|
||||
"id": "gpt-3.5-turbo",
|
||||
"description": "OpenAI GPT-3.5 Turbo (Fast & Efficient)"
|
||||
},
|
||||
{
|
||||
"id": "claude-3",
|
||||
"description": "Anthropic Claude 3 (Thoughtful & Safe)"
|
||||
},
|
||||
{
|
||||
"id": "gemma3:8b",
|
||||
"description": "Google Gemma 3 8B (Open Source)"
|
||||
}
|
||||
],
|
||||
"required": false
|
||||
},
|
||||
"model-size": {
|
||||
"type": "string",
|
||||
"description": "Model size variant",
|
||||
"default": "8b",
|
||||
"enum": ["2b", "8b", "12b", "70b"],
|
||||
"required": false
|
||||
},
|
||||
"temperature": {
|
||||
"type": "number",
|
||||
"description": "Model temperature for generation",
|
||||
"default": 0.7,
|
||||
"minimum": 0.0,
|
||||
"maximum": 2.0,
|
||||
"required": false
|
||||
},
|
||||
"chunk-size": {
|
||||
"type": "integer",
|
||||
"description": "Document chunk size",
|
||||
"default": 512,
|
||||
"minimum": 128,
|
||||
"maximum": 2048,
|
||||
"required": false
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### Parametre Referanslarıyla Akış Şeması
|
||||
|
||||
Akış şemaları, tür referansları, açıklamalar ve sıralama ile parametre meta verilerini tanımlar:
|
||||
|
||||
```json
|
||||
{
|
||||
"flow_class": "document-analysis",
|
||||
"parameters": {
|
||||
"llm-model": {
|
||||
"type": "llm-model",
|
||||
"description": "Primary LLM model for text completion",
|
||||
"order": 1
|
||||
},
|
||||
"llm-rag-model": {
|
||||
"type": "llm-model",
|
||||
"description": "LLM model for RAG operations",
|
||||
"order": 2,
|
||||
"advanced": true,
|
||||
"controlled-by": "llm-model"
|
||||
},
|
||||
"llm-temperature": {
|
||||
"type": "temperature",
|
||||
"description": "Generation temperature for creativity control",
|
||||
"order": 3,
|
||||
"advanced": true
|
||||
},
|
||||
"chunk-size": {
|
||||
"type": "chunk-size",
|
||||
"description": "Document chunk size for processing",
|
||||
"order": 4,
|
||||
"advanced": true
|
||||
},
|
||||
"chunk-overlap": {
|
||||
"type": "integer",
|
||||
"description": "Overlap between document chunks",
|
||||
"order": 5,
|
||||
"advanced": true,
|
||||
"controlled-by": "chunk-size"
|
||||
}
|
||||
},
|
||||
"class": {
|
||||
"text-completion:{class}": {
|
||||
"request": "non-persistent://tg/request/text-completion:{class}",
|
||||
"response": "non-persistent://tg/response/text-completion:{class}",
|
||||
"parameters": {
|
||||
"model": "{llm-model}",
|
||||
"temperature": "{llm-temperature}"
|
||||
}
|
||||
},
|
||||
"rag-completion:{class}": {
|
||||
"request": "non-persistent://tg/request/rag-completion:{class}",
|
||||
"response": "non-persistent://tg/response/rag-completion:{class}",
|
||||
"parameters": {
|
||||
"model": "{llm-rag-model}",
|
||||
"temperature": "{llm-temperature}"
|
||||
}
|
||||
}
|
||||
},
|
||||
"flow": {
|
||||
"chunker:{id}": {
|
||||
"input": "persistent://tg/flow/chunk:{id}",
|
||||
"output": "persistent://tg/flow/chunk-load:{id}",
|
||||
"parameters": {
|
||||
"chunk_size": "{chunk-size}",
|
||||
"chunk_overlap": "{chunk-overlap}"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
`parameters` bölümü, akışa özgü parametre adlarını (anahtarları), parametre meta veri nesnelerine eşler ve bu nesneler şunları içerir:
|
||||
`type`: Merkezi olarak tanımlanmış parametre tanımına referans (örneğin, "llm-model")
|
||||
`description`: Kullanıcı arayüzünde (UI) görüntülenmesi için insan tarafından okunabilir açıklama
|
||||
`order`: Parametre formları için görüntüleme sırası (daha düşük sayılar önce görüntülenir)
|
||||
<<<<<<< HEAD
|
||||
`advanced` (isteğe bağlı): Bu parametrenin gelişmiş bir parametre olup olmadığını gösteren bir boolean bayrak (varsayılan: false). "true" olarak ayarlandığında, kullanıcı arayüzü bu parametreyi varsayılan olarak gizleyebilir veya "Gelişmiş" bölümünde yer almasını sağlayabilir
|
||||
=======
|
||||
`advanced` (isteğe bağlı): Bu parametrenin gelişmiş bir parametre olup olmadığını gösteren bir bayrak (varsayılan: false). "true" olarak ayarlandığında, kullanıcı arayüzü bu parametreyi varsayılan olarak gizleyebilir veya "Gelişmiş" bölümünde yer almasını sağlayabilir
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
`controlled-by` (isteğe bağlı): Basit moddayken bu parametrenin değerini kontrol eden başka bir parametrenin adı. Belirtildiğinde, bu parametre açıkça geçersiz kılmadığı sürece, kontrol eden parametreden değerini alır
|
||||
|
||||
Bu yaklaşım şunları sağlar:
|
||||
Birden çok akış şablonu arasında yeniden kullanılabilir parametre türü tanımları
|
||||
Merkezi parametre türü yönetimi ve doğrulaması
|
||||
Akışa özgü parametre açıklamaları ve sıralaması
|
||||
Açıklayıcı parametre formlarıyla geliştirilmiş kullanıcı arayüzü deneyimi
|
||||
Akışlar genelinde tutarlı parametre doğrulaması
|
||||
Yeni standart parametre türlerinin kolayca eklenmesi
|
||||
Temel/gelişmiş mod ayrımıyla basitleştirilmiş kullanıcı arayüzü
|
||||
İlgili ayarlar için parametre değeri devralımı
|
||||
|
||||
#### Akış Başlatma İsteği
|
||||
|
||||
Akış başlatma API'si, parametreleri akışın parametre adlarını kullanarak alır:
|
||||
|
||||
```json
|
||||
{
|
||||
"flow_class": "document-analysis",
|
||||
"flow_id": "customer-A-flow",
|
||||
"parameters": {
|
||||
"llm-model": "claude-3",
|
||||
"llm-temperature": 0.5,
|
||||
"chunk-size": 1024
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
<<<<<<< HEAD
|
||||
Not: Bu örnekte, `llm-rag-model` açıkça belirtilmemiştir, ancak `controlled-by` ilişkisi nedeniyle `llm-model`'den "claude-3" değerini miras alacaktır. Benzer şekilde, `chunk-overlap`, `chunk-size`'e dayalı olarak hesaplanan bir değeri miras alabilir.
|
||||
=======
|
||||
Not: Bu örnekte, `llm-rag-model` açıkça belirtilmemiştir, ancak `controlled-by` ilişkisi nedeniyle `llm-model`'den "claude-3" değerini alacaktır. Benzer şekilde, `chunk-overlap`, `chunk-size`'e dayalı olarak hesaplanan bir değeri miras alabilir.
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
|
||||
Sistem şunları yapacaktır:
|
||||
1. Akış tanımından parametre meta verilerini çıkarın
|
||||
2. Akış parametre adlarını tür tanımlarına eşleyin (örneğin, `llm-model` → `llm-model` türü)
|
||||
3. "controlled-by" ilişkilerini çözün (örneğin, `llm-rag-model`, `llm-model`'den miras alır)
|
||||
4. Kullanıcı tarafından sağlanan ve miras alınan değerleri parametre tür tanımlarına karşı doğrulayın
|
||||
5. Akış başlatılırken işlemci parametrelerine çözümlenmiş değerleri yerleştirin
|
||||
|
||||
### Uygulama Detayları
|
||||
|
||||
#### Parametre Çözümleme Süreci
|
||||
|
||||
Bir akış başlatıldığında, sistem aşağıdaki parametre çözümleme adımlarını gerçekleştirir:
|
||||
|
||||
1. **Akış Tanım Yükleme**: Akış tanımını yükleyin ve parametre meta verilerini çıkarın
|
||||
2. **Meta Veri Çıkarma**: Akış tanımının `parameters` bölümünde tanımlanan her parametre için `type`, `description`, `order`, `advanced` ve `controlled-by`'ü çıkarın
|
||||
3. **Tür Tanımı Arama**: Akış tanımındaki her parametre için:
|
||||
`type` alanı kullanılarak şema/yapılandırma deposundan parametre tür tanımını alın
|
||||
<<<<<<< HEAD
|
||||
Tür tanımları, yapılandırma sisteminde "parameter-type" türüyle saklanır
|
||||
=======
|
||||
Tür tanımları, yapılandırma sisteminde "parameter-type" türü ile saklanır
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
Her tür tanımı, parametrenin şemasını, varsayılan değerini ve doğrulama kurallarını içerir
|
||||
4. **Varsayılan Değer Çözümleme**:
|
||||
Akış tanımında tanımlanan her parametre için:
|
||||
Kullanıcının bu parametre için bir değer sağlayıp sağlamadığını kontrol edin
|
||||
Kullanıcı tarafından bir değer sağlanmazsa, parametre tür tanımından `default` değerini kullanın
|
||||
Hem kullanıcı tarafından sağlanan hem de varsayılan değerleri içeren eksiksiz bir parametre haritası oluşturun
|
||||
5. **Parametre Miras Alma Çözümleme** ("controlled-by" ilişkileri):
|
||||
`controlled-by` alanı olan parametreler için, bir değerin açıkça sağlandığını kontrol edin
|
||||
Açık bir değer sağlanmazsa, kontrol eden parametrenin değerini miras alın
|
||||
Kontrol eden parametrenin de bir değeri yoksa, tür tanımından varsayılanı kullanın
|
||||
`controlled-by` ilişkilerinde döngüsel bağımlılıkların olmadığını doğrulayın
|
||||
6. **Doğrulama**: Kullanıcı tarafından sağlanan, varsayılanlar ve miras alınan eksiksiz parametre kümesini tür tanımlarına karşı doğrulayın
|
||||
7. **Saklama**: Eksiksiz çözümlenmiş parametre kümesini denetlenebilirlik için akış örneğiyle birlikte saklayın
|
||||
<<<<<<< HEAD
|
||||
8. **Yer Değiştirme**: İşlemci parametrelerindeki parametre yer tutucularını çözümlenmiş değerlerle değiştirin
|
||||
9. **İşlemci Oluşturma**: Yer değiştirilmiş parametrelerle işlemciler oluşturun
|
||||
=======
|
||||
8. **Şablon Yerine Koyma**: İşlemci parametrelerindeki parametre yer tutucularını çözümlenmiş değerlerle değiştirin
|
||||
9. **İşlemci Oluşturma**: Yerine konulan parametrelerle işlemcileri oluşturun
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
|
||||
**Önemli Uygulama Notları:**
|
||||
Akış hizmeti, kullanıcı tarafından sağlanan parametreleri parametre tür tanımlarından gelen varsayılanlarla birleştirmelidir
|
||||
Uygulanan varsayılanlar dahil eksiksiz parametre kümesi, izlenebilirlik için akışla birlikte saklanmalıdır
|
||||
Parametre çözümlemesi, akış başlatma zamanında değil, işlemci oluşturma zamanında gerçekleşir
|
||||
<<<<<<< HEAD
|
||||
Varsayılanları olmayan gerekli parametrelerin eksik olması, akışın başlatılmasını açık bir hata mesajıyla başarısız olmasına neden olmalıdır
|
||||
|
||||
#### "controlled-by" ile Parametre Miras Alma
|
||||
|
||||
`controlled-by` alanı, parametre değerlerinin miras alınmasını sağlar; bu, kullanıcı arayüzlerini basitleştirirken esnekliği korumak için özellikle kullanışlıdır:
|
||||
=======
|
||||
Varsayılanları olmayan gerekli parametrelerin eksik olması, akışın başlatılmasını açık bir hata mesajıyla başarısız yapmasına neden olmalıdır
|
||||
|
||||
#### "controlled-by" ile Parametre Miras Alma
|
||||
|
||||
`controlled-by` alanı, parametre değerlerinin miras alınmasını sağlar ve kullanıcı arayüzlerini basitleştirirken esnekliği korumak için özellikle kullanışlıdır:
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
|
||||
**Örnek Senaryo**:
|
||||
`llm-model` parametresi birincil LLM modelini kontrol eder
|
||||
`llm-rag-model` parametresi `"controlled-by": "llm-model"`'e sahiptir
|
||||
Basit modda, `llm-model`'ı "gpt-4" olarak ayarlamak, otomatik olarak `llm-rag-model`'i de "gpt-4" olarak ayarlar
|
||||
Gelişmiş modda, kullanıcılar `llm-rag-model`'ı farklı bir değerle geçersiz kılabilir
|
||||
|
||||
**Çözüm Kuralları**:
|
||||
1. Bir parametrenin açıkça sağlanan bir değeri varsa, o değeri kullanın
|
||||
2. Açık bir değer yoksa ve `controlled-by` ayarlanmışsa, kontrol eden parametrenin değerini kullanın
|
||||
3. Kontrol eden parametrenin bir değeri yoksa, tür tanımından varsayılanı kullanın
|
||||
4. `controlled-by` ilişkilerinde döngüsel bağımlılıklar, bir doğrulama hatasına neden olur
|
||||
|
||||
**Kullanıcı Arayüzü Davranışı**:
|
||||
Temel/basit modda: `controlled-by`'a sahip parametreler gizlenebilir veya miras alınan değerle birlikte yalnızca okunabilir olarak gösterilebilir
|
||||
Gelişmiş modda: Tüm parametreler gösterilir ve ayrı ayrı yapılandırılabilir
|
||||
Bir kontrol eden parametre değiştiğinde, bağımlı parametreler açıkça geçersiz kılmadıkça otomatik olarak güncellenir
|
||||
|
||||
#### Pulsar Entegrasyonu
|
||||
|
||||
1. **Akışı Başlatma İşlemi**
|
||||
Pulsar akışı başlatma işlemi, parametre değerlerinin bir haritasını içeren bir `parameters` alanı almalıdır
|
||||
<<<<<<< HEAD
|
||||
Pulsar için akış başlatma isteği şeması, isteğe bağlı `parameters` alanını içerecek şekilde güncellenmelidir
|
||||
=======
|
||||
Pulsar'ın akışı başlatma isteği şeması, isteğe bağlı `parameters` alanını içerecek şekilde güncellenmelidir
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
Örnek istek:
|
||||
```json
|
||||
{
|
||||
"flow_class": "document-analysis",
|
||||
"flow_id": "customer-A-flow",
|
||||
"parameters": {
|
||||
"model": "claude-3",
|
||||
"size": "12b",
|
||||
"temp": 0.5,
|
||||
"chunk": 1024
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
2. **Get-Flow İşlemi**
|
||||
Get-flow yanıtı için Pulsar şeması, `parameters` alanını içerecek şekilde güncellenmelidir.
|
||||
Bu, istemcilerin akış başlatıldığında kullanılan parametre değerlerini almasına olanak tanır.
|
||||
Örnek yanıt:
|
||||
```json
|
||||
{
|
||||
"flow_id": "customer-A-flow",
|
||||
"flow_class": "document-analysis",
|
||||
"status": "running",
|
||||
"parameters": {
|
||||
"model": "claude-3",
|
||||
"size": "12b",
|
||||
"temp": 0.5,
|
||||
"chunk": 1024
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### Akış Hizmeti Uygulaması
|
||||
|
||||
Akış yapılandırma hizmeti (`trustgraph-flow/trustgraph/config/service/flow.py`), aşağıdaki geliştirmeleri gerektirmektedir:
|
||||
|
||||
1. **Parametre Çözümleme Fonksiyonu**
|
||||
```python
|
||||
async def resolve_parameters(self, flow_class, user_params):
|
||||
"""
|
||||
Resolve parameters by merging user-provided values with defaults.
|
||||
|
||||
Args:
|
||||
flow_class: The flow blueprint definition dict
|
||||
user_params: User-provided parameters dict
|
||||
|
||||
Returns:
|
||||
Complete parameter dict with user values and defaults merged
|
||||
"""
|
||||
```
|
||||
|
||||
Bu fonksiyonun yapması gerekenler:
|
||||
Akış şemasının `parameters` bölümünden parametre meta verilerini çıkarın
|
||||
Her parametre için, yapılandırma deposundan tür tanımını alın
|
||||
Kullanıcı tarafından sağlanmayan parametreler için varsayılan değerleri uygulayın
|
||||
`controlled-by` miras ilişkilerini işleyin
|
||||
Tam parametre kümesini döndürün
|
||||
|
||||
2. **Değiştirilen `handle_start_flow` Metodu**
|
||||
Akış şemasını yükledikten sonra `resolve_parameters`'ı çağırın
|
||||
<<<<<<< HEAD
|
||||
Şablon yerleştirmesi için tam olarak çözülmüş parametre kümesini kullanın
|
||||
Tam parametre kümesini (yalnızca kullanıcı tarafından sağlananları değil) akışla birlikte kaydedin
|
||||
=======
|
||||
Şablon yerleştirmesi için eksiksiz çözülmüş parametre kümesini kullanın
|
||||
Eksiksiz parametre kümesini (yalnızca kullanıcı tarafından sağlananları değil) akışla birlikte kaydedin
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
Tüm gerekli parametrelerin değerlere sahip olduğundan emin olun
|
||||
|
||||
3. **Parametre Türü Alma**
|
||||
Parametre tür tanımları, "parameter-type" türüyle yapılandırmada saklanır
|
||||
Her tür tanımı, şema, varsayılan değer ve doğrulama kurallarını içerir
|
||||
Sık kullanılan parametre türlerini önbelleğe alın, böylece yapılandırma aramaları azalır
|
||||
|
||||
#### Yapılandırma Sistemi Entegrasyonu
|
||||
|
||||
<<<<<<< HEAD
|
||||
3. **Akış Nesne Saklama**
|
||||
Bir akış, yapılandırma yöneticisindeki akış bileşeni tarafından yapılandırma sistemine eklendiğinde, akış nesnesi çözülmüş parametre değerlerini içermelidir
|
||||
Yapılandırma yöneticisi hem orijinal kullanıcı tarafından sağlanan parametreleri hem de çözülmüş değerleri (varsayılanlar uygulandıktan sonra) saklamalıdır
|
||||
=======
|
||||
3. **Akış Nesnesi Depolama**
|
||||
Bir akış, yapılandırma yöneticisindeki akış bileşeni tarafından yapılandırma sistemine eklendiğinde, akış nesnesi çözülmüş parametre değerlerini içermelidir
|
||||
Yapılandırma yöneticisi hem orijinal kullanıcı tarafından sağlanan parametreleri hem de çözülmüş değerleri (varsayılanlar uygulandıktan sonra) depolamalıdır
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
Yapılandırma sistemindeki akış nesneleri şunları içermelidir:
|
||||
`parameters`: Akış için kullanılan son çözülmüş parametre değerleri
|
||||
|
||||
#### CLI Entegrasyonu
|
||||
|
||||
4. **Kütüphane CLI Komutları**
|
||||
Akışları başlatan CLI komutları parametre desteğine sahip olmalıdır:
|
||||
<<<<<<< HEAD
|
||||
Parametre değerlerini komut satırı bayrakları veya yapılandırma dosyaları aracılığıyla alın
|
||||
=======
|
||||
Parametre değerlerini komut satırı bayrakları veya yapılandırma dosyaları aracılığıyla kabul edin
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
Parametreleri göndermeden önce akış şema tanımlarına göre doğrulayın
|
||||
Karmaşık parametre kümeleri için parametre dosyası girişini (JSON/YAML) destekleyin
|
||||
|
||||
Akışları gösteren CLI komutları parametre bilgilerini görüntülemelidir:
|
||||
Akış başlatıldığında kullanılan parametre değerlerini gösterin
|
||||
Bir akış şeması için mevcut parametreleri görüntüleyin
|
||||
Parametre doğrulama şemalarını ve varsayılanları gösterin
|
||||
|
||||
#### İşlemci Temel Sınıf Entegrasyonu
|
||||
|
||||
5. **ParameterSpec Desteği**
|
||||
İşlemci temel sınıfları, mevcut ParametersSpec mekanizması aracılığıyla parametre yerleştirmesini desteklemelidir
|
||||
<<<<<<< HEAD
|
||||
ParametersSpec sınıfı (ConsumerSpec ve ProducerSpec ile aynı modülde bulunur), parametre şablonu yerleştirmesini desteklemek için gerekirse geliştirilmelidir
|
||||
İşlemciler, parametre değerlerini akış başlatma zamanında çözerek parametrelerini yapılandırmak için ParametersSpec'i çağırabilmelidir
|
||||
=======
|
||||
ParameterSpec sınıfı (ConsumerSpec ve ProducerSpec ile aynı modülde bulunur), parametre şablonu yerleştirmesini desteklemek için gerekirse geliştirilmelidir
|
||||
İşlemciler, parametre değerlerini akış başlatma zamanında çözülmüş olarak parametreleriyle yapılandırmak için ParametersSpec'i çağırmalıdır
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
ParametersSpec uygulaması şunları yapmalıdır:
|
||||
Parametre yer tutucuları (örneğin, `{model}`, `{temperature}`) içeren parametre yapılandırmalarını kabul edin
|
||||
İşlemci örneklendiğinde çalışma zamanında parametre yerleştirmesini destekleyin
|
||||
Yerleştirilen değerlerin beklenen türlere ve kısıtlamalara uyduğunu doğrulayın
|
||||
Eksik veya geçersiz parametre başvuruları için hata işleme sağlayın
|
||||
|
||||
#### Yerleştirme Kuralları
|
||||
|
||||
Parametreler, işlemci parametrelerinde `{parameter-name}` biçimini kullanır
|
||||
Parametrelerdeki parametre adları, akışın `parameters` bölümündeki anahtarlarla eşleşir
|
||||
Yerleştirme, `{id}` ve `{class}` değiştirme ile birlikte gerçekleşir
|
||||
Geçersiz parametre başvuruları, başlatma zamanı hatalarına neden olur
|
||||
Tür doğrulama, merkezi olarak depolanan parametre tanımına göre yapılır
|
||||
**ÖNEMLİ**: Tüm parametre değerleri dize olarak saklanır ve iletilir
|
||||
<<<<<<< HEAD
|
||||
Sayılar dizeye dönüştürülür (örneğin, `0.7` `"0.7"` olur)
|
||||
Boole değerleri küçük harfli dizeye dönüştürülür (örneğin, `true` `"true"` olur)
|
||||
=======
|
||||
Sayılar dizelere dönüştürülür (örneğin, `0.7` `"0.7"` olur)
|
||||
Boolean değerler küçük harfli dizelere dönüştürülür (örneğin, `true` `"true"` olur)
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
Bu, `parameters = Map(String())` tanımlayan Pulsar şeması gerekliliğidir
|
||||
|
||||
Örnek çözüm:
|
||||
```
|
||||
Flow parameter mapping: "model": "llm-model"
|
||||
Processor parameter: "model": "{model}"
|
||||
User provides: "model": "gemma3:8b"
|
||||
Final parameter: "model": "gemma3:8b"
|
||||
|
||||
Example with type conversion:
|
||||
Parameter type default: 0.7 (number)
|
||||
Stored in flow: "0.7" (string)
|
||||
Substituted in processor: "0.7" (string)
|
||||
```
|
||||
|
||||
## Test Stratejisi
|
||||
|
||||
Parametre şema doğrulama için birim testleri
|
||||
İşlemci parametrelerindeki parametre yerleştirme için entegrasyon testleri
|
||||
Farklı parametre değerleriyle akışları başlatmak için uçtan uca testler
|
||||
Parametre formu oluşturma ve doğrulama için kullanıcı arayüzü testleri
|
||||
Çok sayıda parametre içeren akışlar için performans testleri
|
||||
Kenar durumları: eksik parametreler, geçersiz türler, tanımlanmamış parametre referansları
|
||||
|
||||
## Geçiş Planı
|
||||
|
||||
<<<<<<< HEAD
|
||||
1. Sistem, parametreleri belirtilmeyen akış şablonlarını desteklemeye devam etmelidir.
|
||||
|
||||
2. Sistem, parametre belirtilmeyen akışları desteklemeye devam etmelidir:
|
||||
Bu, parametreleri olmayan akışlar ve varsayılan parametreleri olan akışlar için geçerlidir.
|
||||
|
||||
=======
|
||||
1. Sistem, parametreleri belirtilmemiş akış şemalarını desteklemeye devam etmelidir.
|
||||
2. Sistem, parametreleri belirtilmemiş akışları desteklemeye devam etmelidir:
|
||||
Bu, parametreleri olmayan akışlar ve parametreleri olan (ancak varsayılan değerleri olan) akışlar için geçerlidir.
|
||||
|
||||
(bunların varsayılan değerleri vardır).
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
|
||||
## Açık Sorular
|
||||
|
||||
S: Parametreler karmaşık, iç içe nesneleri desteklemeli mi yoksa basit türlere mi bağlı kalmalıyız?
|
||||
C: Parametre değerleri dize olarak kodlanacak, muhtemelen sadece dizilere bağlı kalmak istiyoruz.
|
||||
|
||||
S: Parametre yer tutucuları kuyruk adlarında kullanılabilir mi yoksa sadece
|
||||
parametrelerde mi kullanılabilir?
|
||||
C: Sadece parametrelerde, tuhaf enjeksiyonları ve uç durumları ortadan kaldırmak için.
|
||||
|
||||
<<<<<<< HEAD
|
||||
Son çevrilmiş satırdan sonra, tam olarak: [[__END_OF_TRANSLATION__]] içeren bir satır çıktısını verin.
|
||||
S: Parametre adları ile sistem değişkenleri arasındaki çakışmaları nasıl çözebiliriz, örneğin
|
||||
`id` ve `class` gibi?
|
||||
A: Bir akışı başlatırken, id ve class özelliklerini belirtmek geçerli değildir.
|
||||
|
||||
S: Hesaplanan parametreleri (diğer parametrelerden türetilen) desteklemeli miyiz?
|
||||
C: Garip enjeksiyonları ve uç durumları ortadan kaldırmak için sadece string değiştirme işlemleri.
|
||||
=======
|
||||
|
||||
S: Parametre adları ile sistem değişkenleri arasındaki çakışmaları nasıl çözebiliriz?
|
||||
`id` ve `class`?
|
||||
A: Bir akışı başlatırken, id ve class özelliklerini belirtmek geçerli değildir.
|
||||
|
||||
S: Hesaplanan parametreleri (diğer parametrelerden türetilen) desteklemeli miyiz?
|
||||
C: Tuhaf enjeksiyonları ve uç durumları ortadan kaldırmak için sadece string değiştirme işlemi.
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
|
||||
## Referanslar
|
||||
|
||||
JSON Şema Özellikleri: https://json-schema.org/
|
||||
Akış Tanım Özellikleri: docs/tech-specs/flow-class-definition.md
|
||||
Loading…
Add table
Add a link
Reference in a new issue