Bosphorus

← Bilgi bankası

API'yi kendi anahtarlarınızla çağırmak: Evren ve araç sunucuları

Evren anahtarınız ve araç belirteçleriniz kullanılsın diye API'yi kendi kimliğinizle çağırın: My variables sayfasında kişisel anahtar alın, sonra çağırın.

APIMy variablesEvrenAraçlarÜrün üzerinde doğrulandığı tarih:

Evren anahtarınıza ulaşmanın üç yolu

Bir EV/ modeline giden aynı istek: aimo'dan, VS Code eklentisinden ve kendi uygulamanızdan. Değişen tek şey, sizin kim olduğunuzu nasıl kanıtladığıdır.

aimo, sohbet çalışma alanı

aimo her turu sizin adınıza imzalar; böylece ortak bağlantısı yine de kim olduğunuzu taşır.

  1. Sizaimo'da şirket hesabınızla oturum açar ve bir EV/ modeli seçersiniz.İletilen mesajınız
  2. aimoİstemciaimo kendi servis anahtarını ve sizin için imzalanmış kısa ömürlü bir belirteç ekler.İletilen servis anahtarı + imzalı belirteciniz
  3. Ağ geçidiAğ geçidi imzayı doğrular ve isteğin sizden geldiğini bilir. Kişisel limitleriniz uygulanır.İletilen kim olduğunuz
  4. KasanızEvren anahtarınız yalnızca bu çağrı için okunur.İletilen Evren anahtarınız
  5. EvrenEvren sohbette yanıt verir. Kullanım sizin adınıza kaydedilir.

Evren anahtarı yoksa: aimo nedeni bir sohbet mesajı olarak, My variables bağlantısıyla gösterir; sohbet açık kalır.

VS Code için aimo

Eklenti, oturum açtığınızda üretilen kendi kişisel anahtarını tutar.

  1. SizBir kez, cihaz koduyla oturum açarsınız.İletilen isteğiniz
  2. VS CodeİstemciEklenti, VS Code'un gizli deposunda tuttuğu kişisel anahtarınızı gönderir.İletilen kişisel anahtarınız
  3. Ağ geçidiAğ geçidi anahtarı size bağlar. Limitleriniz uygulanır.İletilen kim olduğunuz
  4. KasanızEvren anahtarınız yalnızca bu çağrı için okunur.İletilen Evren anahtarınız
  5. EvrenEvren düzenleyicide yanıt verir. Kullanım sizin adınıza kaydedilir.

Evren anahtarı yoksa: Sohbet paneli ağ geçidinin gerekçesini gösterir ve Select model düğmesini sunar.

Uygulamanız, herkesin kendi anahtarıyla

Herkes bir kez kişisel anahtar alır; uygulamanız da onu o kişinin istekleriyle gönderir.

  1. SizKişi, oturum açarak bir kez kişisel anahtar alır.İletilen kişinin isteği
  2. UygulamanızİstemciUygulamanız o kişinin anahtarını Bearer olarak gönderir.İletilen kişinin kişisel anahtarı
  3. Ağ geçidiAğ geçidi anahtarı o kişiye bağlar. Onun limitleri uygulanır.İletilen kişinin kimliği
  4. KasanızO kişinin Evren anahtarı yalnızca bu çağrı için okunur.İletilen kişinin Evren anahtarı
  5. EvrenEvren uygulamanıza yanıt verir. Kullanım o kişinin adına kaydedilir.

Evren anahtarı yoksa: Gerekçesiyle birlikte HTTP 503. Onu gösterin ve kişiyi My variables sayfasına yönlendirin.

Uygulamanız, tek bir ekip anahtarıyla

Ekip anahtarı bir kişiyi değil bir ekibi temsil eder; okunacak bir Evren anahtarı yoktur.

  1. Sizİnsanlar uygulamanızı kullanır.İletilen bir istek
  2. UygulamanızİstemciUygulamanız herkes için aynı ekip anahtarını gönderir.İletilen ekip anahtarı
  3. Ağ geçidi503Ağ geçidi anahtarın arkasında bir kişi bulamaz ve 503 döner.
  4. KasanızHiçbir kasa okunmaz.Hiç ulaşılmaz
  5. EvrenEvren hiç çağrılmaz.Hiç ulaşılmaz

Bunun yerine ne olur: Her EV/ çağrısı 503 döner: this request carries no user identity. Kendi anahtarınızı gerektirmeyen modeller ekip anahtarıyla çalışmaya devam eder.

