Ağ geçitleri ve bulutlar için model kataloglarını uygulama
Sürüme özgü Codex varsayılanlarını alın, sağlayıcıya özgü geçersiz kılmaları uygulayın ve bir model kataloğu sunun
Bu sayfa, model kataloğunu tanımlayan ve model seçicinin çalışmasını sağlayan Codex Models biçimini uygulayan geliştiriciler içindir. Ağ geçidi veya bulut hizmeti gibi bir çıkarım sağlayıcısı geliştiriyorsanız Codex masaüstü uygulamasının ve CLI'ın modellerinizi keşfetmesini, talimatlarını ve yetenek ayarlarını kullanmasını sağlamak için bu belirtimi kullanın.
Bir kuruluşu yönetiyor ve model kataloğunu denetlemek istiyorsanız
model_catalog_url yapılandırma kılavuzuna bakın.
Bu biçimi desteklemek için kimlik doğrulamalı bir katalog uç noktası uygulayın. İstekte bulunan Codex sürümü için üst sağlayıcınızın güncel varsayılanlarını alın, kendi geçersiz kılmalarınızı uygulayın ve ortaya çıkan kataloğu döndürün.
client_version Katalog uç noktasını uygulayın
Varsayılan katalog uç noktası, sağlayıcının base_url adresi altındaki /models yoludur.
Örneğin, base_url = "https://gateway.example.com/v1" kullanıldığında Codex şu isteği gönderir:
GET /v1/models?client_version=0.162.1
Authorization: Bearer <PROVIDER_ACCESS_TOKEN>Varsayılan keşif, komut tabanlı kimlik doğrulamayı ve ChatGPT gibi Codex arka ucu
üzerinden kimlik doğrulamayı destekler. Komut tabanlı kimlik doğrulama olmadan
API key ile kimlik doğrulama kullanan özel bir sağlayıcı için model_providers.<id>.model_catalog_url ayarını
uzaktan keşfi etkinleştirmek üzere açıkça belirtin. Tek başına bir API key, varsayılan
yolda keşfi tetiklemez.
https://gateway.example.com/codex/models gibi tam bir katalog URL'si seçmek için
model_catalog_url kullanın. Bu URL, varsayılan
/v1/models uç noktasını da gösterebilir. Codex bu URL'yi /models eklemeden doğrudan kullanır.
API key ile keşif için features.api_key_model_discovery ayarını etkin tutun; bu ayar varsayılan
olarak açıktır. Özel üstbilgiler tek başına keşfi etkinleştirmez.
Codex, seçilen sağlayıcının kimlik doğrulama bilgilerini ve yapılandırılmış üstbilgileri gönderir;
client_version ile sağlayıcının varsa query_params değerlerini ekler. Kataloğu,
bu kimlik bilgilerini almaya yetkili bir hizmette barındırın.
Çağrıyı yapanın kimliğini doğrulayın, ilgili üst sağlayıcı varsayılanlarını alın, kendi
geçersiz kılmalarınızı uygulayın ve ModelsResponse JSON'unun tamamını doğrudan döndürün. Her
kayda benzersiz ve boş olmayan bir slug verin. Açıkça belirtilmiş bir model_catalog_url için Codex,
yönlendirmeleri ve 1 MiB'tan büyük yanıtları reddeder. Çıkarım isteklerinde model erişim
kurallarını uygulamaya devam edin.
Uç noktayı kullanan istemcilerden geçerli olan tüm model_catalog_json ayarlarını kaldırın:
yerel dosya önceliklidir ve uzaktan veri alımını engeller.
İstemcinin şemasıyla eşleştirin
Katalog isteğindeki client_version sorgu parametresini okuyun. Codex, CLI
sürümünü varsa ön sürüm son ekini kaldırarak major.minor.patch biçiminde gönderir. Masaüstü
istemcilerinde bu, paketle birlikte gelen CLI sürümüdür.
Herkese açık Codex deposunda eşleşen rust-v<version> etiketini veya özel bir derleme
için tam kaynak commit'ini kullanın. Bu bağlantılar rust-v0.162.1 kullanır;
istemcinizle eşleşen revizyonu seçin:
- Şema için
ModelsResponseveModelInfoyanıt türlerini okuyun. - Eksiksiz bir örnek için paketle birlikte gelen
models.jsondosyasını inceleyin. Bu dosya katalog verisidir, JSON Schema belgesi değildir.
Paketle birlikte gelen dosya, yayımlanan sürümün anlık görüntüsüdür. Kataloğunuzu oluşturmadan önce güncel varsayılanları alın.
Üst sağlayıcının güncel varsayılanlarını alın
OpenAI modellerini sunan bulut sağlayıcıları varsayılanları OpenAI'dan alır. Ağ geçitleri, dağıtımdaki modelin ayarlarını ve hesap ile bölge bazındaki kullanılabilirliğini korumak için bulut sağlayıcılarının veya üst sağlayıcılarının kataloğunu okur. İstekte bulunan Codex sürümünü her adımda iletin ve her uç noktada ayrı ayrı kimlik doğrulayın.
Varsayılanları doğrudan OpenAI'dan almak için Codex modeller uç noktasını aynı
client_version değeriyle çağırın. Örneğin, bir OpenAI API key ile:
curl --fail --silent --show-error \
'https://chatgpt.com/backend-api/codex/models?client_version=0.162.1' \
-H "Authorization: Bearer $OPENAI_API_KEY"ChatGPT entegrasyonu için çağrıyı yapanın ChatGPT erişim belirtecini ve
uygun olduğunda ChatGPT-Account-ID üstbilgisini kullanın. Üst sağlayıcının uç noktası için
yetkili kimlik bilgilerini kullanın; ağ geçidinizin kendi API key değeri OpenAI'da kimlik doğrulamaz.
Üst düzey models dizisi dahil yanıtın tamamını ayrıştırın. Bu uç nokta,
talimatlar, akıl yürütme varsayılanları, araç ayarları, bağlam sınırları ve hizmet katmanları
gibi Codex meta verilerini döndürür. Herkese açık /v1/models uç noktası
bu kataloğu sağlamaz.
Codex sürümü değişmese bile bu varsayılanları yenileyin. İstekleri hedeflenen üst sağlayıcı kimliğiyle sınırlı tutun ve yanıtın önbellek denetimlerine uyun: kataloglar, çağrıyı yapanın erişimine bağlı olabilir. Geçersiz kılmalarınızı ayrı tutun; böylece bunları yeni varsayılanlara yeniden uygulayabilirsiniz.
Sağlayıcıya özgü geçersiz kılmaları uygulayın
Sürümün yanıt yapısını koruyarak alan değerlerini değiştirin:
- Modelleri, çağrıyı yapanın kullanabilecekleriyle sınırlandırın. Her
slugdeğerini desteklenen bir çıkarım rotasıyla eşleştirin vedisplay_name,descriptionveyaprioritydeğerlerini ayarlayın. Model geçişi içermeyen bir takma ad içinupgradedeğerininullolarak ayarlayın. - Akıl yürütme seçeneklerini, bağlam sınırlarını, girdi modalitelerini ve hizmet katmanlarını
modelinizin ve rotanızın desteklediği değerlere ayarlayın. Varsayılanları desteklenen
seçeneklerle sınırlı tutun. Hizmet katmanları olmayan bir rota için
service_tiersveadditional_speed_tiersalanlarını temizleyin vedefault_service_tierdeğerininullolarak ayarlayın. - Yerine koyacağınız seçeneği test etmediyseniz üst sağlayıcının talimatlarını ve araç ayarlarını koruyun. Meta veriler modele yetenek eklemez veya çıkarım erişimi sağlamaz.
LiteLLM üzerinden Bedrock kullanımı için gerekli katalog düzenlemelerini uygulayın. Ortaya çıkan kataloğu desteklenen her Codex sürümüyle test edin.
Herkese açık Rust türlerini kullanın
İstemcinin şemasıyla aynı herkese açık Git etiketine veya commit'ine ait crate'leri kullanın:
codex_protocol::openai_models::{ModelsResponse, ModelInfo}içincodex-protocolkullanın.serde_json::from_slice::<ModelsResponse>()ile ayrıştırın,catalog.modelsüzerinde düzenleme yapın ve sarmalayıcının tamamınıserde_json::to_vec()ile serileştirin. Sarmalayıcı, model talimatlarına ilişkin uyumluluk alanlarını işler.- İlgili revizyonun paketle birlikte gelen statik kataloğunu
ModelsResponseolarak yüklemek içincodex-models-manager::bundled_models_response()kullanın. Bu, üst sağlayıcının güncel varsayılanlarını almaz.