Bağlantı bilgileri
- Base URL
https://ai.mertcankarakulak.com/v1- Kimlik doğrulama
Authorization: Bearer YOUR_API_KEY- Model listesi
GET /v1/models- Metin isteği
POST /v1/chat/completions
Müşteri API anahtarınızı oluşturun ve public model aliasını seçin. Örneklerdeki YOUR_PUBLIC_MODEL_ALIAS değerini bununla değiştirin. Anahtarı yalnızca sunucu ortamınızda saklayın.
Python
from openai import OpenAI
import os
client = OpenAI(
api_key=os.environ["MERT_AI_API_KEY"],
base_url="https://ai.mertcankarakulak.com/v1",
)
response = client.chat.completions.create(
model="YOUR_PUBLIC_MODEL_ALIAS",
messages=[{"role": "user", "content": "Merhaba!"}],
max_tokens=512,
)
print(response.choices[0].message.content)
JavaScript
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.MERT_AI_API_KEY,
baseURL: "https://ai.mertcankarakulak.com/v1"
});
const result = await client.chat.completions.create({
model: "YOUR_PUBLIC_MODEL_ALIAS",
messages: [{ role: "user", content: "Merhaba!" }],
max_tokens: 512
});
console.log(result.choices[0].message.content);
Responses ve akış
response = client.responses.create(
model="YOUR_PUBLIC_MODEL_ALIAS",
input="Bir merhaba mesajı yaz.",
max_output_tokens=512,
store=False,
)
print(response.output_text)
POST /v1/chat/completions ve POST /v1/responses metin isteklerini destekler. Sertifikalı rotalarda stream: true artımlı SSE ile yanıt verir. Birincil rota bu yeteneğe sahip değilse uygun yedek rota seçilir; hiçbiri uygun değilse istek rezervasyondan önce 503 döner.
Azami ücret akıştan önce ayrılır; güvenilir son kullanım geldiğinde gerçek kullanıma göre hesaplaşılır. Bağlantı kopar ve kullanım kesinleşmezse ayrılan azami tutar ücretlendirilir. Başarı olayı gelmeyen isteği otomatik tekrarlamadan önce kullanım kaydını kontrol edin.
Function araçları
Chat Completions ve Responses, function tanımlı tools ile tool_choice için auto, none, required veya adlandırılmış function seçimi kabul eder. JSON ve desteklenen rotalarda artımlı SSE kullanılabilir. Chat yanıtındaki tool_calls ile eşleşen role: tool sonucunu; Responses yanıtındaki function_call ile eşleşen function_call_output öğesini sonraki isteğin geçmişine ekleyin. Tool şeması ve geçmişi giriş rezervasyonuna dahildir.
result = client.chat.completions.create(
model="YOUR_PUBLIC_MODEL_ALIAS",
messages=[{"role": "user", "content": "Hava nasıl?"}],
tools=[{"type": "function", "function": {
"name": "weather", "parameters": {
"type": "object", "properties": {}
}
}}],
tool_choice="required",
max_tokens=512,
)
call = result.choices[0].message.tool_calls[0]
OpenCode yapılandırması
Projenizin opencode.json dosyasına özel provider ekleyin. OpenCode 1.15.12 istemci sözleşmesi yerel test sağlayıcısıyla doğrulanmıştır; gerçek model ajan davranışı ayrıca doğrulanmalıdır. Güncel kurulum tarifi ve indirilebilir dosya.
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"mertai": {
"npm": "@ai-sdk/openai-compatible",
"name": "Mert AI",
"options": {
"baseURL": "https://ai.mertcankarakulak.com/v1",
"apiKey": "{env:MERT_AI_API_KEY}"
},
"models": {
"YOUR_PUBLIC_MODEL_ALIAS": {"name": "Seçtiğiniz public model"}
}
}
},
"model": "mertai/YOUR_PUBLIC_MODEL_ALIAS"
}
Continue yapılandırması
config.yaml içinde OpenAI provider ve canonical apiBase kullanın. Agent araçlarını yalnız seçtiğiniz public model rotasında ayrıca doğruladığınızda etkinleştirin.
name: Mert AI
version: 1.0.0
schema: v1
models:
- name: Seçtiğiniz public model
provider: openai
model: YOUR_PUBLIC_MODEL_ALIAS
apiBase: https://ai.mertcankarakulak.com/v1
apiKey: ${{ secrets.MERT_AI_API_KEY }}
roles:
- chat
- edit
- apply
Continue secret ayarına MERT_AI_API_KEY adıyla müşteri anahtarınızı ekleyin.
Open WebUI bağlantısı
Settings → Admin → Connections yolundan OpenAI API bağlantısı ekleyin. URL alanına https://ai.mertcankarakulak.com/v1, API Key alanına müşteri anahtarını girin. API Type için Chat Completions seçin; model listesi GET /v1/models üzerinden alınır.
ENABLE_OPENAI_API=true
OPENAI_API_BASE_URL=https://ai.mertcankarakulak.com/v1
OPENAI_API_KEY=YOUR_API_KEY
Birden fazla bağlantıda Open WebUI'nin çoğul OPENAI_API_BASE_URLS ve OPENAI_API_KEYS ayarlarını kullanın. Yönetici veya sağlayıcı anahtarı yerine müşteri anahtarı girin.
Cursor ve benzeri editörler
Özel OpenAI uyumlu adres kabul eden editörlerde müşteri anahtarını OpenAI anahtarı alanına girin, Override OpenAI Base URL seçeneğini açın ve https://ai.mertcankarakulak.com/v1 adresini kullanın. Model adını public alias olarak yazın.
Bu yol Chat ve Agent istekleri içindir; Tab otomatik tamamlama özel API adresine yönlendirilmez. Base URL override diğer OpenAI uyumlu istekleri de etkileyebilir.
İstemci uyumluluk durumu
| İstemci | Bağlantı yolu | Doğrulama düzeyi |
|---|---|---|
| Python OpenAI SDK | Chat ve Responses | JSON, SSE ve function çağrıları yerel entegrasyon testinden geçti. |
| JavaScript OpenAI SDK | Chat ve Responses | JSON, SSE ve function çağrıları yerel entegrasyon testinden geçti. |
| OpenCode 1.15.12 | @ai-sdk/openai-compatible | CLI streaming ve araç çağrısı yerel test sağlayıcısıyla doğrulandı. |
| Codex CLI | OpenAI Responses provider | Yapılandırma hazır; gerçek istemci turu bekliyor. Kurulum |
| Claude Code | Anthropic Messages gerektirir | /v1/messages yok; bağlantı doğrulanmadı. Durum |
| Continue | OpenAI provider / Chat | Örnek hazır; gerçek istemci turu bekliyor. |
| Open WebUI | OpenAI connection / Chat | Örnek hazır; gerçek istemci turu bekliyor. |
| Cursor benzeri | OpenAI base URL override | Örnek hazır; gerçek istemci turu bekliyor. |
Gerçek sağlayıcı rotası etkin olmadığı için hiçbir istemci için canlı AI yanıtı sertifikası verilmemiştir.
Limitler ve ücretler
İstek öncesinde azami maliyet ayrılır. Yeterli kredi yoksa istek işlenmez. Kullanım doğrulanınca gerçek ücret kaydedilir ve kullanılmayan rezervasyon serbest bırakılır. Sonucu belirsiz işlemler azami tutarla kaydedilir ve inceleme gerektirir.
Bu sürüm metin, function çağrıları, tek yanıt (n=1) ve açık çıktı sınırları destekler. Görüntü/ses, örnekleme parametreleri, saklanan konuşmalar ve belgelenmemiş alanlar reddedilir. Varsayılan çıktı sınırı 1024; model veya hesap limiti daha düşük olabilir.
| Kod | Anlamı | Yapılacak işlem |
|---|---|---|
| 400 | Geçersiz istek veya token limiti | Parametreleri ve çıktı sınırını kontrol edin. |
| 401 | Geçersiz veya iptal edilmiş anahtar | Anahtarı kontrol edin. |
| 402 | Yetersiz kredi | Kredi veya çıktı sınırını kontrol edin. |
| 429 | Hız veya eşzamanlılık limiti | İstek sıklığını azaltın. |
| 503 | Hizmet kullanılamıyor | İstek kimliğini saklayın; belirsiz isteği otomatik tekrarlamayın. |
Destek talebine X-Request-ID yanıt başlığını ekleyin. API anahtarınızı paylaşmayın.