GOAT

Goat API
Reference

SKYMOD tarafından geliştirilen Goat büyük dil modeline erişmek için üretim odaklı API. Sohbet, kod, özetleme, analiz ve Türkçe ağırlıklı kurumsal kullanım senaryoları için tasarlanmıştır.

Chat API Uyumlu
SSE Streaming
Türkçe Öncelikli
Production Ready

Overview Giriş

Goat API, SKYMOD Teknoloji tarafından geliştirilen Goat büyük dil modeline HTTP üzerinden erişim sağlar. Goat; kullanıcılarla doğal dilde konuşabilen, talimatları takip edebilen, uzun metinleri analiz edebilen, kod üretebilen ve kurumsal bilgi iş akışlarında asistan olarak kullanılabilen genel amaçlı bir dil modelidir.

Tüm istekler HTTPS üzerinden yapılmalıdır. API yanıtları JSON formatında döner.

Goat API, Chat Completions standardını destekler. requests, httpx, fetch gibi standart HTTP kütüphaneleriyle ya da Chat Completions protokolünü destekleyen herhangi bir SDK ile kullanılabilir.

Goat Model

Goat, SKYMOD tarafından geliştirilen yeni nesil büyük dil modelidir. Kullanıcı tarafında model adı her zaman goat olarak kullanılır.

Model ID
goat
API isteklerinde kullanılacak model adı.
Parameters
122B
Toplam uzman parametre kapasitesi.
Active Cap.
~10B
Her token için aktif hesaplama kapasitesi.
Context
32K
Geniş bağlam penceresi.
Modalite
Text
Metin giriş ve çıkışı.
Diller
TR / EN
Türkçe öncelikli çok dilli.
Streaming
SSE
Gerçek zamanlı token akışı.
Format
JSON
Chat Completions uyumlu.

Bu dokümantasyon Goat modelinin public model card ve API kullanım bilgilerini içerir. Dahili eğitim altyapısı ve operasyonel bilgiler API sözleşmesinin parçası değildir.

Model Card

BaşlıkDetayKullanıcı İçin Anlamı
Model AilesiGoatSKYMOD tarafından sunulan üretim sınıfı büyük dil modeli ailesi.
Parametre Ölçeği122B toplam, ~10B aktifBüyük model kapasitesi ile verimli çıkarım dengesi.
Bağlam Penceresi32 768 tokenUzun dokümanlar ve çok turlu görüşmeler tek istekte işlenebilir.
Desteklenen GirişMetin tabanlı mesajlarsystem, user ve assistant rolleriyle sohbet geçmişi.
Desteklenen ÇıkışMetin ve yapılandırılmış metinDoğal dil, Markdown, JSON, kod blokları üretilebilir.
Önerilen AlanlarKurumsal asistan, teknik destek, kod yardımıGenel amaçlı asistan ve iş akışı otomasyonu için uygundur.

Fine-Tuning & Alignment

AşamaAçıklamaHedef
Instruction TuningTürkçe ve İngilizce talimat-cevap örnekleriyle görev takibi güçlendirilmiştir.Net cevap üretme ve format koruma.
Turkish OptimizationKurumsal üslup ve yerel ifade kalıpları için ek iyileştirme.Profesyonel ve tutarlı Türkçe yanıtlar.
Domain AdaptationMüşteri destek, yazılım geliştirme, doküman analizi senaryoları.Kurumsal uygulamalarda kullanılabilirlik.
Preference AlignmentYardımcı, ölçülü ve güvenli yanıt davranışı için tercih hizalaması.Daha az gereksiz detay, güvenli davranış.
Safety TuningHassas bilgi ve zararlı içerik senaryolarında güvenli davranış.Riskli kullanım senaryolarını azaltma.

Capabilities

Goat; doğal dilde talimat takip etmek, karmaşık metinleri özetlemek, kod yazmak ve çok turlu diyaloglarda bağlamı korumak için tasarlanmıştır.

Kurumsal Asistanlar

Şirket içi bilgi tabanları, müşteri destek akışları ve operasyonel süreç yönlendirmeleri.

