Hızlı Başlangıç

Netiva API, standart Anthropic API ile tam uyumludur. Aşağıdan dilinizi seçerek hemen başlayın.

Kurulum

bash
pip install anthropic

Temel Kullanım

python
from anthropic import Anthropic

client = Anthropic(
    base_url="PROXY_URL_PLACEHOLDER",
    api_key="YOUR_API_KEY"
)

response = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    system="Sen yardımsever bir asistansın.",
    messages=[{"role": "user", "content": "Merhaba!"}]
)

print(response.content[0].text)
print(f"Kullanım: {response.usage.input_tokens} giriş, {response.usage.output_tokens} çıkış token")

Çoklu Mesaj (Sohbet)

python
response = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=4096,
    messages=[
        {"role": "user", "content": "JavaScript nedir?"},
        {"role": "assistant", "content": "JavaScript, web geliştirme için..."},
        {"role": "user", "content": "TypeScript ile farkları neler?"}
    ]
)

Kurulum

bash
npm install @anthropic-ai/sdk

Temel Kullanım

javascript
import Anthropic from '@anthropic-ai/sdk';

const client = new Anthropic({
    baseURL: "PROXY_URL_PLACEHOLDER",
    apiKey: "YOUR_API_KEY"
});

const response = await client.messages.create({
    model: "claude-sonnet-4-6",
    max_tokens: 1024,
    system: "Sen yardımsever bir asistansın.",
    messages: [{ role: "user", content: "Merhaba!" }]
});

console.log(response.content[0].text);
console.log(`Kullanım: ${response.usage.input_tokens} giriş, ${response.usage.output_tokens} çıkış token`);

Çoklu Mesaj (Sohbet)

javascript
const response = await client.messages.create({
    model: "claude-sonnet-4-6",
    max_tokens: 4096,
    messages: [
        { role: "user", content: "JavaScript nedir?" },
        { role: "assistant", content: "JavaScript, web geliştirme için..." },
        { role: "user", content: "TypeScript ile farkları neler?" }
    ]
});

Kurulum

bash
composer require guzzlehttp/guzzle

Temel Kullanım

php
<?php
require 'vendor/autoload.php';

use GuzzleHttp\Client;

$client = new Client(['base_uri' => 'PROXY_URL_PLACEHOLDER']);

$response = $client->post('/v1/messages', [
    'headers' => [
        'Content-Type'  => 'application/json',
        'x-api-key'     => 'YOUR_API_KEY',
        'anthropic-version' => '2023-06-01'
    ],
    'json' => [
        'model'      => 'claude-sonnet-4-6',
        'max_tokens' => 1024,
        'system'     => 'Sen yardımsever bir asistansın.',
        'messages'   => [
            ['role' => 'user', 'content' => 'Merhaba!']
        ]
    ]
]);

$data = json_decode($response->getBody(), true);
echo $data['content'][0]['text'];

Temel Kullanım

go
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
    "io"
)

func main() {
    body, _ := json.Marshal(map[string]interface{}{
        "model":      "claude-sonnet-4-6",
        "max_tokens": 1024,
        "system":     "Sen yardımsever bir asistansın.",
        "messages": []map[string]string{
            {"role": "user", "content": "Merhaba!"},
        },
    })

    req, _ := http.NewRequest("POST", "PROXY_URL_PLACEHOLDER/v1/messages", bytes.NewBuffer(body))
    req.Header.Set("Content-Type", "application/json")
    req.Header.Set("x-api-key", "YOUR_API_KEY")
    req.Header.Set("anthropic-version", "2023-06-01")

    resp, _ := http.DefaultClient.Do(req)
    defer resp.Body.Close()

    respBody, _ := io.ReadAll(resp.Body)
    fmt.Println(string(respBody))
}

Temel İstek

bash
curl PROXY_URL_PLACEHOLDER/v1/messages \
  -H "Content-Type: application/json" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -d '{
    "model": "claude-sonnet-4-6",
    "max_tokens": 1024,
    "system": "Sen yardımsever bir asistansın.",
    "messages": [
      {"role": "user", "content": "Merhaba!"}
    ]
  }'

Model Listesi

bash
curl PROXY_URL_PLACEHOLDER/v1/models \
  -H "x-api-key: YOUR_API_KEY"

Streaming

Uzun yanıtları gerçek zamanlı almak için streaming kullanabilirsiniz.

python
with client.messages.stream(
    model="claude-sonnet-4-6",
    max_tokens=4096,
    messages=[{"role": "user", "content": "Uzun bir hikaye yaz"}]
) as stream:
    for text in stream.text_stream:
        print(text, end="", flush=True)
