VANGU / GELİŞTİRİCİ
Uç Noktalar ve Parametre Referansı
REST mimarisi üzerine kurulu OpenAI, Anthropic, Codex ve Resim üretim uç noktalarının girdi, çıktı, SSE streaming ve durum kodları belgeleri.
1. OpenAI Tipi Chat Completions
OpenAI Chat Completions şemasıyla metin, JSON ve streaming yanıtları sunar. Desteklenen alanlar için OpenAI Python/Node SDK kullanılabilir; bütün OpenAI sunucu araçları ve durum saklama özellikleri bu hizmette sunulmaz.
İstek Başlıkları (Headers)
| Başlık | Değer | Zorunlu | Açıklama |
|---|---|---|---|
| Authorization | Bearer <API_KEY> | Evet | Vangu geliştirici anahtarınız (`vgu_live_...`) |
| Content-Type | application/json | Evet | JSON veri gövdesi |
Gövde Parametreleri (Body Parameters)
| Parametre | Tip | Zorunlu | Açıklama |
|---|---|---|---|
| model | string | Evet | Anahtarınızın GET /v1/models yanıtındaki kimliklerden biri; örneğin `gpt-6.1-sol`, `gpt-6-sol`, `gpt-6-luna`, `gpt-5.6-terra`. Astra erişimi pakete bağlıdır. |
| messages | array | Evet | Rol (`system`, `user`, `assistant`) ve içerik (`content`) nesneleri dizisi |
| temperature | number | Hayır (0.7) | Örnekleme rastlantısallığı (0.0 kesin - 2.0 yaratıcı arası) |
| max_tokens | integer | Hayır | Üretilecek maksimum token üst tavanı |
| stream | boolean | Hayır (false) | Server-Sent Events (SSE) ile anlık token akışı |
| response_format | object | Hayır | `{"type": "json_object"}` ile yapılandırılmış JSON çıktısı zorunluluğu |
| tools | array | Hayır | Modelin çağırabileceği fonksiyon şemaları (Function calling) |
Örnek İstek ve Yanıt
curl https://api.vangu.dev/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer vgu_live_sample_token_67b8a901" \
-d '{
"model": "gpt-5.6-terra",
"messages": [
{"role": "system", "content": "Sen Vangu altyapı asistanısın."},
{"role": "user", "content": "Paket kotam ne zaman yenilenir?"}
],
"temperature": 0.5
}'
{
"id": "chatcmpl_98a76f21bc",
"object": "chat.completion",
"created": 1788796800,
"model": "gpt-5.6-terra",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Günlük paketinizin istek kotası her gece saat tam 00.00'da sıfırlanarak yenilenir."
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 19,
"completion_tokens": 22,
"total_tokens": 41
}
}
SSE Canlı Akış (Streaming) Formatı
<code>"stream": true</code> parametresi ile istek atıldığında sunucu yanıtı aşağıdaki SSE parçacıkları halinde anlık iletir:
data: {"id":"chatcmpl_98a76","choices":[{"delta":{"role":"assistant","content":"Günlük"}}]}
data: {"id":"chatcmpl_98a76","choices":[{"delta":{"content":" paketinizin"}}]}
data: {"id":"chatcmpl_98a76","choices":[{"delta":{"content":" kotası..."}}]}
data: [DONE]
2. Anthropic Tipi Messages API (Claude Code Uyumlu)
Anthropic SDK ve resmi Claude Code CLI aracıyla tam uyumlu Messages formatı. Sistem komutları üst düzey <code>system</code> parametresinde, konuşma geçmişi ise <code>messages</code> dizisinde iletilir.
Bu uç nokta Anthropic protokolünü Vangu’nun GPT modellerine çevirir. Model alanında paketinizdeki Vangu modelini kullanın; Claude model lisansı sağlamaz. Claude Code’un Read, Edit, Write, Bash ve MCP araçları yerel istemcide çalışır; tool_use ve tool_result blokları sonraki turda korunur.
Token sayımı ve araç döngüsü
<code>POST /anthropic/v1/messages/count_tokens</code> ücret kesmeden sağlayıcıya uygun token tahmini verir. Görsel/PDF tahminleri yaklaşık; gerçek kullanım yanıtın usage alanından ücretlendirilir. <code>GET /anthropic/v1/models</code> anahtarınızın erişebildiği modelleri listeler.
Akış message_start, content_block_start/delta/stop, message_delta ve message_stop olaylarını kullanır. tool_choice auto, any, tool ve none desteklenir. Araç sonucu, önceki tool_use bloğunun id değeriyle gönderilir. Paralel araçlar bağımsız kimliklerini korur; her tur normal kota/bakiye kurallarını kullanır.
Görsel ve belge girdileri, JSON şemalı çıktı, max_tokens ve stop_sequences desteklenir. thinking/effort sağlayıcının akıl yürütme ayarına çevrilir; Anthropic’e ait imzalı thinking blokları üretilmez. Anthropic sunucu araçları ve yönetilen cache oluşturma gibi yalnız Anthropic altyapısına ait özellikler bu köprüde sunulmaz; istemci araçlarında input_schema kullanın.
Anthropic İstek Başlıkları (Headers)
| Başlık | Değer | Zorunlu | Açıklama |
|---|---|---|---|
| x-api-key | <API_KEY> | Evet | Vangu geliştirici tokeni (`vgu_live_...`) |
| anthropic-version | 2023-06-01 | Evet | Anthropic protokol sürümü |
| Content-Type | application/json | Evet | JSON veri gövdesi |
Gövde Parametreleri
| Parametre | Tip | Zorunlu | Açıklama |
|---|---|---|---|
| model | string | Evet | Model kimliği: `gpt-5.6-sol` (gelişmiş kodlama) veya `gpt-6-astra` (amiral gemisi) |
| messages | array | Evet | Kullanıcı ve asistan mesaj geçmişi dizisi |
| max_tokens | integer | Evet | Üretilecek maksimum token tavanı (Anthropic protokolünde zorunludur) |
| system | string | Hayır | Sistem davranış talimatı ve rol tanımı |
| temperature | number | Hayır | Örnekleme çeşitliliği (0.0 - 1.0) |
| stream | boolean | Hayır (false) | Anthropic SSE olay akışı |
curl https://api.vangu.dev/anthropic/v1/messages \
-H "Content-Type: application/json" \
-H "x-api-key: vgu_live_sample_token_67b8a901" \
-H "anthropic-version: 2023-06-01" \
-d '{
"model": "gpt-5.6-sol",
"max_tokens": 1024,
"system": "Sen kıdemli bir TypeScript yazılım mimarısın.",
"messages": [
{"role": "user", "content": "Event loop ve Worker thread farkını özetle."}
]
}'
{
"id": "msg_01XyZ987654321",
"type": "message",
"role": "assistant",
"model": "gpt-5.6-sol",
"content": [
{
"type": "text",
"text": "Event Loop tek iş parçacığı üzerinde I/O operasyonlarını asenkron yönetirken, Worker Thread\'ler CPU yoğun hesaplamaları ayrı işletim sistemi iş parçacıklarına dağıtır."
}
],
"stop_reason": "end_turn",
"usage": {
"input_tokens": 28,
"output_tokens": 36
}
}
Codex CLI / Responses API
Codex CLI için base_url: https://api.vangu.dev/v1, wire_api: responses. İstek gövdesinde model ve input alanlarını kullanın; API anahtarında OpenAI kapsamını etkinleştirin.
Araç desteği ve sınırlar
Protokol uyumluluğu OpenAI’nin barındırdığı bütün araçların aynı hesap altyapısında mevcut olduğu anlamına gelmez. Aşağıdaki sınırlar Vangu hesap havuzu içindir.
| Özellik | Durum | Kullanım |
|---|---|---|
| function / custom | İstemci araçları desteklenir | Model çağrı üretir; kodu sizin uygulamanız çalıştırır ve sonucu sonraki turda yollar. |
| web_search | Responses üzerinden desteklenir | Paketinizdeki metin modeli ile kullanın; tool_search ayrı bir özelliktir. |
| tool_search / namespace | Responses üzerinden desteklenir | Ertelenmiş istemci araçlarını keşfeder; bir komutu sunucuda çalıştırmaz. |
| code_interpreter / hosted shell / mcp / computer | Havuz sağlayıcısında desteklenmiyor | Paket veya kota artırmak bu araçları açmaz. Shell, Python veya MCP istemcinizde function/custom araçlarıyla uygulanabilir. |
| file_search / vector stores | Yönetilen hizmet sunulmuyor | Görsel dosyası yükleme desteği, vector store veya dosya arama desteği değildir. |
| Responses image_generation | Genel metin modellerinde garanti edilmiyor | Üretim/düzenleme için /v1/images/generations ve /v1/images/edits kullanın; desteklenmeyen çağrıda model sessizce değiştirilmez. |
| previous_response_id / store:true / background:true | Desteklenmiyor | store:false kullanın ve her turda tam geçmişi gönderin. |
Chat Completions zorunlu function seçimi: tool_choice: {type: function, function: {name: arac_adi}}. Responses seçimi: tool_choice: {type: function, name: arac_adi}. Araç sonucu için önceki response.output öğelerini aynen input geçmişine ekleyin; ardından function_call_output ile aynı call_id değerini gönderin. previous_response_id kullanmayın. Akıl yürütme modellerinde çok küçük max_tokens sınırı cevap metni başlamadan length bitişine neden olabilir.
# Second turn after your application executes the function:
response = client.responses.create(
model="gpt-5.6-terra",
store=False,
input=[
*first_input,
*first_response.output,
{"type": "function_call_output", "call_id": call.call_id,
"output": '{"accepted": true}'}
],
tools=tools
)
curl https://api.vangu.dev/v1/responses \
-H "Authorization: Bearer YOUR_VANGU_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"gpt-5.6-sol","input":"Explain this function.","stream":true}'
3. Eski Tip Kod Tamamlama API (Legacy)
Bu uç nokta prompt tabanlı eski tamamlama istemcileri içindir. Codex CLI ve Responses istemcilerinde base_url olarak https://api.vangu.dev/v1, istek yolu olarak /v1/responses kullanın. /codex/v1/responses desteklenmez.
| Parametre | Tip | Zorunlu | Açıklama |
|---|---|---|---|
| model | string | Evet | Kod modeli kimliği: `gpt-5.6-sol` veya `gpt-5.6-terra` |
| prompt | string | Evet | Tamamlanacak kod öneki veya başlangıç fonksiyonu |
| suffix | string | Hayır | FIM tamamlamalarında imleçten sonraki kod parçası |
| max_tokens | integer | Hayır (256) | Üretilecek maksimum kod token sayısı |
| stop | array | Hayır | Tamamlamayı durduracak karakter dizileri (örn. \`["\\n}"]\`) |
curl https://api.vangu.dev/codex/v1/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer vgu_live_sample_token_67b8a901" \
-d '{
"model": "gpt-5.6-sol",
"prompt": "function verifyHmacSignature(secret: string, payload: string, signature: string): boolean {\n",
"max_tokens": 128,
"temperature": 0.1,
"stop": ["\n}"]
}'
{
"id": "cmpl_78a1b2c3d4",
"object": "text_completion",
"created": 1788796800,
"model": "gpt-5.6-sol",
"choices": [
{
"text": " const expected = crypto.createHmac(\'sha256\', secret).update(payload).digest(\'hex\');\n return crypto.timingSafeEqual(Buffer.from(signature), Buffer.from(expected));",
"index": 0,
"finish_reason": "stop"
}
]
}
4. Görsel Üretim & Düzenleme API (gpt-image-2 & 2.5)
Görsel üretimi ve düzenleme için OpenAI benzeri Images şeması kullanılır; native OpenAI hizmetinin tüm alanları desteklenmez. Paket çağrıları görsel kotasına, bakiye çağrıları geçerli görsel tarifesine tabidir. Variations, Vangu uyumluluk uzantısıdır.
gpt-image-2.5 Modları (Flare & Sunburst)
Flare hızlı üretimler, Sunburst ayrıntılı üretim ve düzenlemeler içindir. Kimlikleri doğrudan veya gpt-image-2.5 için mode: flare/sunburst ile seçebilirsiniz. Süre; model, kalite, boyut ve sağlayıcı yüküne göre değişir; sabit saniye garantisi yoktur.
| Parametre | Tip | Zorunlu | Açıklama |
|---|---|---|---|
| model | string | Evet | `gpt-image-2` (hızlı/standart), `gpt-image-2.5` (ultra), `gpt-image-2.5-flare`, `gpt-image-2.5-sunburst` |
| prompt | string | Evet* | Üretilmek veya düzenlenmek istenen görselin detaylı açıklaması (*variations hariç zorunlu) |
| image | file / string | Koşullu | Kaynak görsel dosyası (`multipart/form-data`) veya Base64 Data URL (`edits` ve `variations` için zorunlu) |
| mask | file / string | Hayır | Düzenlenecek saydam bölgeyi tanımlayan inpainting maskesi (`edits` için opsiyonel) |
| mode | string | Hayır (flare) | `gpt-image-2.5` için mod seçimi: `flare` (hızlı) veya `sunburst` (yüksek detay & düzenleme) |
| n | integer | Hayır (1) | Üretilecek görsel adedi (1 ile 10 arası) |
| size | string | Hayır (auto) | `auto` veya `1024x1024`, `1536x1024`, `1024x1536`. Özel boyutlarda kenarlar 16 katı, en fazla 3840; oran 1:3–3:1 ve toplam 655360–8294400 piksel. |
| quality | string | Hayır (auto) | Image 2: `auto`, `low`, `medium`, `high`. Image 2.5: bunlara ek `xhigh`, `max`. Vangu uyumluluk adları: `standard` → `medium`, `hd` → `high`. |
| response_format | string | Hayır (b64_json) | `url` (geçici güvenli indirme linki) veya `b64_json` (Base64 kodlanmış görsel verisi) |
| output_format | string | Hayır (png) | `png`, `jpeg`, `webp` |
1. Metinden Görsel Üretimi (cURL & Python)
Kalite sağlayıcı tarafından değiştirilirse warnings içinde image_quality_changed ve istenen/gerçekleşen değerler döner. input_fidelity ve style desteklenmez. Boyut/format gerekirse çıktı dosyasında dönüştürülür; bu daha yüksek native üretim çözünürlüğü garantisi değildir. URL yanıtı için response_format: url değerini açıkça gönderin.
curl https://api.vangu.dev/v1/images/generations \
-H "Content-Type: application/json" \
-H "Authorization: Bearer vgu_live_sample_token_67b8a901" \
-d '{
"model": "gpt-image-2.5",
"mode": "sunburst",
"prompt": "Modern bir bulut bilişim veri merkezi, mavi neon aydınlatmalar, minimalist ve sinematik 8k render",
"size": "1024x1024",
"quality": "high",
"response_format": "url",
"n": 1
}'
from openai import OpenAI
client = OpenAI(
base_url="https://api.vangu.dev/v1",
api_key="vgu_live_sample_token_67b8a901"
)
# 1. Hızlı Üretim (gpt-image-2 veya 2.5-flare)
response = client.images.generate(
model="gpt-image-2.5-flare",
prompt="Cyberpunk sokağında parlayan neon tabelalar ve yağmurlu asfalt yansımaları",
n=1,
size="1024x1024",
response_format="url"
)
print("Üretilen Görsel URL:", response.data[0].url)
2. Görsel Düzenleme & Inpainting (/v1/images/edits)
Mevcut bir görseli yükleyip metin istemiyle düzenleyin (multipart/form-data veya Base64 formatında):
curl https://api.vangu.dev/v1/images/edits \
-H "Authorization: Bearer vgu_live_sample_token_67b8a901" \
-F image="@giris_resmi.png" \
-F prompt="Arka plana gün batımı ve sıcak altın tonlarında ışıklandırma ekle" \
-F model="gpt-image-2.5-sunburst" \
-F response_format="url" \
-F n="1"
from openai import OpenAI
client = OpenAI(
base_url="https://api.vangu.dev/v1",
api_key="vgu_live_sample_token_67b8a901"
)
# Görsel Düzenleme / Inpainting (Sunburst hassasiyet modu)
edited = client.images.edit(
image=open("giris_resmi.png", "rb"),
prompt="Karakterin ceketine reflektörlü neon desenler ekle",
model="gpt-image-2.5-sunburst",
n=1,
size="1024x1024",
response_format="url"
)
print("Düzenlenen Görsel:", edited.data[0].url)
Örnek OpenAI Uyumlu JSON Yanıtı
{
"created": 1788796800,
"data": [
{
"url": "https://assets.vangu.dev/generated/img_89a7f3e1b2c4.png",
"revised_prompt": "Minimalist cloud data center, cinematic blue lighting, hyperrealistic architectural photography"
}
]
}
5. Model Kataloğu ve Erişim
GET /v1/models yalnız API anahtarınızın paket/bakiye ve model izinlerine göre erişebildiği kimlikleri döndürür. Genel sitede modelin bulunması her pakette dahil olduğu anlamına gelmez. gpt-6-astra ile gpt-6.1-sol ayrı modellerdir; biri diğerinin yerine listelenmez. Anahtar izinleri veya paket model kapsamı Astra içermiyorsa listede görünmez.
| Model kimliği | Kullanım |
|---|---|
| gpt-6.1-terra | Görsel akıl yürütme ve doğal metin üretimi |
| gpt-6.1-sol | Kodlama, akıl yürütme ve genel işler |
| gpt-6-sol | Kodlama ve genel işler |
| gpt-6-luna | Hız odaklı işler |
| gpt-6-astra | Karmaşık analiz; paket erişimi gerekir |
| gpt-5.6-sol / gpt-5.6-terra / gpt-5.6-luna | Önceki model ailesi |
| gpt-image-2 / gpt-image-2.5 / gpt-image-2.5-flare / gpt-image-2.5-sunburst | Images uç noktaları; görsel erişimi ve kotası gerekir |
Geçerli fiyat, kota ve çarpanlar tanımlı paket veya bakiye tarifesinden gelir; sabit çarpan ve gecikme değerleri bu tablodan çıkarılamaz. gpt-5-search-api gibi listede olmayan kimlikler kullanılamaz; web araması için izinli metin modeliyle Responses web_search kullanın.
curl https://api.vangu.dev/v1/models \
-H "Authorization: Bearer vgu_live_sample_token_67b8a901"
6. Hata Yanıtları ve Telemetri Başlıkları
Vangu platformu hata durumlarında kesin JSON gövdeleri döndürür. Günlük paketlerde kota aşıldığında (429) kotanız her gece saat 00.00’da otomatik sıfırlanır.
OpenAI Tipi Hata Yanıtı (429 Too Many Requests)
{
"error": {
"message": "Günlük paket kotanız doldu. Kota her gece 00.00'da sıfırlanır.",
"type": "insufficient_quota",
"code": "daily_quota_exceeded",
"reset_timestamp": 1788825600
}
}
Her Yanıtta Dönen Telemetri Başlıkları
| Başlık | Örnek Değer | Açıklama |
|---|---|---|
| X-Vangu-Plan | daily-pro | Aktif paket kimliği |
| X-RateLimit-Limit | 20000 | Paketin toplam günlük veya süreli çağrı hakkı |
| X-RateLimit-Remaining | 18450 | Kalan kullanılabilir istek sayısı |
| X-RateLimit-Reset | 1788825600 | Kota yenilenme anı (Gece 00.00 UTC+3 Unix epoch zamanı) |
| X-Concurrency-Limit | 10 | Aynı anda izin verilen eşzamanlı istek tavanı |
| X-Concurrency-Current | 2 | Şu anda işlenen aktif eşzamanlı istek adedi |