API Dokümantasyonu
OpenAI uyumlu kişisel sohbet geçidi. OpenAI SDK kullanan bir proje, yalnızca adres ve anahtarı değiştirerek bağlanır. Tarayıcıdan denemek için deneme sayfasını, kullanımı görmek için kullanım panelini açın.
Projeye bağla
Anahtarı yapıştırın, sonra kopyaladığınız metni projeniz üzerinde çalışan yapay zekâ aracına verin.
Anahtar yalnızca bu sekmede kalır: sunucuya gönderilmez ve tarayıcıda saklanmaz. Kopyaladığınız metin anahtarı içerdiği için herkese açık bir yere yapıştırmayın.
Bağlantı bilgileri
| Temel adres | https://ADRES/v1 |
|---|---|
| Kimlik doğrulama | Authorization: Bearer ANAHTAR |
| Model | luna (istekteki model adı yok sayılır) |
Örnekler
Python
from openai import OpenAI
import os
client = OpenAI(base_url="{{BASE}}", api_key=os.environ["GATEWAY_API_KEY"])
yanit = client.chat.completions.create(
model="luna",
messages=[
{"role": "system", "content": "Kısa yanıt ver."},
{"role": "user", "content": "Merhaba"},
],
)
print(yanit.choices[0].message.content)JavaScript
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "{{BASE}}",
apiKey: process.env.GATEWAY_API_KEY,
});
const yanit = await client.chat.completions.create({
model: "luna",
messages: [{ role: "user", content: "Merhaba" }],
});
console.log(yanit.choices[0].message.content);curl
curl {{BASE}}/chat/completions \
-H "Authorization: Bearer $GATEWAY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"luna","messages":[{"role":"user","content":"Merhaba"}]}'Görsel tanıma (Python)
import base64
with open("gorsel.jpg", "rb") as f:
veri = base64.b64encode(f.read()).decode()
yanit = client.chat.completions.create(
model="luna",
messages=[{
"role": "user",
"content": [
{"type": "text", "text": "Bu görselde ne yazıyor?"},
{"type": "image_url", "image_url": {"url": "data:image/jpeg;base64," + veri}},
],
}],
)JSON çıktı, şemalı (Python)
yanit = client.chat.completions.create(
model="luna",
messages=[{"role": "user", "content": "Kısa bir gönderi başlığı ve 3 madde yaz."}],
response_format={
"type": "json_schema",
"json_schema": {
"name": "gonderi",
"strict": True,
"schema": {
"type": "object",
"properties": {
"baslik": {"type": "string"},
"maddeler": {"type": "array", "items": {"type": "string"}},
},
"required": ["baslik", "maddeler"],
"additionalProperties": False,
},
},
},
)Adresler
| Adres | Anahtar | Görevi |
|---|---|---|
POST /v1/chat/completions | Proje | Sohbet yanıtı |
GET /v1/models | Proje | Model listesi |
GET /healthz | Gerekmez | Servis durumu |
GET /test | Sayfada girilir | Tarayıcıdan deneme sayfası |
GET /panel | Yönetici (sayfada girilir) | Tarayıcıdan kullanım paneli |
GET /usage | Yönetici | Kullanım raporu (JSON) |
Parametreler
| Durum | Parametreler |
|---|---|
| Kullanılır | messages (metin ve image_url parçaları), response_format (text, json_object, json_schema), stream, stream_options.include_usage |
| Kabul edilir, etkisizdir | model, temperature, top_p, max_tokens, max_completion_tokens, stop, seed, user, presence_penalty, frequency_penalty, image_url.detail |
| 400 döner | tools, functions (araç çağırma), ses ve dosya içeriği, görsel/ses üretimi (modalities), n değerinin 1'den büyük olması, bilinmeyen parametreler |
Mesaj rolleri: system, developer, user, assistant. stream=true çalışır, ama yanıt hazır olunca tek parça gelir. Yanıttaki usage gerçek token sayılarıdır (önbellekten dönen yanıtta 0). Servis geçmiş tutmaz: her istekte sohbetin tamamını gönderin.
Görsel girdi
Yalnızca user mesajlarında, istek başına en fazla 4 görsel. PNG, JPEG, WEBP ve GIF; görsel başına en fazla 8 MB. data:image/...;base64, adresi ya da herkese açık bir https:// adresi verilebilir (özel/yerel ağ adresleri ve yönlendirme zincirleri reddedilir). Sunucunun istek gövdesi sınırı 2 MB olduğu için büyük görselleri https adresiyle verin. Görseller kaydedilmez ve loglanmaz; iş bitince silinir.
JSON çıktı
json_schema modunda model şemaya uymak zorundadır (OpenAI "strict" kuralları): her nesnede additionalProperties: false, bütün alanlar required; isteğe bağlı alan için tür ["string", "null"] yazılır. Kurala uymayan şema hak harcamadan 400 invalid_json_schema alır. json_object modunda geçerli bir JSON nesnesi döner; alanları sistem talimatıyla tarif edin.
Hatalar
| Durum | Kod | Ne yapmalı |
|---|---|---|
| 400 | unsupported_parameter, unsupported_content, context_length_exceeded, invalid_json_schema, invalid_image, unsupported_image_type, image_too_large, too_many_images, image_url_blocked, image_fetch_failed | İsteği düzeltin, tekrar etmeyin |
| 401 | invalid_api_key | Anahtarı kontrol edin |
| 429 | queue_full, project_queue_full, queue_timeout, queue_wait_exceeded | Retry-After kadar bekleyip tekrar deneyin |
| 429 | codex_usage_limit | Limit sıfırlanana kadar bekleyin, sık denemeyin |
| 502 | codex_failed, empty_response, codex_tool_blocked, invalid_json_output | Bir kez yeniden deneyin |
| 503 | codex_login_required | Sunucuda yeniden giriş gerekir |
| 504 | codex_timeout | Daha kısa istekle yeniden deneyin |
Sınırlar ve gizlilik
Projelerde günlük istek sınırı yoktur; Codex hakkı bitince istekler codex_usage_limit ile reddedilir. Proje başına aynı anda 1 istek çalışır, diğerleri sıraya girer. Bir istek 3 dakikaya kadar sürebilir, istemci zaman aşımını buna göre ayarlayın. İstemci bağlantıyı keserse iş iptal edilir.
Gönderilen metinler OpenAI'a iletilir. Bu servis yalnızca kişisel kullanım içindir; müşteri veya ziyaretçi trafiğini bağlamayın.