Uygulamaları bağlama
#OpenAI
Tanık, OpenAI API'sinin üç ucunu aynı yolla sunar: /v1/chat/completions, /v1/responses ve /v1/embeddings. Uygulamanızda base_url ve api_key değişir; başka bir şey değişmez.
#Python
from openai import OpenAI
import os
client = OpenAI(
base_url="https://tanik.kurum.com.tr/v1", # sağlayıcı adresi yerine
api_key=os.environ["TANIK_API_KEY"], # sağlayıcı anahtarı yerine
)
client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "Bu talebi özetle: ..."}],
)
#Node.js
import OpenAI from 'openai';
const client = new OpenAI({
baseURL: 'https://tanik.kurum.com.tr/v1',
apiKey: process.env.TANIK_API_KEY,
});
#Akışlı istekler
stream: true olduğu gibi çalışır; Tanık parçaları geldiği gibi iletir, tamponlamaz. Token kullanımının kayda ve bütçeye girmesi için akışlı isteklerde kullanım bildirimini isteyin:
client.chat.completions.create(
model="gpt-4o",
messages=[...],
stream=True,
stream_options={"include_usage": True},
)
Bu seçenek olmadan OpenAI token sayısını bildirmez; Tanık tahmin etmez ve o istekler bütçeye sayılmaz. Ayrıntı: Akışlı istekler.
#Embeddings
/v1/embeddings isteklerinde girdi metni taranır ve bulunan kişisel veri kayda geçer, ancak maskelenmez: maskelenmiş bir metnin vektörü başka bir şeyin vektörü olurdu. Rapor bunu embeddings_not_masked çekincesiyle belirtir. Embedding trafiğinde kişisel veri istemiyorsanız politikada block seçeneğini kullanın.
#Hedef tanımı
create-target --name openai-eu --api-style openai \
--base-url https://api.openai.com/v1 --region eu \
--auth-kind bearer --secret-ref openai --models 'gpt-*,o*'
Konsolun Sağlayıcılar ekranında: API biçimi "OpenAI", kimlik türü "bearer", adres /v1 ile biter.
#Hatalar
Tanık'ın kendi redleri OpenAI'nin hata biçiminde döner; error.code alanında Tanık'ın kodu bulunur (policy_blocked, request_held, insufficient_quota…). Liste: Hata kodları.