javascript
const stream = client.messages.stream({
    model: "claude-sonnet-4-6",
    max_tokens: 4096,
    messages: [{ role: "user", content: "Uzun bir hikaye yaz" }]
});

stream.on('text', (text) => {
    process.stdout.write(text);
});

const finalMessage = await stream.finalMessage();
console.log('\nToplam token:', finalMessage.usage);
bash
curl PROXY_URL_PLACEHOLDER/v1/messages \
  -H "Content-Type: application/json" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -d '{
    "model": "claude-sonnet-4-6",
    "max_tokens": 4096,
    "stream": true,
    "messages": [
      {"role": "user", "content": "Uzun bir hikaye yaz"}
    ]
  }'

Not: Streaming istekler de günlük limit sayacını etkiler.

Tools / Function Calling

Claude'a dış araçlar tanıtabilir, fonksiyon çağrımı yapabilirsiniz.

python
response = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    tools=[{
        "name": "get_weather",
        "description": "Hava durumunu getirir",
        "input_schema": {
            "type": "object",
            "properties": {
                "city": {"type": "string", "description": "Şehir adı"}
            },
            "required": ["city"]
        }
    }],
    messages=[{"role": "user", "content": "İstanbul'da hava nasıl?"}]
)

# Tool kullanımı kontrolü
for block in response.content:
    if block.type == "tool_use":
        print(f"Araç: {block.name}, Girdi: {block.input}")
javascript
const response = await client.messages.create({
    model: "claude-sonnet-4-6",
    max_tokens: 1024,
    tools: [{
        name: "get_weather",
        description: "Hava durumunu getirir",
        input_schema: {
            type: "object",
            properties: {
                city: { type: "string", description: "Şehir adı" }
            },
            required: ["city"]
        }
    }],
    messages: [{ role: "user", content: "İstanbul'da hava nasıl?" }]
});

// Tool kullanımı kontrolü
response.content.forEach(block => {
    if (block.type === "tool_use") {
        console.log(`Araç: ${block.name}, Girdi:`, block.input);
    }
});
bash
curl PROXY_URL_PLACEHOLDER/v1/messages \
  -H "Content-Type: application/json" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -d '{
    "model": "claude-sonnet-4-6",
    "max_tokens": 1024,
    "tools": [{
      "name": "get_weather",
      "description": "Hava durumunu getirir",
      "input_schema": {
        "type": "object",
        "properties": {
          "city": {"type": "string", "description": "Şehir adı"}
        },
        "required": ["city"]
      }
    }],
    "messages": [
      {"role": "user", "content": "İstanbul'\''da hava nasıl?"}
    ]
  }'

Kullanılabilir Modeller

Güncel model listesini API Key'iniz ile GET /v1/models endpoint'inden alabilirsiniz.

Model IDGörünen Ad
Yükleniyor...

Hata Kodları

HTTP KoduHata TipiAçıklama
400invalid_request_errorHatalı istek formatı
401authentication_errorGeçersiz API key
403permission_errorAPI key deaktif
429rate_limit_errorGünlük limit aşıldı
500api_errorSunucu hatası
502api_errorBackend bağlantı hatası

NetivaCode CLI

NetivaCode, AI destekli terminal kod asistanıdır. Projeleriniz üzerinde doğrudan terminalden yapay zeka ile çalışabilirsiniz.

Öne Çıkan Özellikler
AI ile kod yazma ve düzenleme
Proje analizi ve hata ayıklama
Terminal komutları çalıştırma
Çoklu dil ve framework desteği
Otomatik güncelleme sistemi
Netiva hesabı ile giriş

Adım 1: Kurulum

İşletim sisteminize uygun kurulum komutunu çalıştırın. Bun runtime gereklidir, yoksa otomatik kurulur.

Terminal (bash/zsh)
curl -fsSL https://netiva.com.tr/install.sh | bash

Kurulum dizini: ~/.netivacode  |  Komutlar: ~/.local/bin/

PowerShell (Yönetici olarak)
irm https://netiva.com.tr/install.ps1 | iex

Kurulum dizini: %USERPROFILE%\.netivacode  |  Windows 10+ gereklidir.

⚠️ Not: PowerShell script çalıştırma politikası engelliyorsa önce şu komutu çalıştırın:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

Adım 2: Hesap Girişi

Netiva hesabınızla giriş yaparak API erişiminizi aktifleştirin.

Terminal
netivacode login

Tarayıcınız açılacak ve Netiva hesabınızla giriş yapmanız istenecek. Oturum otomatik olarak CLI'ya aktarılır.