Neler farklı
aimoVS CodeAPI, kişisel anahtarAPI, ekip anahtarı
Nasıl oturum açılırTarayıcıda şirket hesabıylaBir kez, cihaz koduylaKişi başına bir kez, cihaz koduylaHiç açılmaz
İstek ne taşıraimo'nun anahtarı + imzalı belirtecinizKişisel anahtarınızO kişinin anahtarıTek bir ekip anahtarı
Ağ geçidi kimi görürSiziSiziO kişiyiKimseyi
Kullanılan Evren anahtarıSizinkiSizinkiO kişininkiYok: 503

Her durumda Evren anahtarını bir kez, My variables sayfasına kaydedersiniz ve hiçbir istemci onu tutmaz. aimo, oturum açmış kişi adına imza atabilir, çünkü platform ona bu konuda güvenir; dışarıdaki bir uygulamaya bu yetki verilmez, bu yüzden uygulama her kişinin kendi anahtarını gönderir.

Platformdaki bazı modeller ve araç sunucuları sizin kendi anahtarlarınızla çalışır. Evren modelleri sizin Evren anahtarınızı, GitHub, Context7 ve O’Reilly de sizin kendi belirtecinizi kullanır. Bu anahtarları My variables sayfasında saklarsınız ve bir API çağrısı onları asla taşımaz: ağ geçidi bu anahtarları her çağrıda, çağrının kimliğini bildirdiği kişi için okur. Bu yüzden bir betiğin doğru yapması gereken tek şey, kim olduğunu bildirmektir.

Yukarıdaki şekil aynı Evren isteğini aimo’dan, VS Code eklentisinden ve kendi uygulamanızdan karşılaştırıyor. Bu makale API’yi kendi kimliğinizle nasıl çağıracağınızı, anahtarlarınızı nasıl kaydedeceğinizi ve Evren modelleriyle araç sunucularını bu anahtarlarla nasıl kullanacağınızı anlatıyor. Aşağıdaki komutların hepsi 30 Eylül 2026’da canlı bir kurulumda çalıştırıldı; aktarılan yanıtlar da o gün alınanlardır.

Kim ne yapar

Adım Kim Nerede
Evren modellerini kaydetmek Yönetici Konsol, /providers → Evren
Araç sunucularını kaydetmek ve değişkenlerini tanımlamak Yönetici Konsol, /mcp; ayrıntılar OpenBao anahtarları makalesinde
Kişisel API anahtarı almak Herkes kendisi My variables (/vault), bir kez; ya da bir terminal
Evren anahtarını ve araç değişkenlerini kaydetmek Herkes kendisi My variables (/vault)
Modelleri ve araçları çağırmak Herkes kendisi Herhangi bir HTTP istemcisi, SDK ya da MCP istemcisi

Bir çağrı anahtarınızı nasıl bulur

  1. Betiğiniz kişisel platform anahtarınızı, gpk_…, Bearer olarak gönderir.
  2. Ağ geçidi bu anahtardan sizi tanır. Kotanız, hız limitleriniz ve politikanız uygulanır.
  3. Evren anahtarınızı ya da araç değişkeninizi kasanızdan okur.
  4. O anahtarı yalnızca bu çağrı için Evren’e ya da araç sunucusuna gönderir.

Betiğiniz yalnızca kişisel platform anahtarını tutar. Bir ekip ya da servis anahtarı bunu yapamaz: bir kişiyi değil bir ekibi temsil eder, dolayısıyla okunacak bir kasa yoktur.

Bölüm A: herkes için, bir kez

A1. Kişisel API anahtarınızı alın

En kısa yol konsoldur. Oturum açın, My variables (/vault) sayfasını açın ve en üstteki My API key kartında Create my API key düğmesine basın.

Anahtarı bir parola gibi koruyun: onu elinde tutan herkes sizin adınıza, sizin Evren ve araç anahtarlarınızla işlem yapar. Bu bölümün sonundaki kontrol, iki yoldan alınan anahtar için de çalışır.

Bunun yerine terminalden

Hesabınız konsolu açamıyorsa ya da işi bir betikle yapmak istiyorsanız, anahtarı şirket hesabınızla cihaz kodu kullanarak oturum açıp üretin. curl ve jq gerekir. Önce kurulumunuzun oturum açmayı nasıl sağladığına bakın:

GW=https://ai.corp.example
CFG=$(curl -s $GW/api/identity/config)
echo "$CFG" | jq '{entra: (.entra != null), oidc: .oidc.provider}'

