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 adreshttps://ADRES/v1
Kimlik doğrulamaAuthorization: Bearer ANAHTAR
Modelluna (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

AdresAnahtarGörevi
POST /v1/chat/completionsProjeSohbet yanıtı
GET /v1/modelsProjeModel listesi
GET /healthzGerekmezServis durumu
GET /testSayfada girilirTarayıcıdan deneme sayfası
GET /panelYönetici (sayfada girilir)Tarayıcıdan kullanım paneli
GET /usageYöneticiKullanım raporu (JSON)

Parametreler

DurumParametreler
Kullanılırmessages (metin ve image_url parçaları), response_format (text, json_object, json_schema), stream, stream_options.include_usage
Kabul edilir, etkisizdirmodel, temperature, top_p, max_tokens, max_completion_tokens, stop, seed, user, presence_penalty, frequency_penalty, image_url.detail
400 dönertools, 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

DurumKodNe yapmalı
400unsupported_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
401invalid_api_keyAnahtarı kontrol edin
429queue_full, project_queue_full, queue_timeout, queue_wait_exceededRetry-After kadar bekleyip tekrar deneyin
429codex_usage_limitLimit sıfırlanana kadar bekleyin, sık denemeyin
502codex_failed, empty_response, codex_tool_blocked, invalid_json_outputBir kez yeniden deneyin
503codex_login_requiredSunucuda yeniden giriş gerekir
504codex_timeoutDaha 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.