Doküman Analizi

Uzun metinleri özetleme, karar noktalarını çıkarma ve metin karşılaştırma.

Kod & Teknik Yardım

Python, JavaScript, TypeScript için açıklama, refactor önerisi ve örnek üretimi.

İçerik Üretimi

Blog taslakları, e-posta, ürün açıklaması ve marka tonuna uygun yeniden yazım.

Veri Dönüştürme

Serbest metni JSON'a çevirme, sınıflandırma, etiketleme ve alan çıkarımı.

Çok Turlu Diyalog

Önceki mesajları bağlamda tutarak adım adım görev tamamlama.

Quick Start

1

API Anahtarınızı Alın

SKYMOD ekibinden bir API anahtarı talep edin. Anahtar sk- önekiyle başlar.

2

İlk İsteği Gönderin

Aşağıdaki örneği kendi API anahtarınızla çalıştırın:

curl https://goat.skymod.ai/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-<API_KEY>" \
  -d '{"model":"goat","messages":[{"role":"user","content":"Merhaba! Bana Türkiye hakkında 3 ilginç bilgi ver."}],"max_tokens":512,"temperature":0.7}'
import requests

response = requests.post(
    "https://goat.skymod.ai/v1/chat/completions",
    headers={
        "Authorization": "Bearer sk-<API_KEY>",
        "Content-Type": "application/json",
    },
    json={
        "model": "goat",
        "messages": [{"role": "user", "content": "Merhaba!"}],
        "max_tokens": 512, "temperature": 0.7,
    },
)
print(response.json()["choices"][0]["message"]["content"])
const res = await fetch("https://goat.skymod.ai/v1/chat/completions", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "Authorization": "Bearer sk-<API_KEY>",
  },
  body: JSON.stringify({
    model: "goat",
    messages: [{role: "user", content: "Merhaba!"}],
    max_tokens: 512, temperature: 0.7,
  }),
});
const data = await res.json();
console.log(data.choices[0].message.content);
CANLI Parametreleri Ayarla
0.70
Deterministik Yaratıcı
512
64 4096
Dengeli çıktı — genel asistan kullanımı için uygundur.
3

Yanıtı İnceleyin

choices[0].message.content modelin ürettiği metni içerir.

{
  "id": "chatcmpl-a8f3d2b1c4e5",
  "object": "chat.completion",
  "model": "goat",
  "choices": [{
    "index": 0,
    "message": {"role": "assistant", "content": "İşte Türkiye hakkında 3 ilginç bilgi..."},
    "finish_reason": "stop"
  }],
  "usage": {"prompt_tokens": 28, "completion_tokens": 147, "total_tokens": 175}
}

Authentication

Goat API, Bearer token tabanlı kimlik doğrulama kullanır. /health hariç tüm endpoint'ler kimlik doğrulama gerektirir.

Header Formatı

Authorization: Bearer sk-<API_KEY>

Güvenlik Notları

Frontend'de API key kullanmayın. Tarayıcı tarafı kodda API anahtarını açık bırakmak anahtarın ifşasına yol açar. Her zaman backend aracılığıyla proxy yapın.

Base URL & Versioning

https://goat.skymod.ai

Tüm endpoint'ler bu base URL altında /v1/ prefix'i ile sunulur.

OrtamBase URLAçıklama
Productionhttps://goat.skymod.aiCanlı ortam. Tüm üretim trafiği için kullanın.

Chat Completions

POST /v1/chat/completions Ana sohbet endpoint'i

Bir konuşma geçmişini alarak bir sonraki asistan mesajını üretir. Hem tek seferlik sorgular hem de çok turlu diyaloglar için kullanılır.

Request Body

İstek gövdesi application/json formatında gönderilmelidir.

