İçeriğe geç
Gurubase Siper
Türkçe
Esc
navigateopen⌘Jpreview
Bu sayfada

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_urlhttps://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.

Bu sayfa yardımcı oldu mu?