Adım 3: Kullanım

Herhangi bir proje klasöründe terminal açın ve başlatın:

Terminal
# Tam komut
netivacode

# Kısa komutlar (alias)
netiva
ncode

Temel Komutlar

KomutAçıklama
netivacodeEtkileşimli REPL modunu başlatır
netivacode loginNetiva hesabınızla giriş yapar
netivacode logoutOturumu kapatır
netivacode updateEn son sürüme günceller
netivacode --versionSürüm bilgisini gösterir
netivacode --helpYardım menüsünü gösterir
netivacode reinstallSıfırdan yeniden kurulum yapar
netivacode resetFabrika ayarlarına sıfırlar (ayarlar silinir, CLI korunur)
netivacode uninstallCLI'yı kaldırır

Etkileşimli Modda Kısayollar

Kısayolİşlev
/helpKullanılabilir komutları listeler
/modelKullanılacak modeli değiştirir
/clearSohbet geçmişini temizler
/configYapılandırma ayarlarını gösterir
/compactSohbeti özetleyerek sıkıştırır
EscapeMevcut işlemi iptal eder

Güncelleme

NetivaCode her başlatıldığında güncelleme kontrolü yapar. Manuel güncelleme:

Terminal
# Güncelleme komutu
netivacode update

# veya kurulum scripti ile
curl -fsSL https://netiva.com.tr/install.sh | bash

Kaldırma

Terminal
# CLI'yı tamamen kaldırma
netivacode uninstall

# veya kurulum scripti ile
curl -fsSL https://netiva.com.tr/install.sh | bash -- --uninstall

💡 İpucu: NetivaCode, planınızdaki API limitlerini kullanır. Kalan kullanım hakkınızı CLI başlangıç ekranında ve Genel Bakış sekmesinde görebilirsiniz.

🖥️ Sistem Gereksinimleri:

  • macOS (Intel / Apple Silicon) veya Linux (x64 / ARM64)
  • Windows 10+ (PowerShell 5.1+)
  • Bun ≥ 1.2.0 (yoksa otomatik kurulur)
  • Git (opsiyonel, güncelleme için önerilir)
  • curl ve tar (kurulum için gerekli)

Claude Code CLI Kurulum Kılavuzu

Netiva API üzerinden Claude Code'u kullanmak için aşağıdaki adımları takip edin.

Adım 1: Gereksinimler (Node.js + Git)

Claude Code'u kullanmak için tüm platformlarda Node.js ve Git gereklidir.

1. nodejs.org üzerinden en güncel LTS sürümünü kurun
2. git-scm.com adresinden Git aracını indirip kurun
3. Kurulumlar tamamlandıktan sonra komut satırını kapatıp yeniden başlatın

Doğrulama
node --version
npm --version
git --version

macOS cihazlarda en kolay yöntem Homebrew kullanmaktır:

bash
brew install node git

Eğer Homebrew kullanmıyorsanız bu sistem gereksinimlerini resmi indirme sitelerinden de kurabilirsiniz.

bash (Debian/Ubuntu)
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs git

# DNF tabanlı dağıtımlar için:
sudo dnf install nodejs npm
sudo dnf install -y git

Adım 2: Claude Code Kurulumu

bash
curl -fsSL https://claude.ai/install.sh | bash
PowerShell
irm https://claude.ai/install.ps1 | iex
CMD
curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

Adım 3: Kalıcı Ortam Değişkenlerini Ayarlayın

Claude Code'un her terminal oturumunda Netiva API üzerinden çalışması için bu değişkenleri kalıcı kaydedin.

~/.zshrc
cat >> ~/.zshrc << 'EOF'
export ANTHROPIC_BASE_URL="PROXY_URL_PLACEHOLDER"
export ANTHROPIC_AUTH_TOKEN="sk-your-api-key"
export CLAUDE_CODE_DISABLE_BACKGROUND_TASKS="1"
export CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC="1"
export CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION="0"
EOF
source ~/.zshrc
~/.bashrc
cat >> ~/.bashrc << 'EOF'
export ANTHROPIC_BASE_URL="PROXY_URL_PLACEHOLDER"
export ANTHROPIC_AUTH_TOKEN="sk-your-api-key"
export CLAUDE_CODE_DISABLE_BACKGROUND_TASKS="1"
export CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC="1"
export CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION="0"
EOF
source ~/.bashrc
PowerShell (Kalıcı)
[Environment]::SetEnvironmentVariable("ANTHROPIC_BASE_URL", "PROXY_URL_PLACEHOLDER", "User")
[Environment]::SetEnvironmentVariable("ANTHROPIC_AUTH_TOKEN", "sk-your-api-key", "User")
[Environment]::SetEnvironmentVariable("CLAUDE_CODE_DISABLE_BACKGROUND_TASKS", "1", "User")
[Environment]::SetEnvironmentVariable("CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC", "1", "User")
[Environment]::SetEnvironmentVariable("CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION", "0", "User")
CMD (Kalıcı)
setx ANTHROPIC_BASE_URL "PROXY_URL_PLACEHOLDER"
setx ANTHROPIC_AUTH_TOKEN "sk-your-api-key"
setx CLAUDE_CODE_DISABLE_BACKGROUND_TASKS "1"
setx CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC "1"
setx CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION "0"