AlanTipZorunlulukVarsayılanAçıklama
modelstringzorunluKullanılacak model adı. goat değeri Goat modelini hedefler.
messagesarrayzorunluKonuşma geçmişi. Her eleman bir Message Object'tir. En az bir mesaj içermelidir.
max_tokensintegeropsiyonel512Üretilecek maksimum token sayısı. 1–32768 arasında olmalıdır.
temperaturefloatopsiyonel0.7Örnekleme sıcaklığı. 0.0–2.0. Tutarlı çıktı için 0.1–0.4, yaratıcı için 0.7–1.2.
top_pfloatopsiyonel1.0Nükleus örnekleme eşiği. 0.0–1.0.
streambooleanopsiyonelfalseGerçek zamanlı token akışı. true olduğunda SSE olarak akar.
stopstring | string[]opsiyonelnullModel bu dizi/dizilere ulaştığında üretimi durdurur. En fazla 4 dizi.
frequency_penaltyfloatopsiyonel0.0Tekrar eden token'lara ceza. -2.0–2.0.
presence_penaltyfloatopsiyonel0.0Yeni konular açmayı teşvik eder. -2.0–2.0.
nintegeropsiyonel1Kaç farklı tamamlama seçeneği döndürüleceği.
thinkingobjectopsiyonelnullAkıl yürütme davranışını ayarlar. type değeri off, adaptive veya manual olabilir. Mevcut istek yapısını bozmaz; yalnızca gönderildiğinde uygulanır.
userstringopsiyonelnullSon kullanıcıyı temsil eden benzersiz kimlik.

Thinking

Goat API'de thinking tamamen opsiyoneldir. Alan gönderilmezse mevcut Chat Completions request/response sözleşmesi aynı kalır. Yeni thinking alanı gönderildiğinde proxy, public sözleşmeyi vLLM tarafındaki thinking_token_budget ve chat_template_kwargs.enable_thinking ayarlarına çevirir.

AlanTipZorunlulukVarsayılanAçıklama
thinking.typestringzorunlu*off, adaptive veya manual. thinking objesi gönderildiyse kullanılır.
thinking.effortstringopsiyonelmediumAdaptive mod için low, medium, high, very_high. Prompt karmaşıklığına göre token bütçesi dinamik seçilir.
thinking.levelstringopsiyonelmediumManual mod için sabit seviye: low, medium, high, very_high.
thinking.budget_tokensintegeropsiyonelManual modda doğrudan thinking token bütçesi. Verilirse level yerine bu değer kullanılır.
thinking.include_reasoningbooleanopsiyoneltruefalse ise JSON yanıtında reasoning, streaming yanıtında delta.reasoning gizlenir.

max_tokens, thinking ve nihai cevap toplamını kapsar. Proxy, seçilen thinking bütçesini max_tokens sınırına göre güvenli biçimde küçültebilir.

Adaptive Thinking

{
  "model": "goat",
  "messages": [{"role": "user", "content": "Bu mimariyi güvenlik ve performans açısından analiz et."}],
  "max_tokens": 3000,
  "thinking": {
    "type": "adaptive",
    "effort": "high",
    "include_reasoning": false
  }
}

Manual Thinking

{
  "model": "goat",
  "messages": [{"role": "user", "content": "2x + 5 = 13, x kaçtır?"}],
  "max_tokens": 1500,
  "thinking": {
    "type": "manual",
    "budget_tokens": 800,
    "include_reasoning": true
  }
}

Thinking Metadata

Yeni thinking alanı kullanıldığında yanıt, uygulanan ayarı gösteren opsiyonel goat.thinking metadata'sı içerebilir.

{
  "goat": {
    "thinking": {
      "type": "adaptive",
      "effort": "high",
      "applied_level": "high",
      "token_budget": 3072,
      "reasoning_included": false
    }
  }
}

🎛️ Parameter Playground

Parametrelerin etkisini görsel olarak keşfedin. Kod örneği otomatik güncellenir.

0.7
0.0 — Deterministik 2.0 — Yaratıcı
Dengeli çıktı — genel asistan ve özetleme için ideal.
512
1 4096
≈ 384 Türkçe kelime. Kısa yanıtlar için uygundur.
1.0
0.0 — Yalnızca en olası 1.0 — Tümü dahil
Canlı Kod Önizlemesi

Message Object