entra değeri true ise kurulum Microsoft Entra ID ile oturum açtırır:

TENANT=$(echo "$CFG" | jq -r .entra.tenantId)
CLIENT=$(echo "$CFG" | jq -r .entra.clientId)
SCOPE=$(echo "$CFG" | jq -r .entra.scope)
DA=https://login.microsoftonline.com/$TENANT/oauth2/v2.0/devicecode
TE=https://login.microsoftonline.com/$TENANT/oauth2/v2.0/token

oidc değeri generic ise kurulum Keycloak gibi kendi OpenID Connect sağlayıcısını kullanır ve uç noktaları da aynı belgede bildirir:

CLIENT=$(echo "$CFG" | jq -r .oidc.clientId)
SCOPE="openid profile email $(echo "$CFG" | jq -r .oidc.apiScope)"
DA=$(echo "$CFG" | jq -r .oidc.endpoints.deviceAuthorization)
TE=$(echo "$CFG" | jq -r .oidc.endpoints.token)

Ardından oturum açmayı başlatın:

DC=$(curl -s $DA -d client_id=$CLIENT --data-urlencode "scope=$SCOPE")
echo "$DC" | jq -r '.message // .verification_uri_complete'

Yazdırılan adresi açın, bir kod gösteriliyorsa girin ve oturum açın. Sonra aynı terminalde belirteci alın ve onu kişisel anahtarınızla takas edin:

TOKEN=$(curl -s $TE -d grant_type=urn:ietf:params:oauth:grant-type:device_code \
  -d client_id=$CLIENT -d device_code=$(echo "$DC" | jq -r .device_code) | jq -r .access_token)
curl -s -X POST "$GW/api/identity/token?client=api" -H "Authorization: Bearer $TOKEN" | jq -r .key.key

Platformun sizi kim olarak gördüğünü kontrol edin:

curl -s $GW/api/identity/me -H "Authorization: Bearer $BOSPHORUS_KEY" | jq .user.email

Komut adresinizi yazdırır. Bir ekip anahtarıyla null yazdırır; yanıttaki note alanında da no user identity presented yazar.

A2. Anahtarlarınızı My variables sayfasına kaydedin

Konsolda oturum açın ve My variables (/vault) sayfasını açın.

Evren anahtarı kişisel anahtarınızla bir betikten de yönetilebilir. PUT kaydeder, GET durumu kotanız ve bakiyenizle birlikte gösterir, DELETE siler (yalnızca birini silmek için ?kind=llm ya da ?kind=platform ekleyin):

jq -n --arg k "$EVREN_LLM_KEY" '{api_key: $k}' |
  curl -s -X PUT $GW/api/identity/evren-key \
    -H "Authorization: Bearer $BOSPHORUS_KEY" -H 'Content-Type: application/json' -d @- | jq
curl -s $GW/api/identity/evren-key -H "Authorization: Bearer $BOSPHORUS_KEY" | jq 'keys'

GET yanıtı dört bölümden oluşur: llm, platform, quota ve balance.

Bölüm B: API’yi çağırmak

B1. Evren modelleri

Evren modelleri EV/ önekini taşır. Her çağrı sizin Evren anahtarınızı ve Evren hesabınızın kredilerini kullanır:

curl -s $GW/v1/models -H "Authorization: Bearer $BOSPHORUS_KEY" | jq -r '.data[].id' | grep '^EV/'

curl -s $GW/v1/chat/completions -H "Authorization: Bearer $BOSPHORUS_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"model":"EV/deepseek-v4-flash","messages":[{"role":"user","content":"Merhaba"}]}' \
  | jq -r '.choices[0].message.content'

curl -s $GW/v1/embeddings -H "Authorization: Bearer $BOSPHORUS_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"model":"EV/qwen3-embedding-8b","input":"Merhaba dünya"}' | jq '.data[0].embedding | length'

Bu makalenin yazıldığı gün sohbet Merhaba! Size nasıl yardımcı olabilirim? diye yanıt verdi, gömme vektörü de 4096 boyutluydu. Her yanıtın usage alanında ayrıca bir evren bloğu bulunur: Evren’in ayırdığı ve kalan krediler ile isteğin yönlendirildiği model.

Aynı çağrılar her OpenAI SDK’sından da yapılabilir; yalnızca adres ve anahtar değişir:

import os
from openai import OpenAI