⚡ Önemli: Ortam değişkenlerini kaydettikten sonra terminali yeniden başlatın.

Adım 4: Claude Code'u Çalıştırma

Herhangi bir proje klasöründe terminal açın ve çalıştırın:

Terminal
claude

OpenAI Codex CLI Kurulum Kılavuzu

Netiva API üzerinden OpenAI Codex CLI kullanmak için aşağıdaki adımları takip edin.

ℹ️ Bilgi: Codex CLI, OpenAI'nin Responses API (/v1/responses) protokolünü kullanır. Netiva API bu protokolü tam olarak desteklemektedir.

Ön koşul: Node.js

Codex CLI'nin çalışması için bilgisayarınızda Node.js yüklü olmalı.

1. nodejs.org adresine gidin
2. LTS sürümünü indirin (ör. 20.x.x)
3. İndirilen .msi dosyasını çalıştırın
4. Kurulum sihirbazını takip edin (Next → Next → Install)
5. Kurulum tamamlanınca yeni bir terminal açın

Doğrulama
node --version
npm --version

Homebrew kullanıyorsanız:

bash
brew install node

Alternatif olarak nodejs.org üzerinden .pkg indirip kurabilirsiniz.

bash
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs

# Fedora/CentOS için:
sudo dnf install nodejs npm

Adım 1: Codex CLI kurulumu

Terminal açın ve aşağıdaki komutu çalıştırın:

bash
npm install -g @openai/codex

Windows: PowerShell veya CMD'yi yönetici olarak çalıştırın.
macOS / Linux: İzin hatası alırsanız sudo npm install -g @openai/codex kullanın.

Adım 2: .codex klasörü oluşturma

Codex CLI, ayarlarını .codex klasöründen okur.

1. Dosya Gezgini'ni açın
2. Adres çubuğuna %USERPROFILE% yazın ve Enter'a basın
3. Yeni klasör oluşturun: .codex (noktayla başlar)

Not: Windows'ta noktayla başlayan klasör oluşturmak için adı .codex. yazabilirsiniz; Windows otomatik olarak .codex yapar.

Terminal
mkdir -p ~/.codex
cd ~/.codex

Adım 3: config.toml oluşturma

.codex klasörünün içine config.toml dosyasını oluşturun.

C:\Users\KULLANICIADI\.codex\config.toml
# Netiva API - Codex Configuration
model_provider = "netiva"
model = "gpt-5.4"
model_reasoning_effort = "medium"

[model_providers.netiva]
name = "netiva"
base_url = "PROXY_URL_PLACEHOLDER/v1"
wire_api = "responses"
Terminal
cat > ~/.codex/config.toml << 'EOF'
# Netiva API - Codex Configuration
model_provider = "netiva"
model = "gpt-5.4"
model_reasoning_effort = "medium"

[model_providers.netiva]
name = "netiva"
base_url = "PROXY_URL_PLACEHOLDER/v1"
wire_api = "responses"
EOF