AlanTipZorunlulukAçıklama
rolestringzorunluMesajın sahibi. Geçerli değerler: system, user, assistant.
contentstringzorunluMesaj metni.
namestringopsiyonelMesajı gönderenin adı. Çok katılımcılı senaryolarda kullanılır.

Role Açıklamaları

RoleAçıklamaKullanım
systemModelin davranışını ve kişiliğini tanımlar.Bağlam kurma, kısıtlama belirleme
userSon kullanıcının mesajlarını temsil eder.Sorular, talimatlar, giriş metni
assistantModelin önceki yanıtlarını temsil eder.Çok turlu diyalog geçmişi

Response Schema

ChatCompletion Object

AlanTipAçıklama
idstringBenzersiz tanımlayıcı. chatcmpl- önekiyle başlar.
objectstringHer zaman "chat.completion" değerini alır.
createdintegerUnix zaman damgası (saniye).
modelstringİsteği işleyen modelin adı.
choicesarrayTamamlama seçenekleri dizisi.
usageobjectToken kullanım istatistikleri.
goatobjectOpsiyonel Goat metadata'sı. Yeni thinking alanı kullanıldığında uygulanan thinking ayarını içerebilir.

Choice Object

AlanTipAçıklama
indexintegerSıra numarası (0 tabanlı).
messageobjectModelin ürettiği mesaj.
finish_reasonstringÜretimin durma sebebi: stop, length, content_filter.

Assistant Message Object

AlanTipAçıklama
rolestringHer zaman assistant.
contentstringNihai cevap metni.
reasoningstringOpsiyonel akıl yürütme çıktısı. thinking.include_reasoning: false gönderilirse yanıttan kaldırılır.

Usage Object

AlanTipAçıklama
prompt_tokensintegerGiriş mesajlarında kullanılan token sayısı.
completion_tokensintegerÜretilen yanıttaki token sayısı.
total_tokensintegerToplam kullanılan token.

Streaming (SSE)

İstek gövdesinde "stream": true gönderildiğinde API, Server-Sent Events formatında yanıt verir. Her chunk bir data: satırı olarak gelir; akış data: [DONE] ile biter.

Thinking açıkken streaming yanıtlarında delta.reasoning chunk'ları gelebilir. thinking.include_reasoning: false gönderildiğinde proxy bu alanları filtreler ve istemci yalnızca nihai delta.content akışını görür.

curl https://goat.skymod.ai/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-<API_KEY>" \
  --no-buffer \
  -d '{"model":"goat","messages":[{"role":"user","content":"Uzun bir hikaye anlat."}],"stream":true,"thinking":{"type":"adaptive","effort":"medium","include_reasoning":false}}'
import requests, json

with requests.post(
    "https://goat.skymod.ai/v1/chat/completions",
    headers={"Authorization": "Bearer sk-<API_KEY>", "Content-Type": "application/json"},
    json={"model": "goat", "messages": [{"role": "user", "content": "Uzun bir hikaye anlat."}], "stream": True, "thinking": {"type": "adaptive", "effort": "medium", "include_reasoning": False}},
    stream=True,
) as resp:
    for line in resp.iter_lines():
        if line and line.startswith(b"data: "):
            payload = line[6:]
            if payload == b"[DONE]": break
            chunk = json.loads(payload)
            print(chunk["choices"][0]["delta"].get("content", ""), end="", flush=True)
const res = await fetch("https://goat.skymod.ai/v1/chat/completions", {
  method: "POST",
  headers: {"Content-Type": "application/json", "Authorization": "Bearer sk-<API_KEY>"},
  body: JSON.stringify({model: "goat", messages: [{role: "user", content: "Uzun bir hikaye anlat."}], stream: true, thinking: {type: "adaptive", effort: "medium", include_reasoning: false}}),
});
const reader = res.body.getReader();
const decoder = new TextDecoder();
while (true) {
  const { done, value } = await reader.read();
  if (done) break;
  for (const line of decoder.decode(value).split("\n")) {
    if (!line.startsWith("data: ") || line === "data: [DONE]") continue;
    const chunk = JSON.parse(line.slice(6));
    process.stdout.write(chunk.choices[0]?.delta?.content ?? "");
  }
}