client = OpenAI(base_url="https://ai.corp.example/v1", api_key=os.environ["BOSPHORUS_KEY"])
reply = client.chat.completions.create(
    model="EV/deepseek-v4-flash",
    messages=[{"role": "user", "content": "Merhaba"}],
)
print(reply.choices[0].message.content)

Makalenin yazıldığı gün kullanılabilen Evren modelleri:

Model Ne sunar
EV/auto Sohbet; modeli Evren seçer
EV/deepseek-v4-flash, EV/deepseek-v4.1-flash, EV/gemma-4-31b, EV/glm-5.3, EV/mimo-v2.6-pro, EV/qwen3.8-flash-next Sohbet
EV/qwen3-vl-30b Görselli sohbet
EV/qwen3-embedding-8b Gömme vektörü

Güncel listeyi her zaman /v1/models size gösterir.

B2. Düz HTTP ile bir araç sunucusu

Bir araç çağrısı tek bir POST isteğidir: aracın argümanları JSON gövdesidir; istek sunucuya giderken ağ geçidi değerinizi kasanızdan ekler. Aşağıdaki istek O’Reilly’de sizin kendi belirtecinizle arama yapar:

curl -s -X POST $GW/api/mcp/oreilly/tools/search_oreilly_content \
  -H "Authorization: Bearer $BOSPHORUS_KEY" -H 'Content-Type: application/json' \
  -d '{"query":"kubernetes networking"}' | jq '{isError, result: (.result | .[0:200])}'

Yanıt {"result": "…", "isError": false} biçimindedir. Bir sunucunun araçlarını ve argümanlarını görmek için aynı anahtarla tanımını okuyun:

curl -s $GW/api/mcp/oreilly/openapi.json -H "Authorization: Bearer $BOSPHORUS_KEY" | jq '.paths | keys'

O’Reilly için tek bir yol listelenir: /tools/search_oreilly_content.

B3. Bir MCP istemcisinden araç sunucusu

Claude Code gibi MCP istemcileri aktarıcının adresini ve aynı anahtarı kullanır. Dosyaya hiçbir araç belirteci yazılmaz:

"oreilly": {
  "type": "http",
  "url": "https://ai.corp.example/api/mcp/oreilly",
  "headers": {
    "Authorization": "Bearer ${BOSPHORUS_KEY}"
  }
}

VS Code için aimo eklentisinde yapılandıracak bir şey yoktur: oturum açtığınızda aynı sunuculara aynı yoldan ulaşır.

Hangi kimlik bilgisini göndermelisiniz

Gönderdiğiniz Ne olur
Kişisel platform anahtarınız, gpk_… Bunu kullanın. Ağ geçidi sizin olduğunuzu bilir ve kasanızı okur.
Oturum açma belirteciniz Zaten bir kişisel anahtarınız varsa yaklaşık bir saat çalışır. Hızlı bir deneme için uygundur.
Bir ekip ya da servis anahtarı EV/ modelleri 503 döner, çünkü anahtarı okunacak bir kişi yoktur; kişi gerektiren araç sunucuları da 401 döner.
Evren anahtarınızın ya da bir araç belirtecinin kendisi 401 invalid api key. Bu anahtarların yeri istekler değil, My variables sayfasıdır.

Platformun anahtarlarınız için verdiği sözler

Bir şey yolunda gitmediğinde

Gördüğünüz Yapmanız gereken
503 “EV/…” is served with YOUR OWN Evren key and you have not registered one Evren LLM anahtarınızı My variables sayfasına kaydedin (A2).
503 … this request carries no user identity to look one up for Bir ekip ya da servis anahtarı gönderdiniz. Kişisel anahtarınızı kullanın (A1).
401 this mcp server requires a user identity (per-user key or signed user context) Aynı durum, bir araç sunucusu için.
"isError": true içeren bir araç yanıtı: This tool needs your own OREILLY_MCP_TOKEN … O değer kasanızda yok. İleti, My variables sayfasındaki doğru yere bağlantı verir.
… could not be read from the vault just now, so the tool was not called Kasaya kısa süreliğine ulaşılamıyor. Bir dakika sonra yeniden deneyin; sürerse yöneticinize haber verin.
401 invalid api key Anahtar iptal edilmiş ya da yanlış yazılmış. ?client=api&rotate=true ile yeniden alın.
EV/glm-5.3 modelinden 400 Bu model min_p ve logit_bias örnekleme ayarlarını kabul etmez. Onları göndermeyin.