Model Gateway'i Yapılandırma
Sağlayıcı ayarları, model tanımları, kimlik bilgisi yönetimi, TLS yapılandırması ve desteklenen model sağlayıcıları için dağıtım örnekleri dahil olmak üzere Model Gateway yapılandırma dosyasını nasıl oluşturacağınızı ve yöneteceğinizi öğrenin.
Model Gateway, Bob on-premises'in OpenAI uyumlu endpoint'ler, AWS Bedrock ve Google Vertex AI dahil olmak üzere farklı sağlayıcılardaki desteklenen yapay zeka modellerine bağlanmasını ve istekleri yönlendirmesini sağlar. Bir Model Gateway yapılandırması model endpoint'lerini, kimlik doğrulama ayarlarını, yönlendirme davranışını, geri dönüş (fallback) seçeneklerini ve model yeteneklerini tanımlarken, hassas kimlik bilgileri ve sertifikalar config.yaml aracılığıyla güvenli bir şekilde yönetilir.
Model gateway yapılandırması, ağ geçidinin hangi modellere bağlanacağını ve her bir sağlayıcıyla nasıl kimlik doğrulaması yapacağını tanımlayan bir YAML dosyasıdır.
Model gateway içinde aynı anda yalnızca bir temel çıkarım (core inference) modeli yapılandırın. Aynı anda birden fazla temel modelin yapılandırılması desteklenmez ve tanımsız davranışa yol açar.
Model belirtimi
models listesindeki her girdinin benzersiz bir model_name değeri olmalıdır. Tam model belirtimi şöyledir:
- model_name: example_model
# Sağlayıcı türleri (model başına birini seçin):
openai_compatible: # — OpenAI uyumlu herhangi bir REST endpoint'i (Azure, …)
bedrock: # — AWS Bedrock çağırma (invoke) endpoint'i
vertex: # — Google Vertex AI (Gemini)
# Model bilgisi parametreleri (isteğe bağlı)
model_info:
exposed: true # true: /models listesinde görünür; false: yalnızca dahili
max_input_tokens: 128000 # bağlam penceresi boyutu (context window)
max_output_tokens: 4096 # modelin üretebileceği maksimum token sayısı
input_cost_per_token: 0.0000025 # girdi token'ı başına USD maliyeti (kullanım ölçümü için kullanılır)
output_cost_per_token: 0.000010 # çıktı token'ı başına USD maliyeti
cache_read_input_token_cost: 0.00 # önbellekten okunan girdi token maliyeti (prompt caching)
cache_creation_input_token_cost: 0.00 # yeni önbellek girdisi yazma maliyeti
supports_prompt_caching: true # model prompt caching destekliyorsa true
supports_function_calling: true # model araç/fonksiyon çağrılarını destekliyorsa true
supports_tool_choice: true # tool_choice parametresi dikkate alınıyorsa true
supports_reasoning: false # model reasoning_effort parametresini destekliyorsa true
supports_vision: false # model sohbet mesajlarında görsel girişlerini kabul ediyorsa true
mode: chat # chat | embedding | image_generation
# Bu model kullanılamadığında denenecek sıralı isteğe bağlı model_name değerleri listesi
fallbacks:
- fallback_model
# Sağlayıcıya gönderilen her isteğe eklenen standart parametreler (örneğin temperature, top_p,
# max_tokens) ve sağlayıcıya özgü uzantılar (örneğin top_k,
# repetition_penalty, anthropic_beta) dahil isteğe bağlı serbest biçimli istek parametreleri.
chat_inference_params:
temperature: 0.7
top_p: 0.9supports_vision: true ayarını yalnızca görsel girişlerini kabul eden modellerde uygulayın. Görsel girişlerini desteklemeyen bir modelde supports_vision değeri true olarak ayarlanırsa, sohbette görsel göndermek sağlayıcı hatasına neden olur. Aşağıdaki modeller görsel girişlerini desteklemez ve supports_vision: false kullanmalı veya bu işareti atlamalıdır: Laguna S2.1 ve Nvidia Nemotron 3.
Sağlayıcılar
openai_compatible
OpenAI uyumlu bir REST API'ye sahip harici olarak barındırılan herhangi bir modele bağlanır (örneğin, Azure OpenAI, özel endpoint'ler).
openai_compatible:
model: gpt-4o # Sağlayıcı tarafından beklenen Model ID
base_url: https://base_url # Model dağıtımının temel URL'si
api_key: env.API_KEY # Kimlik doğrulaması için API anahtarı. env.<VAR> container ortamından okur
extra_headers: # Çıkarım sırasında dahil edilecek ek başlıklar
example_header: env.HEADER_VALUE
insecure_skip_verify: true # TLS doğrulamasını devre dışı bırakır (üretim için önerilmez)
ca_cert_pem: env.CA_CERT # TLS doğrulaması için CA sertifikasıbedrock
AWS Bedrock aracılığıyla sunulan bir modele bağlanır.
bedrock:
model: claude # Sağlayıcı tarafından beklenen Model ID
region: us-east-1 # Bedrock endpoint'inizin bulunduğu AWS bölgesi
access_key_id: env.AWS_ACCESS_KEY # Bedrock Access Key ID
secret_access_key: env.AWS_SECRET_ACCESS_KEY # Bedrock Secret Access Keyvertex
Google Vertex AI (Gemini) aracılığıyla sunulan bir modele bağlanır. Kimlik bilgileri base64 kodlu bir servis hesabı (service account) JSON dizgisi olarak sağlanmalıdır.
vertex:
model: gemini # Sağlayıcı tarafından beklenen Model ID
project: my-gcp-project # GCP proje ID'si
location: global # Vertex AI bölgesi / Global API için "global"
credentials: env.GEMINI_CREDENTIALS # Servis hesabı JSON'u, base64 kodluYAML çıpaları (anchors)
Kimlik bilgisi çıpaları
Tekrardan kaçınmak için kimlik bilgilerini bir kez tanımlayın ve birden çok model girdisinde <<: *anchor-name ile referans verin.
# AWS Bedrock kimlik bilgileri — bedrock modelleri tarafından referans verilir.
x-aws-bedrock-auth: &aws-bedrock-auth
region: us-east-1
access_key_id: env.AWS_ACCESS_KEY
secret_access_key: env.AWS_SECRET_ACCESS_KEY
models:
- model_name: my-bedrock-model
bedrock:
model: claude
<<: *aws-bedrock-auth # yukarıda tanımlanan kimlik bilgisi çıpasını birleştirin
model_info:
exposed: true
mode: chatModel çıpaları
Sağlayıcı yapılandırmasını ve model_info bilgilerini tekrarlamamak için birden çok girdi arasında tam bir model bloğunu birleştirin.
x-my-base-model: &my-base-model
vertex:
model: gemini-2.5-pro
project: my-gcp-project
location: global
credentials: env.GEMINI_CREDENTIALS
model_info:
exposed: false
supports_reasoning: true
mode: chat
models:
- model_name: my-gemini-model
<<: *my-base-model
- model_name: my-second-gemini-model
<<: *my-base-modelKimlik bilgisi ve secret yönetimi
Secret'lar
Model yapılandırmasında referans verilen tüm gizli bilgiler (API anahtarları, parolalar, sertifikalar) için bunları kurulumdaki config.yaml dosyasında bob.modelGateway.secrets altında yapılandırın. Secret'lar çalışma zamanında Inference Service container'ına bağlanır (mount edilir).
bob:
modelGateway:
secrets:
VAR_BAR_1: FOO_1
VAR_BAR_2: FOO_2
VAR_BAR_N: FOO_NModel yapılandırmasında bir secret'a env.<VAR_NAME> sözdizimini kullanarak referans verin:
api_key: env.VAR_BAR_1TLS ve sertifika gereksinimleri
Kök CA paketi, bulut sağlayıcıları için standart genel CA sertifikalarını içerir. Ancak özel endpoint'ler veya dahili model sunucuları (örneğin, özel veya kendinden imzalı kurumsal sertifikalara sahip vLLM veya OpenShift AI) kullanırken, TLS güvenini sağlamak için dahili Kök/Ara CA sertifikanızı sağlamalısınız.
Bu model endpoint'i TLS yapılandırması, Bob IDE ve Bob Shell'in Bob arka ucuna bağlanması için gereken sertifikadan ayrıdır. Arka uç endpoint sertifikası ve istemci güven adımları için bkz. TLS sertifikaları.
Özel TLS sertifikaları, API kimlik bilgileriyle aynı iki dosyalı dağıtılmış yapılandırma modelini izler:
model-gateway.yamliçinde:ca_cert_pemdeğerini bir ortam değişkeni adına ayarlayın (örneğin,env.CA_CERT).config.yamliçinde:bob.modelGateway.secretsaltına eşleşen değişken adını ekleyin ve tam PEM kodlu sertifika dizesini yapıştırın.
Model gateway yapılandırması:
models:
- model_name: example-model
openai_compatible:
model: mistral-3.5
base_url: https://vllm.internal.corp:8000/v1
api_key: env.MODEL_API_KEY
ca_cert_pem: env.CA_CERT # config.yaml içinde tanımlanan değişken adını gösterir
model_info:
exposed: true
mode: chatKurulum yapılandırması (config.yaml):
bob:
modelGateway:
secrets:
MODEL_API_KEY: "<your-api-key>"
# Yukarıdaki env.CA_CERT ile eşleşen gerçek PEM sertifika içeriği:
CA_CERT: |
-----BEGIN CERTIFICATE-----
MIIFazCCA1OgAwIBAgIRAIIQjJaDSmJT3g4qg05...
... [full PEM-encoded CA certificate data] ...
-----END CERTIFICATE-----Dağıtım sırasında bobctl, CA_CERT değerini bob-inference-model-secrets Kubernetes Secret'ına enjekte eder. Bu daha sonra çıkarım ağ geçidi servisine bağlanır ve özel model sunucunuza karşı TLS el sıkışması (handshake) için kullanılır.
Eksiksiz örnek
Aşağıda tüm sağlayıcı türlerini kapsayan eksiksiz bir örnek yer almaktadır. Model gateway yapılandırmasını bir dosyaya kaydedin (örneğin, /tmp/example/model-gateway.yaml) ve kurulum sırasında referans verin.
Model gateway yapılandırması (/tmp/example/model-gateway.yaml)
# ── Kimlik bilgisi çıpaları (YAML birleştirme anahtarları aracılığıyla model girdileri arasında paylaşılır) ──────
# AWS Bedrock kimlik bilgileri
x-aws-bedrock-auth: &aws-bedrock-auth
region: us-east-1
access_key_id: env.AWS_ACCESS_KEY
secret_access_key: env.AWS_SECRET_ACCESS_KEY
# Google Vertex AI kimlik bilgileri
x-vertex-auth: &vertex-auth
project: my-gcp-project
location: global
credentials: env.GEMINI_CREDENTIALS
# ── Paylaşılan model çıpaları (isteğe bağlı) ───────────────────────────────────
x-my-base-model: &my-base-model
vertex:
model: gemini-2.5-pro
<<: *vertex-auth
model_info:
exposed: true
max_input_tokens: 200000
max_output_tokens: 12000
input_cost_per_token: 0.00000125
output_cost_per_token: 0.00001
cache_read_input_token_cost: 0.000000125
supports_reasoning: true
mode: chat
# ── Modeller ──────────────────────────────────────────────────────────────────
models:
# API anahtarlı OpenAI uyumlu model (ör. Azure OpenAI)
- model_name: my-gpt-model
openai_compatible:
model: gpt-4o
base_url: https://<resource>.cognitiveservices.azure.com/openai
api_key: env.BOB_AZURE_API_KEY
model_info:
exposed: true
max_input_tokens: 128000
max_output_tokens: 4096
input_cost_per_token: 0.0000025
output_cost_per_token: 0.000010
supports_function_calling: true
supports_tool_choice: true
mode: chat
chat_inference_params:
temperature: 0.7
top_p: 0.9
# AWS Bedrock modeli
- model_name: my-bedrock-model
bedrock:
model: us.anthropic.claude-3-5-sonnet-20241022-v2:0
<<: *aws-bedrock-auth
fallbacks: # isteğe bağlı: geri dönüş model adlarının sıralı listesi
- my-fallback-model
model_info:
exposed: false
max_input_tokens: 200000
max_output_tokens: 8192
input_cost_per_token: 0.000003
output_cost_per_token: 0.000015
cache_creation_input_token_cost: 0.00000375
cache_read_input_token_cost: 0.0000003
supports_prompt_caching: true
supports_function_calling: true
supports_tool_choice: true
mode: chat
chat_inference_params:
temperature: 0.7
top_k: 50
# Paylaşılan model çıpası kullanan Google Vertex AI (Gemini) modeli
- model_name: my-gemini-model
<<: *my-base-model
# Özel CA sertifikasına sahip OpenAI uyumlu model
- model_name: example-model-mini
openai_compatible:
model: gpt-4o-mini
base_url: https://llm-mock-server.ca-tor.containers.appdomain.cloud
ca_cert_pem: env.CA_CERT
model_info:
exposed: true
max_input_tokens: 131072
input_cost_per_token: 0.00000015
output_cost_per_token: 0.0000006
supports_function_calling: true
supports_tool_choice: true
mode: chat
# Ek başlıklara sahip OpenAI uyumlu model
- model_name: another-example-model-mini
openai_compatible:
model: gpt-4o-mini
base_url: https://llm-mock-server.ca-tor.containers.appdomain.cloud
extra_headers:
model_key: env.MODEL_KEY
model_info:
exposed: true
max_input_tokens: 131072
input_cost_per_token: 0.00000015
output_cost_per_token: 0.0000006
supports_function_calling: true
supports_tool_choice: true
mode: chatSecret'lar (config.yaml)
bob:
modelGateway:
secrets:
BOB_AZURE_API_KEY: someapikeyvalue
AWS_ACCESS_KEY: someapikeyvalue
AWS_SECRET_ACCESS_KEY: someapikeyvalue
GEMINI_CREDENTIALS: <base64_vertex_credentials>
CA_CERT: <PEM encoded CA cert>
MODEL_KEY: apikeyvalueKurulum komutu
bobctl install --model-config /tmp/example/model-gateway.yamlYapılandırmayı dağıtma
İlk kurulum sırasında
Kurulum sırasında --model-config bayrağını kullanarak model gateway yapılandırma dosyanızın yolunu iletin:
bobctl install --model-config path/to/model-gateway-config.yaml --accept-licensebobctl install komutu --model-config olmadan çalıştırılırsa, Bob boş bir model gateway yapılandırmasıyla kurulur. Inference Service çalışır ancak çıkarım için herhangi bir modele bağlantısı olmaz. Kümeye bir model yapılandırması göndermek için kurulum sonrasında bobctl update-model-config komutunu kullanın.
Kimlik bilgileri kümeye nasıl dağıtılır
Model gateway yapılandırma dosyası, kimlik bilgilerine ortam değişkenleri olarak referans verir (örneğin, env.AWS_ACCESS_KEY, env.BOB_AZURE_API_KEY). Farklı model sağlayıcıları farklı gizli bilgiler gerektirir — Bedrock için AWS IAM anahtarları, Azure OpenAI için API anahtarları veya Google Gemini için servis hesabı JSON'u.
Kurulum sırasında bu kimlik bilgileri config.yaml dosyanızda bob.modelGateway.secrets altında sağlanır. bobctl CLI bu bölümü otomatik olarak işler ve kümede bob-inference-model-secrets adlı bir Kubernetes Secret'ı oluşturarak anahtarları doğrudan çıkarım ağ geçidi servisi container'ı içine ortam değişkenleri olarak bağlar.
bob:
modelGateway:
secrets:
# AWS Bedrock kimlik doğrulaması
AWS_ACCESS_KEY: "<your-aws-access-key-id>"
AWS_SECRET_ACCESS_KEY: "<your-aws-secret-access-key>"
# Azure OpenAI kimlik doğrulaması
BOB_AZURE_API_KEY: "<your-azure-api-key>"
# Google Cloud Vertex AI / Gemini kimlik doğrulaması
BOB_GEMINI_CREDENTIALS: "<your-gemini-credentials-json>"
# Özel endpoint API anahtarları / token'ları veya dahili proxy kimlik doğrulaması
# RITS_APIKEY: "<your-api-key>"
# Kendinden imzalı dahili endpoint'ler için PEM biçiminde özel CA sertifikası
# CA_CERT: |
# -----BEGIN CERTIFICATE-----
# ...
# -----END CERTIFICATE-----Kurulum sonrası yapılandırmayı güncelleme (bobctl update-model-config)
Yeniden kurulum yapmadan çalışan bir kümeye model gateway yapılandırmasını ve/veya secret'ları göndermek için bobctl update-model-config komutunu kullanın. Bu, bobctl install komutunun --model-config olmadan çalıştırıldığı durumlarda gerekli yoldur ve temel çıkarım modelini değiştirirken kullanılan komuttur.
Komut iki ayrı küme kaynağını yönetir:
| Bayrak | Küme kaynağı | Kaynak |
|---|---|---|
--model-config <file> | ConfigMap bob-inference-model-config | İlettiğiniz dosya |
--update-secrets | Secret bob-inference-model-secrets | config.yaml içindeki bob.modelGateway.secrets |
İkisinden en az biri sağlanmalıdır — hiçbirinin iletilmemesi bir hatadır.
Önkoşullar:
- Kümede oturum açmış olmalısınız (
oc login) config.yamldosyasıbobctlyanında bulunmalıdır (config-template.yamldosyasından kopyalayın)helm≥ 3.14.0 PATH ortam değişkeninizde bulunmalıdır
Yaygın kullanım:
# Yalnızca model yapılandırma dosyasını güncelleyin
bobctl update-model-config --model-config ./my-model-config.yaml
# Yalnızca secret'ları güncelleyin (anahtarlar config.yaml dosyasından gelir)
bobctl update-model-config --update-secrets
# Her ikisini aynı anda güncelleyin
bobctl update-model-config --model-config ./my-model-config.yaml --update-secrets
# Kümeye dokunmadan nelerin uygulanacağını önizleyin
bobctl update-model-config --model-config ./my-model-config.yaml --update-secrets --dry-runTüm bayraklar:
| Bayrak | Varsayılan | Açıklama |
|---|---|---|
--model-config <file> | ConfigMap içine gönderilecek model yapılandırma dosyasının yolu | |
--update-secrets | config.yaml içindeki bob.modelGateway.secrets verilerini Secret içine gönderin | |
--output-config <file> | model-gateway-config.yaml | Oluşturulan ConfigMap manifest'inin yazılacağı yer |
--output-secret <file> | model-gateway-secret.yaml | Oluşturulan Secret manifest'inin yazılacağı yer |
--cleanup | false | Oluşturulan manifest dosyalarını uyguladıktan sonra silin |
--dry-run | false | Herhangi bir oc komutunu yürütmeden nelerin çalıştırılacağını yazdırın |