⚠️ Önemli:

  • base_url — Sunucu adresinizin sonuna /v1 eklemelisiniz (ör. https://api.orneksite.com/v1)
  • wire_api = "responses" — Bu ayar zorunludur. Codex CLI bu sayede Responses API (/v1/responses) protokolünü kullanır.
  • model — Kullanmak istediğiniz modeli yazabilirsiniz. Mevcut modelleri panelinizdeki Modeller bölümünden görebilirsiniz.
  • model_reasoning_effortlow, medium veya high değerlerinden birini seçebilirsiniz.

Adım 4: auth.json oluşturma

.codex klasörünün içine auth.json dosyasını oluşturun.

C:\Users\KULLANICIADI\.codex\auth.json
{
  "OPENAI_API_KEY": "sk-apianahtariniz"
}
Terminal
cat > ~/.codex/auth.json << 'EOF'
{
  "OPENAI_API_KEY": "sk-apianahtariniz"
}
EOF

💡 Not: "sk-apianahtariniz" yerine Netiva API panelinizden oluşturduğunuz gerçek API anahtarınızı yazın.

Adım 5: Codex CLI'yi kullanma

Herhangi bir proje klasöründe terminal açın:

Terminal
codex "Bu projedeki hataları bul ve düzelt"

Onay Modları

Codex CLI farklı onay modlarıyla çalıştırılabilir:

Terminal
# Varsayılan - dosya yazma ve komut çalıştırma öncesi onay ister
codex "Proje yapısını iyileştir"

# Auto-edit - dosya değişikliklerini otomatik uygular, komutlar için onay ister
codex --approval-mode auto-edit "README dosyasını güncelle"

# Full-auto - her şeyi otomatik çalıştırır (dikkatli kullanın!)
codex --approval-mode full-auto "Testleri çalıştır ve hataları düzelt"

Sorun Giderme

❌ "connection refused" veya "timeout" hatası:

  • base_url değerinin doğru olduğundan emin olun (sonunda /v1 olmalı)
  • Sunucunun çalıştığını kontrol edin

❌ "authentication error" hatası:

  • auth.json dosyasındaki API anahtarının doğru olduğundan emin olun
  • API anahtarının aktif olduğunu panelden kontrol edin

❌ "model not found" hatası:

  • config.toml dosyasındaki model değerinin paneldeki aktif model ismiyle eşleştiğinden emin olun
  • Planınızda bu modele erişim olduğunu kontrol edin

OpenCode CLI Kurulum Kılavuzu

Netiva API üzerinden OpenCode CLI ile terminal tabanlı AI asistanını kullanmak için aşağıdaki adımları takip edin.

ℹ️ OpenCode Nedir? OpenCode, terminalden çalışan güçlü bir AI kodlama asistanıdır. Hem CLI hem de masaüstü (Desktop) versiyonu mevcuttur. Her ikisi de aynı yapılandırma dosyasını kullanır.

Adım 1: OpenCode Kurulumu

Terminal
go install github.com/opencode-ai/opencode@latest

Go yüklü değilse: brew install go veya go.dev adresinden indirin.

Terminal (macOS/Linux)
brew install opencode-ai/tap/opencode

OpenCode Desktop uygulamasını opencode.ai adresinden indirin. Masaüstü uygulama da aynı opencode.json yapılandırma dosyasını kullanır.

Adım 2: Yapılandırma Dosyasını Oluşturun

Proje klasörünüzde veya global olarak opencode.json dosyası oluşturun:

./opencode.json (proje kökünde)
{
  "provider": {
    "anthropic": {
      "options": {
        "baseURL": "PROXY_URL_PLACEHOLDER"
      }
    }
  }
}
~/.config/opencode/opencode.json
{
  "provider": {
    "anthropic": {
      "options": {
        "baseURL": "PROXY_URL_PLACEHOLDER"
      }
    }
  }
}

Adım 3: API Anahtarını Kaydedin

OpenCode TUI içinde /connect komutuyla anahtarınızı bağlayın veya elle yapılandırın:

OpenCode TUI
# OpenCode'u başlatın
opencode

# TUI içinde /connect komutuyla
# Anthropic provider'ı seçip API anahtarını girin
~/.zshrc veya ~/.bashrc
export ANTHROPIC_API_KEY="sk-apianahtariniz"
~/.local/share/opencode/auth.json
{
  "anthropic": "sk-apianahtariniz"
}

Adım 4: OpenCode'u Başlatın

Terminal
# Proje klasörünüzde çalıştırın
cd /path/to/proje
opencode

💡 Not: Proje bazlı opencode.json global ayarları geçersiz kılar. Desktop versiyonu da aynı yapılandırmayı okur.

Cline (VS Code) Kurulum Kılavuzu

Netiva API üzerinden Cline VS Code eklentisini kullanmak için aşağıdaki adımları takip edin.

ℹ️ Cline Nedir? Cline, VS Code içinde çalışan otonom bir AI kodlama asistanıdır. Dosya okuma/yazma, terminal komutları çalıştırma ve tarayıcı kullanma gibi yeteneklere sahiptir.

Adım 1: Cline Eklentisini Kurun

VS Code Extensions panelinden veya komut satırından kurabilirsiniz:

  1. VS Code'da sol kenar çubuğundan Extensions (Ctrl+Shift+X) panelini açın
  2. Arama kutusuna Cline yazın
  3. Cline eklentisini bulup Install butonuna tıklayın
  4. Kurulum tamamlanınca sol kenar çubuğunda Cline ikonu görünecektir
Terminal
code --install-extension saoudrizwan.claude-dev

Adım 2: API Sağlayıcısını Yapılandırın

  1. VS Code kenar çubuğundan Cline ikonuna tıklayın
  2. Panel sağ üstündeki ⚙️ Ayarlar (dişli) ikonuna tıklayın
  3. API Provider alanından Anthropic seçin
  4. 🔑 Anthropic API Key alanına Netiva API anahtarınızı girin
  5. ✅ Use custom base URL kutucuğunu işaretleyin
  6. Açılan alana Base URL'nizi girin:
Base URL
PROXY_URL_PLACEHOLDER
  1. Model alanından kullanmak istediğiniz modeli seçin (ör: claude-sonnet-4-20250514)
  2. Done butonuna tıklayarak kaydedin

Adım 3: Kullanmaya Başlayın

Cline panelinde mesaj alanına isteğinizi yazın:

Örnek Kullanım
Bu projedeki hataları analiz et ve düzelt
Login sayfasına dark mode desteği ekle
API endpoint'lerini test edecek unit testler yaz

⚠️ Önemli: Base URL alanına /v1 eklemeyin. Cline bunu otomatik olarak ekler. Yalnızca sunucu adresini girin.

Sorun Giderme

❌ Bağlantı hatası:

  • Custom Base URL kutucuğunun işaretli olduğundan emin olun
  • URL formatını kontrol edin (http:// veya https:// ile başlamalı)

❌ Model hatası:

  • Modellerinizi panelden kontrol edin: modelin aktif olduğundan emin olun
  • Model ID'nin doğru yazıldığından emin olun

Roo Code (VS Code) Kurulum Kılavuzu

Netiva API üzerinden Roo Code (eski adıyla Roo Cline) VS Code eklentisini kullanmak için aşağıdaki adımları takip edin.

ℹ️ Roo Code Nedir? Roo Code, Cline tabanlı geliştirilmiş bir AI kodlama asistanıdır. Çoklu profil desteği, gelişmiş tool calling ve dosya yönetimi özellikleriyle öne çıkar.

Adım 1: Roo Code Eklentisini Kurun

  1. VS Code Extensions panelini açın (Ctrl+Shift+X)
  2. Roo Code aratın
  3. Roo Code eklentisini kurun
Terminal
code --install-extension rooveterinaryinc.roo-cline

Adım 2: API Yapılandırması

Roo Code iki farklı yöntemle yapılandırılabilir:

  1. Roo Code panelinde ⚙️ Ayarlar ikonuna tıklayın
  2. API Provider: Anthropic seçin
  3. API Key: Netiva API anahtarınızı girin
  4. ✅ Use custom base URL kutucuğunu işaretleyin
  5. Base URL alanına sunucu adresini girin:
Base URL
PROXY_URL_PLACEHOLDER
  1. Model: Kullanacağınız modeli seçin
  2. Ayarları kaydedin
  1. API Provider: OpenAI Compatible seçin
  2. Base URL alanına girin:
Base URL (OpenAI uyumlu)
PROXY_URL_PLACEHOLDER/v1
  1. API Key: Netiva API anahtarınızı girin
  2. Model ID: claude-sonnet-4-20250514 gibi model adını yazın

API Yapılandırma Profilleri

Roo Code'un güçlü özelliklerinden biri profil desteğidir. Farklı modeller ve ayarlar arasında hızlıca geçiş yapabilirsiniz:

  1. Ayarlar'da Providers bölümüne gidin
  2. + Add Profile ile yeni profil ekleyin
  3. Her profil için farklı model, API key ve Base URL tanımlayabilirsiniz
  4. Profiller arasında tek tıkla geçiş yapın

💡 İpucu: Farklı görevler için ayrı profiller oluşturabilirsiniz — örneğin kod yazma için claude-opus-4-20250514, hızlı sohbet için claude-haiku-4-20250414.

Sorun Giderme

❌ Tool calling hatası:

  • Anthropic provider kullanıyorsanız, native tool calling otomatik desteklenir
  • OpenAI Compatible modda, endpoint'inizin tool-calling desteklediğinden emin olun

❌ Bağlantı hatası:

  • "Use custom base URL" kutucuğunun aktif olduğunu doğrulayın
  • Base URL sonunda / (slash) olmadığından emin olun
  • VS Code Output panelinden (Roo Code seçerek) hata loglarını inceleyin

OpenAI Uyumlu Endpoint

Bu proxy, /v1/chat/completions endpoint'i ile OpenAI API formatını destekler. Mevcut OpenAI SDK'nızı değiştirmeden kullanabilirsiniz.

Endpoint

http
POST PROXY_URL_PLACEHOLDER/v1/chat/completions

Python — OpenAI SDK

python
from openai import OpenAI

client = OpenAI(
    base_url="PROXY_URL_PLACEHOLDER/v1",
    api_key="YOUR_API_KEY"
)

response = client.chat.completions.create(
    model="claude-sonnet-4-6",
    messages=[
        {"role": "system", "content": "Sen yardımsever bir asistansın."},
        {"role": "user", "content": "Merhaba!"}
    ],
    max_tokens=1024
)

print(response.choices[0].message.content)

JavaScript — OpenAI SDK

javascript
import OpenAI from 'openai';

const client = new OpenAI({
    baseURL: 'PROXY_URL_PLACEHOLDER/v1',
    apiKey: 'YOUR_API_KEY',
});

const response = await client.chat.completions.create({
    model: 'claude-sonnet-4-6',
    messages: [
        { role: 'user', content: 'Merhaba!' }
    ],
    stream: true
});

for await (const chunk of response) {
    process.stdout.write(chunk.choices[0]?.delta?.content || '');
}

Desteklenen Parametreler

ParametreAçıklama
modelKullanılacak model ismi
messagesMesaj dizisi (system, user, assistant rolleri)
max_tokensMaksimum çıktı token sayısı
streamtrue için SSE streaming yanıt
temperatureYaratıcılık seviyesi (0-1)
top_pNucleus sampling parametresi
stopDurdurma dizileri

Vision / Görsel Analiz

Claude modelleri görsel içerikleri anlayabilir. Görselleri base64 veya URL formatında gönderebilirsiniz.

Base64 ile Görsel Gönderme

python
import base64
from anthropic import Anthropic

client = Anthropic(
    base_url="PROXY_URL_PLACEHOLDER",
    api_key="YOUR_API_KEY"
)

# Görseli base64'e çevir
with open("image.png", "rb") as f:
    image_data = base64.standard_b64encode(f.read()).decode("utf-8")

response = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    messages=[{
        "role": "user",
        "content": [
            {
                "type": "image",
                "source": {
                    "type": "base64",
                    "media_type": "image/png",
                    "data": image_data
                }
            },
            {
                "type": "text",
                "text": "Bu görselde ne görüyorsun?"
            }
        ]
    }]
)

print(response.content[0].text)

URL ile Görsel Gönderme

python
response = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    messages=[{
        "role": "user",
        "content": [
            {
                "type": "image",
                "source": {
                    "type": "url",
                    "url": "https://example.com/photo.jpg"
                }
            },
            {"type": "text", "text": "Bu görseli açıkla."}
        ]
    }]
)