List Models

GET /v1/models Mevcut modelleri listeler
curl https://goat.skymod.ai/v1/models \
  -H "Authorization: Bearer sk-<API_KEY>"

Health Check

GET /health Kimlik doğrulama gerektirmez
curl https://goat.skymod.ai/health
# → {"status": "ok"}

Postman Collection

Güncel Postman koleksiyonu public olarak aşağıdaki adresten indirilebilir. Koleksiyon yeni thinking sözleşmesini, adaptive/manual örneklerini, reasoning gizleme ve streaming kullanımını içerir.

GET /postman Postman collection JSON
curl https://goat.skymod.ai/postman
# → goat-api-skymod.postman_collection.json

Errors

API, hata durumlarında standart HTTP durum kodları ve JSON hata gövdesi döner.

200

OK

İstek başarıyla işlendi.

401

Unauthorized

Authorization header eksik veya API anahtarı geçersiz/iptal edilmiş.

422

Unprocessable Entity

İstek gövdesi geçersiz. Zorunlu alanları ve tip uyumluluğunu kontrol edin.

429

Too Many Requests

Rate limit aşıldı. Retry-After header'ındaki süre kadar bekleyin.

500

Internal Server Error

Sunucu tarafı hata. Birkaç saniye bekleyip tekrar deneyin.

Kod Örnekleri

Goat API standart HTTP istekleriyle kullanılır.

import requests

