Skill Sync Nesne Yapısı
Genel Bakış
skillSync nesnesi, yöneticilerin harici kaynaklardan gelen Skill'leri yansıtmasına (mirror) olanak tanır. v1.3.13 sürümünde, desteklenen sağlayıcı GitHub'dır.
GitHub Skill Sync, yapılandırılmış depo yollarından SKILL.md dosyalarını ve bunlarla ilişkili dosyaları okur, bunları source: "github" ile Yetenekler (Skills) olarak depolar ve sonraki eşitlemelerde yansıtılan satırları yukarı akış deposuyla uyumlu tutar.
Örnek
skillSync:
github:
enabled: true
intervalMinutes: 60
runOnStartup: true
sources:
- id: librechat-skills
owner: your-org
repo: your-skills-repo
ref: main
paths:
- skills
skillDiscoveryDepth: 2
token: '${GITHUB_SKILLS_TOKEN}'
# credentialKey: production-skills
# tenantId: your-tenant-idKimlik Bilgileri
Her kaynak için token veya credentialKey seçeneklerinden birini kullanın, her ikisini birden kullanmayın. token, ${GITHUB_SKILLS_TOKEN} gibi bir ortam değişkeni referansı olmalıdır. Seçilen depo için salt okunur İçerik (Contents) ve Meta Veri (Metadata) izinlerine sahip, GitHub'a özgü (fine-grained) bir kişisel erişim belirteci kullanın.
Üst Düzey Alanlar
skillSync.github
| Key | Type | Description | Example |
|---|---|---|---|
| github.enabled | Boolean | GitHub Skill Sync özelliğini etkinleştirir veya devre dışı bırakır. | enabled: true |
| github.intervalMinutes | Number | Zamanlanmış GitHub Skill Sync işleminin ne sıklıkla çalışacağı. 5 ile 35791 dakika arasında olmalıdır. | intervalMinutes: 60 |
| github.runOnStartup | Boolean | Sunucu başladığında GitHub Skill Sync'i çalıştırır. | runOnStartup: true |
| github.sources | Array of Objects | Skills için taranacak GitHub depoları ve yolları. GitHub Skill Sync etkinleştirildiğinde gereklidir. |
Varsayılanlar:
enabled:falseintervalMinutes:60runOnStartup:falsesources:[]
Kaynak Alanları
Her bir github.sources girdisi, bir depo kaynağını yapılandırır.
| Key | Type | Description | Example |
|---|---|---|---|
| id | String | Kararlı ve benzersiz kaynak kimliği. Bir harf veya rakamla başlamalı ve yalnızca harfler, rakamlar, alt çizgiler veya kısa çizgiler içermelidir. | id: librechat-skills |
| owner | String | GitHub organizasyon veya kullanıcı adı. | owner: your-org |
| repo | String | GitHub depo adı. | repo: your-skills-repo |
| ref | String | Okunacak Git ref, branch, tag veya commit. Varsayılan değer `main` şeklindedir. | ref: main |
| paths | Array of Strings | Taranacak depo yolları. Depo kök dizininden tarama yapmak için `.` kullanın. | paths: ["skills"] |
| skillDiscoveryDepth | Number | `SKILL.md` dosyalarını taramak için yapılandırılmış her yolun altındaki dizin derinliği. Varsayılan değer `2`'dir; maksimum değer `10`'dur. | skillDiscoveryDepth: 2 |
| token | String | GitHub token'ı içeren ortam değişkeni referansı. `credentialKey` ile karşılıklı olarak birbirini dışlar. | token: '${GITHUB_SKILLS_TOKEN}' |
| credentialKey | String | Yönetici Skill Sync kimlik bilgisi uç noktaları aracılığıyla yönetilen kayıtlı GitHub kimlik bilgisi anahtarı. `token` ile karşılıklı olarak birbirini dışlar. | credentialKey: production-skills |
| tenantId | String | Kiracı izolasyonu etkinleştirildiğinde yansıtılan Yeteneklerin (Skills) sahibi olan isteğe bağlı kiracı kimliği. | tenantId: tenant-a |
Kaynak Kimliği
id alanı, yansıtılan kimliğin bir parçasıdır. Sabit tutun. Bir kaynağı yeniden adlandırılmış bir depoya veya yeni bir referansa yönlendirmek, yansıtılan Skill'lerin aynı kaynak kimliğine bağlı kalmasını sağlar; kaynak kimliğini değiştirmek ise yeni bir yansıma oluşturur.
tenantId ayarlandığında, eşitleme okuma ve yazma işlemleri o kiracının yalıtım bağlamı içinde çalışır. tenantId değerini bir kaynak kimliği için değiştirilemez olarak kabul edin: bu değeri daha sonra değiştirmek, eklemek veya kaldırmak, önceden yansıtılmış Yetenekleri (Skills) eski kiracıda bırakır.
Senkronizasyon Davranışı
GitHub Skill Sync:
- Yapılandırılmış her yolun altındaki
SKILL.mddosyalarını keşfeder. SKILL.mdgövdesini, frontmatter'ını ve paketlenmiş dosyalarını içe aktarır.- Kaynak kimliği, sahip, depo, referans, beceri yolu, commit SHA ve blob SHA gibi kaynak meta verilerini depolar.
- Yukarı akış dosyası değiştiğinde yansıtılan Skills'i günceller.
- Yapılandırılmış kaynaktan kaldırılan yansıtılmış (mirrored) Skills ve dosyaları siler.
- Aynı anda yalnızca bir GitHub senkronizasyonunun çalışmasını sağlamak için bir senkronizasyon kilidi kullanır.
Yönetici Endpoint'leri
Admin API, GitHub Skill Sync durumunu, manuel çalıştırmaları ve depolanmış kimlik bilgisi yönetimini açığa çıkarır:
| Key | Type | Description | Example |
|---|---|---|---|
| GET /api/admin/skills/sync/status | Endpoint | Etkin durumunu, zamanlama ayarlarını, kaynak durumunu, kimlik bilgisi varlığını ve son eşitleme sayılarını döndürür. | |
| POST /api/admin/skills/sync/run | Endpoint | Çağıran taraf gerekli admin Skills yetkisine sahip olduğunda manuel bir senkronizasyon çalıştırır. | |
| PUT /api/admin/skills/sync/credentials/:credentialKey | Endpoint | Bir kimlik bilgisi anahtarı için GitHub token'ını depolar veya yeniler. | |
| DELETE /api/admin/skills/sync/credentials/:credentialKey | Endpoint | Bir kimlik bilgisi anahtarı için depolanmış GitHub token'ını siler. |
Durum okumaları, yönetici erişimi ve Skills okuma izni gerektirir. Manuel çalıştırmalar ve kimlik bilgisi yazmaları, platform düzeyinde Skills yönetimi izni gerektirir.
Bu rehber nasıl?