Desteklenen Formatlar

Desteklenen görsel formatları: image/jpeg, image/png, image/gif, image/webp. Maksimum dosya boyutu ~20MB (base64).

Rate Limiting

API istekleriniz günlük limit ile sınırlandırılmıştır. Limitler planınıza göre değişir.

Nasıl Çalışır?

  • Her API anahtarı, ait olduğu kullanıcının günlük limitini paylaşır
  • Limitler her gün gece 00:00 (UTC+3) sıfırlanır
  • Limit aşıldığında 429 Too Many Requests yanıtı döner
  • Başarısız istekler (4xx/5xx) de limit sayacına dahildir

429 Yanıt Formatı

json
{
  "type": "error",
  "error": {
    "type": "rate_limit_error",
    "message": "Rate limit exceeded: 100/100 requests used today."
  }
}

Limit Yönetimi İpuçları

  • Genel Bakış sekmesinden kalan kullanım hakkınızı takip edin
  • Sıfırlanma süresini paneldeki sayaçtan görebilirsiniz
  • Daha yüksek limit için plan yükseltmeyi değerlendirin
  • İsteklerinizi Retry-After header'ına göre yeniden deneyebilirsiniz

Extended Thinking

Extended Thinking, Claude'un karmaşık problemlerde daha derinlemesine düşünmesini sağlar. Bu özellik, model yanıtının öncesinde bir "düşünme" aşaması ekler.

