Gateway entegrasyonu
OpenAI SDK ile geçiş, Responses API ve Chat Completions, streaming, yalnız maskeleme ve sanal anahtar.
Mevcut OpenAI entegrasyonunuzu Gateway’e taşırken yalnız iki değer değişir:
base_url→https://gw-tr.gurubase.io/v1- API anahtarı → panelden ürettiğiniz sanal anahtar
Gerisi standart OpenAI SDK’sıdır; model adı, parametreler ve yanıt biçimi aynı kalır. Maskeleme her istekte otomatik çalışır: girdi, modele iletilmeden önce maskelenir.
Drop-in geçiş
Aşağıdaki örneklerde yalnız base_url ve anahtar satırları Gateway’e özgüdür;
kodun kalanı, doğrudan sağlayıcıya giden sürümle aynıdır.
Responses API
Varsayılan yol Responses API’dir. Örnekteki ad ve TCKN, modele gitmeden maskelenir.
from openai import OpenAI
client = OpenAI(
base_url="https://gw-tr.gurubase.io/v1",
api_key="SANAL_ANAHTAR",
)
resp = client.responses.create(
model="gpt-4o-mini",
input="Ahmet Yılmaz, TCKN 10000000382, adres değişikliği istiyor.",
)
print(resp.output_text)curl https://gw-tr.gurubase.io/v1/responses \
-H "Authorization: Bearer $SANAL_ANAHTAR" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4o-mini",
"input": "Ahmet Yılmaz, TCKN 10000000382, adres değişikliği istiyor."
}'import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://gw-tr.gurubase.io/v1",
apiKey: process.env.SANAL_ANAHTAR,
});
const resp = await client.responses.create({
model: "gpt-4o-mini",
input: "Ahmet Yılmaz, TCKN 10000000382, adres değişikliği istiyor.",
});
console.log(resp.output_text);Chat Completions
Kodunuz chat.completions kullanıyorsa Responses API’ye geçmeniz gerekmez;
aynı iki değişiklik burada da yeter. Bundan sonraki Python ve TypeScript
örnekleri, yukarıda tanımlanan client ile devam eder.
resp = client.chat.completions.create(
model="gpt-4o-mini",
messages=[
{"role": "user", "content": "Ayşe Demir'in talebini özetle."},
],
)
print(resp.choices[0].message.content)curl https://gw-tr.gurubase.io/v1/chat/completions \
-H "Authorization: Bearer $SANAL_ANAHTAR" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4o-mini",
"messages": [
{ "role": "user", "content": "Ayşe Demir'\''in talebini özetle." }
]
}'const resp = await client.chat.completions.create({
model: "gpt-4o-mini",
messages: [{ role: "user", content: "Ayşe Demir'in talebini özetle." }],
});
console.log(resp.choices[0].message.content);Streaming
stream: true verdiğinizde yanıt SSE ile parça parça akar. Maskelemenin yeri
değişmez: girdi modele gitmeden maskelenir, akış maskeli metin üzerinden
üretilir.
stream = client.chat.completions.create(
model="gpt-4o-mini",
stream=True,
messages=[{"role": "user", "content": "Toplantı notlarını madde madde özetle."}],
)
for chunk in stream:
print(chunk.choices[0].delta.content or "", end="", flush=True)const stream = await client.chat.completions.create({
model: "gpt-4o-mini",
stream: true,
messages: [{ role: "user", content: "Toplantı notlarını madde madde özetle." }],
});
for await (const chunk of stream) {
process.stdout.write(chunk.choices[0]?.delta?.content ?? "");
}Yalnız maskeleme (gurubase-siper)
Metni dil modeline göndermeden, aynı uçtan yalnız maskeleme alabilirsiniz. model
alanına rezerve gurubase-siper değerini verin; Gateway metni maskeler ve
maskeli halini doğrudan döndürür.
curl https://gw-tr.gurubase.io/v1/responses \
-H "Authorization: Bearer $SANAL_ANAHTAR" \
-H "Content-Type: application/json" \
-d '{
"model": "gurubase-siper",
"input": "Vatandaş Ahmet Yılmaz, TCKN 10000000382, başvuru durumu nedir?"
}'
Maskeli metin output_text alanında döner:
Vatandaş <PERSON_1>, TCKN <TCKN_1>, başvuru durumu nedir?
İstek hiçbir dil modeline gitmez; gurubase-siper bir dil modeli değil,
Gateway’in maskeleme için ayırdığı rezerve model adıdır ve Chat Completions
ile de çalışır.
Maskeleme yapılamazsa istek 502 ile durur, ham metin de dönmez (fail-closed).
Tespit raporuna (kategori ve konum listesi) da ihtiyacınız varsa doğrudan
/mask ucunu kullanın: Yalnız maskeleme.
Sanal anahtar
Tüm istekler Authorization: Bearer başlığındaki sanal anahtarla doğrulanır.
Sanal anahtarı panelden üretirsiniz; gerçek sağlayıcı anahtarı yalnız Gateway
içinde durur, uygulamanızda tutmanız gerekmez. Bir anahtarı panelden iptal
edip yenisini üretebilirsiniz. Adımlar için Panel.
Modelleri listeleme
Erişebildiğiniz modelleri /v1/models ucundan alırsınız; listede rezerve
gurubase-siper adı da görünür.
curl https://gw-tr.gurubase.io/v1/models \
-H "Authorization: Bearer $SANAL_ANAHTAR"
Maskelemeyi Gateway olmadan, kendi akışınızın bir adımı olarak kullanmak için Yalnız maskeleme; kod yazmadan denemek için Playground.
Kendi uygulamanızı yazmak yerine hazır bir kurumsal asistan arıyorsanız Gurubase kurumun bilgi kaynaklarına (Confluence, Zendesk, Google Drive, web sitesi ve benzeri) bağlanan, yanıtlarını bu kaynaklara dayandırıp kaynak gösteren ajanlar sunar; bulut veya kurum içi (on-premise) kurulabilir.