API_KEY = "sk-<API_KEY>"
headers = {"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"}
payload = {
    "model": "goat",
    "messages": [
        {"role": "system", "content": "Sen yardımcı bir asistansın."},
        {"role": "user", "content": "Python decorator nedir?"},
    ],
    "temperature": 0.5, "max_tokens": 1024,
}
response = requests.post("https://goat.skymod.ai/v1/chat/completions", json=payload, headers=headers)
print(response.json()["choices"][0]["message"]["content"])
async function ask(question: string): Promise<string> {
  const res = await fetch("https://goat.skymod.ai/v1/chat/completions", {
    method: "POST",
    headers: {
      "Authorization": `Bearer ${process.env.GOAT_API_KEY}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({model: "goat", messages: [{role: "user", content: question}], max_tokens: 1024}),
  });
  const data = await res.json();
  return data.choices[0].message.content;
}
from openai import OpenAI

client = OpenAI(
    api_key="sk-<API_KEY>",
    base_url="https://goat.skymod.ai/v1",
)
response = client.chat.completions.create(
    model="goat",
    messages=[{"role": "user", "content": "Goat API ile neler yapabilirim?"}],
    temperature=0.5, max_tokens=512,
)
print(response.choices[0].message.content)

Best Practices

Temperature Seçimi

Kullanım DurumuÖnerilen Temperature
Kod üretimi / Faktüel sorular0.0–0.3Tutarlı, deterministik
Genel asistan / Özetleme0.4–0.7Dengeli
Yaratıcı yazarlık / Beyin fırtınası0.8–1.2Çeşitli, yaratıcı

Token Yönetimi

Guardrails Güvenlik Katmanı

Goat API, üretim kullanımı için guardrail katmanıyla çalışır. Bu katman, kullanıcı isteği modele ulaşmadan önce ve yanıt kullanıcıya dönmeden önce riskli içerikleri azaltmaya yardımcı olur. Amaç; güvenli, tutarlı ve kurumsal kullanıma uygun bir yanıt davranışı sağlamaktır.

OWASP yaklaşımı: Goat guardrail tasarımı, LLM uygulamaları için OWASP Top 10 risk başlıklarını temel referans olarak alır. OWASP iyi bir başlangıç ve ortak dil sağlar; tek başına güvenlik garantisi değildir. Üretimde kimlik doğrulama, oran sınırlama, güvenli loglama, düzenli test ve uygulama tarafı yetki kontrolleriyle birlikte kullanılmalıdır.

Request
Giriş Kontrolü
Riskli talimatlar, kimlik karmaşası ve yetkisiz yönlendirme denemeleri isteğin erken aşamasında değerlendirilir.
Policy
Tutarlı Davranış
Yanıtlar Goat kimliği, güvenli kullanım sınırları ve kurumsal asistan davranışıyla uyumlu tutulur.
Response
Çıkış Kontrolü
Hassas bilgi, sistem talimatı veya yanlış kimlik beyanı içerebilecek yanıtlar güvenli hale getirilir.

Risk Kapsamı

RiskGoat DavranışıKullanıcıya Etkisi
Prompt injectionModel davranışını değiştirmeye çalışan yönlendirmeler güvenli cevapla sınırlandırılır.Normal kullanım akışı korunur; saldırı veya manipülasyon denemeleri sonuç üretmez.
Hassas bilgi ifşasıGizli anahtar, parola, token, iç talimat veya kişisel veri ifşasına yol açabilecek yanıtlar engellenir veya güvenli hale getirilir.Kullanıcılar API anahtarlarını yine de kendi backend ortamlarında saklamalıdır.
Sistem talimatı sızıntısıİç yönerge, güvenlik politikası veya çalışma talimatı talep eden istekler yanıtlanmaz.Servis davranışı açıklanır, ancak iç kontrol detayları paylaşılmaz.
Yetkisiz aksiyonModelden dış sistemlerde işlem yapması, güvenlik kontrollerini atlaması veya yetkisi olmayan eylem üretmesi beklenmez.Uygulama tarafında ayrıca rol ve yetki kontrolü uygulanmalıdır.
Kimlik karmaşasıModel kendisini Goat olarak konumlandırır; başka servis, sağlayıcı veya ürün kimliğiyle cevap vermesi sınırlandırılır.Müşteri deneyiminde tutarlı ürün kimliği korunur.

Response Davranışı

Normal isteklerde mevcut Chat Completions istek ve yanıt yapısı korunur. Guardrail tarafından riskli değerlendirilen içeriklerde kullanıcıya güvenli, kısa ve yönlendirici bir yanıt dönebilir. Bu davranış uygulama entegrasyonunu bozmadan riskli akışları azaltmak için tasarlanmıştır.

Not: Guardrails riskleri azaltır, tamamen ortadan kaldırmaz. Kullanıcılar gizli anahtar, parola, müşteri verisi veya mevzuata tabi hassas verileri gereksiz yere modele göndermemeli; üretim entegrasyonlarında erişim kontrolü, veri maskeleme ve denetim kayıtlarını kendi uygulama katmanında da uygulamalıdır.

Production Guide

Goat API üretim ortamlarında backend servisleri üzerinden çağrılmalıdır.

KatmanÖneriAçıklama
FrontendAPI key içermezKullanıcı mesajını kendi backend'inize gönderir.
BackendGoat API'ye bağlanırAPI anahtarı environment variable içinde tutulur.
LoggingHassas veriyi maskeleyinKişisel veri ve token loglanmadan önce filtrelenmelidir.
Timeout60–300 snUzun yanıtlar için makul timeout belirleyin.

Limits & Quotas

SınırDeğerAçıklama
Maksimum bağlam32 768 tokenSistem + mesajlar + yanıt toplamı bu sınırı aşamaz.
max_tokens32 768Tek yanıtta üretilebilecek maksimum token.
stop dizisi4 adetEn fazla 4 dizi belirtilebilir.
İstek gövdesi10 MBMaksimum istek boyutu.
Timeout300 snBu süre içinde tamamlanmazsa bağlantı kesilir.

Token Hesaplama: Ortalama olarak 1 token ≈ 0.75 Türkçe kelime ya da ≈ 4 İngilizce karakter. Uzun konuşmalarda eski mesajları budamanızı öneririz.

Performans

Eş Zamanlı İstekBaşarı OranıOrt. Gecikme (ms)Durum
1%100~4 000Nominal
10%100~6 000Nominal
50%100~18 000Nominal
100%100~35 000Nominal
200%100~70 000Nominal

Not: Gecikme değerleri max_tokens=100 ile 200 token giriş uzunluğunda ölçülmüştür. Sistem 200 eş zamanlı istekte sıfır hata ile çalışmaktadır.