Kullanım

python
from anthropic import Anthropic

client = Anthropic(
    base_url="PROXY_URL_PLACEHOLDER",
    api_key="YOUR_API_KEY"
)

response = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=16000,
    thinking={
        "type": "enabled",
        "budget_tokens": 10000
    },
    messages=[{
        "role": "user",
        "content": "Bu denklemi çöz: 3x² + 5x - 2 = 0"
    }]
)

# Düşünme çıktısı + yanıt
for block in response.content:
    if block.type == "thinking":
        print("🧠 Düşünce:", block.thinking)
    elif block.type == "text":
        print("📝 Yanıt:", block.text)

Parametreler

ParametreAçıklama
thinking.type"enabled" olarak ayarlayın
thinking.budget_tokensDüşünme için ayrılacak max token (1024-100000)
max_tokensToplam max token (budget_tokens'dan büyük olmalı)

Notlar

  • Extended Thinking, düşünme token'larını da tüketir
  • Streaming modunda thinking blokları ayrı event olarak gelir
  • temperature parametresi thinking modunda desteklenmez

SSE (Server-Sent Events) Format

Streaming yanıtlar SSE (Server-Sent Events) protokolü ile gönderilir. Her event event: ve data: alanlarından oluşur.

Anthropic SSE Event Tipleri

text
// Stream başlangıcı
event: message_start
data: {"type":"message_start","message":{"id":"msg_...","model":"claude-sonnet-4-6","usage":{"input_tokens":25}}}

// İçerik bloğu başlangıcı
event: content_block_start
data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""}}

// Metin parçaları (ana içerik)
event: content_block_delta
data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"Merhaba"}}

// İçerik bloğu sonu
event: content_block_stop
data: {"type":"content_block_stop","index":0}

// Mesaj sonu (kullanım bilgisi)
event: message_delta
data: {"type":"message_delta","delta":{"stop_reason":"end_turn"},"usage":{"output_tokens":42}}

// Stream sonu
event: message_stop
data: {"type":"message_stop"}

OpenAI SSE Event Formatı

/v1/chat/completions endpoint'inde SSE formatı OpenAI uyumludur:

text
data: {"id":"chatcmpl-...","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"Merhaba"}}]}

data: {"id":"chatcmpl-...","object":"chat.completion.chunk","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}

data: [DONE]

JavaScript ile SSE Okuma

javascript
const response = await fetch('PROXY_URL_PLACEHOLDER/v1/messages', {
    method: 'POST',
    headers: {
        'Content-Type': 'application/json',
        'x-api-key': 'YOUR_API_KEY',
        'anthropic-version': '2023-06-01'
    },
    body: JSON.stringify({
        model: 'claude-sonnet-4-6',
        max_tokens: 1024,
        stream: true,
        messages: [{ role: 'user', content: 'Merhaba!' }]
    })
});

const reader = response.body.getReader();
const decoder = new TextDecoder();

while (true) {
    const { done, value } = await reader.read();
    if (done) break;
    const text = decoder.decode(value);
    // Her satırı parse et
    text.split('\n').forEach(line => {
        if (line.startsWith('data: ')) {
            const data = JSON.parse(line.slice(6));
            // content_block_delta event'lerini yakala
            if (data.delta?.text) process.stdout.write(data.delta.text);
        }
    });
}

Sık Sorulan Sorular

❓ API anahtarımı nasıl alabilirim?

Paneldeki "API Anahtarları" sekmesinden yeni anahtar oluşturabilirsiniz. Oluşturulan anahtar bir kez gösterilir, güvenli bir yerde saklayın.

❓ Hangi modelleri kullanabilirim?

Kullanılabilir modeller planınıza bağlıdır. "Modeller" sekmesinden tüm aktif modelleri görebilirsiniz. Bazı planlar belirli modellerle sınırlıdır.

❓ Günlük limitim doldu, ne yapmalıyım?

Limitler her gün gece 00:00'da (UTC+3) sıfırlanır. Daha yüksek limit için plan yükseltmeyi değerlendirin veya sıfırlanma saatini bekleyin.

❓ OpenAI SDK kullanabilir miyim?

Evet! /v1/chat/completions endpoint'i OpenAI format ile tam uyumludur. OpenAI SDK'da base_url'i proxy adresinize yönlendirmeniz yeterlidir.

❓ Planım sona erdiğinde ne olur?

Premium plan süresi dolduğunda hesabınız otomatik olarak ücretsiz plana geçer. Mevcut API anahtarlarınız aktif kalır, ancak günlük limit ücretsiz seviyeye düşer.

❓ Birden fazla API anahtarı oluşturabilir miyim?

Evet. Tüm anahtarlar aynı günlük limiti paylaşır. Farklı projeler için ayrı anahtarlar oluşturup kullanımı takip edebilirsiniz.

❓ API anahtarım çalışmıyor, ne yapmalıyım?

Anahtarınızın aktif olduğundan emin olun. Header'da x-api-key: YOUR_KEY veya Authorization: Bearer YOUR_KEY formatını kullanın. Sorun devam ederse destek talebi oluşturun.