Netiva API, standart Anthropic API ile tam uyumludur. Aşağıdan dilinizi seçerek hemen başlayın.
pip install anthropic
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")
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?"}
]
)
npm install @anthropic-ai/sdk
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`);
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?" }
]
});
composer require guzzlehttp/guzzle
<?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'];
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))
}
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!"}
]
}'
curl PROXY_URL_PLACEHOLDER/v1/models \
-H "x-api-key: YOUR_API_KEY"
Uzun yanıtları gerçek zamanlı almak için streaming kullanabilirsiniz.
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)
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);
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.
Claude'a dış araçlar tanıtabilir, fonksiyon çağrımı yapabilirsiniz.
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}")
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);
}
});
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?"}
]
}'
Güncel model listesini API Key'iniz ile GET /v1/models endpoint'inden alabilirsiniz.
| Model ID | Görünen Ad |
|---|---|
| Yükleniyor... | |
| HTTP Kodu | Hata Tipi | Açıklama |
|---|---|---|
400 | invalid_request_error | Hatalı istek formatı |
401 | authentication_error | Geçersiz API key |
403 | permission_error | API key deaktif |
429 | rate_limit_error | Günlük limit aşıldı |
500 | api_error | Sunucu hatası |
502 | api_error | Backend bağlantı hatası |
NetivaCode, AI destekli terminal kod asistanıdır. Projeleriniz üzerinde doğrudan terminalden yapay zeka ile çalışabilirsiniz.
İşletim sisteminize uygun kurulum komutunu çalıştırın. Bun runtime gereklidir, yoksa otomatik kurulur.
curl -fsSL https://netiva.com.tr/install.sh | bash
Kurulum dizini: ~/.netivacode | Komutlar: ~/.local/bin/
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
Netiva hesabınızla giriş yaparak API erişiminizi aktifleştirin.
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.
Herhangi bir proje klasöründe terminal açın ve başlatın:
# Tam komut
netivacode
# Kısa komutlar (alias)
netiva
ncode
| Komut | Açıklama |
|---|---|
netivacode | Etkileşimli REPL modunu başlatır |
netivacode login | Netiva hesabınızla giriş yapar |
netivacode logout | Oturumu kapatır |
netivacode update | En son sürüme günceller |
netivacode --version | Sürüm bilgisini gösterir |
netivacode --help | Yardım menüsünü gösterir |
netivacode reinstall | Sıfırdan yeniden kurulum yapar |
netivacode reset | Fabrika ayarlarına sıfırlar (ayarlar silinir, CLI korunur) |
netivacode uninstall | CLI'yı kaldırır |
| Kısayol | İşlev |
|---|---|
/help | Kullanılabilir komutları listeler |
/model | Kullanılacak modeli değiştirir |
/clear | Sohbet geçmişini temizler |
/config | Yapılandırma ayarlarını gösterir |
/compact | Sohbeti özetleyerek sıkıştırır |
Escape | Mevcut işlemi iptal eder |
NetivaCode her başlatıldığında güncelleme kontrolü yapar. Manuel güncelleme:
# Güncelleme komutu
netivacode update
# veya kurulum scripti ile
curl -fsSL https://netiva.com.tr/install.sh | bash
# 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:
Netiva API üzerinden Claude Code'u kullanmak için aşağıdaki adımları takip edin.
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
node --version
npm --version
git --version
macOS cihazlarda en kolay yöntem Homebrew kullanmaktır:
brew install node git
Eğer Homebrew kullanmıyorsanız bu sistem gereksinimlerini resmi indirme sitelerinden de kurabilirsiniz.
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
curl -fsSL https://claude.ai/install.sh | bash
irm https://claude.ai/install.ps1 | iex
curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd
Claude Code'un her terminal oturumunda Netiva API üzerinden çalışması için bu değişkenleri kalıcı kaydedin.
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
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
[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")
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.
Herhangi bir proje klasöründe terminal açın ve çalıştırın:
claude
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.
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
node --version
npm --version
Homebrew kullanıyorsanız:
brew install node
Alternatif olarak nodejs.org üzerinden .pkg indirip kurabilirsiniz.
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
Terminal açın ve aşağıdaki komutu çalıştırın:
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.
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.
mkdir -p ~/.codex
cd ~/.codex
.codex klasörünün içine config.toml dosyasını oluşturun.
# 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"
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_effort — low, medium veya high değerlerinden birini seçebilirsiniz..codex klasörünün içine auth.json dosyasını oluşturun.
{
"OPENAI_API_KEY": "sk-apianahtariniz"
}
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.
Herhangi bir proje klasöründe terminal açın:
codex "Bu projedeki hataları bul ve düzelt"
Codex CLI farklı onay modlarıyla çalıştırılabilir:
# 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"
❌ "connection refused" veya "timeout" hatası:
base_url değerinin doğru olduğundan emin olun (sonunda /v1 olmalı)❌ "authentication error" hatası:
auth.json dosyasındaki API anahtarının doğru olduğundan emin olun❌ "model not found" hatası:
config.toml dosyasındaki model değerinin paneldeki aktif model ismiyle eşleştiğinden emin olunNetiva 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.
go install github.com/opencode-ai/opencode@latest
Go yüklü değilse: brew install go veya go.dev adresinden indirin.
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.
Proje klasörünüzde veya global olarak opencode.json dosyası oluşturun:
{
"provider": {
"anthropic": {
"options": {
"baseURL": "PROXY_URL_PLACEHOLDER"
}
}
}
}
{
"provider": {
"anthropic": {
"options": {
"baseURL": "PROXY_URL_PLACEHOLDER"
}
}
}
}
OpenCode TUI içinde /connect komutuyla anahtarınızı bağlayın veya elle yapılandırın:
# OpenCode'u başlatın
opencode
# TUI içinde /connect komutuyla
# Anthropic provider'ı seçip API anahtarını girin
export ANTHROPIC_API_KEY="sk-apianahtariniz"
{
"anthropic": "sk-apianahtariniz"
}
# 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.
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.
VS Code Extensions panelinden veya komut satırından kurabilirsiniz:
Cline yazıncode --install-extension saoudrizwan.claude-dev
PROXY_URL_PLACEHOLDER
claude-sonnet-4-20250514)Cline panelinde mesaj alanına isteğinizi yazın:
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.
❌ Bağlantı hatası:
❌ Model hatası:
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.
Roo Code aratıncode --install-extension rooveterinaryinc.roo-cline
Roo Code iki farklı yöntemle yapılandırılabilir:
Anthropic seçinPROXY_URL_PLACEHOLDER
OpenAI Compatible seçinPROXY_URL_PLACEHOLDER/v1
claude-sonnet-4-20250514 gibi model adını yazınRoo Code'un güçlü özelliklerinden biri profil desteğidir. Farklı modeller ve ayarlar arasında hızlıca geçiş yapabilirsiniz:
💡 İ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.
❌ Tool calling hatası:
❌ Bağlantı hatası:
/ (slash) olmadığından emin olunBu proxy, /v1/chat/completions endpoint'i ile OpenAI API formatını destekler. Mevcut OpenAI SDK'nızı değiştirmeden kullanabilirsiniz.
POST PROXY_URL_PLACEHOLDER/v1/chat/completions
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)
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 || '');
}
| Parametre | Açıklama |
|---|---|
model | Kullanılacak model ismi |
messages | Mesaj dizisi (system, user, assistant rolleri) |
max_tokens | Maksimum çıktı token sayısı |
stream | true için SSE streaming yanıt |
temperature | Yaratıcılık seviyesi (0-1) |
top_p | Nucleus sampling parametresi |
stop | Durdurma dizileri |
Claude modelleri görsel içerikleri anlayabilir. Görselleri base64 veya URL formatında gönderebilirsiniz.
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)
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 görsel formatları: image/jpeg, image/png, image/gif, image/webp. Maksimum dosya boyutu ~20MB (base64).
API istekleriniz günlük limit ile sınırlandırılmıştır. Limitler planınıza göre değişir.
429 Too Many Requests yanıtı döner{
"type": "error",
"error": {
"type": "rate_limit_error",
"message": "Rate limit exceeded: 100/100 requests used today."
}
}
Retry-After header'ına göre yeniden deneyebilirsinizExtended 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.
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)
| Parametre | Açıklama |
|---|---|
thinking.type | "enabled" olarak ayarlayın |
thinking.budget_tokens | Düşünme için ayrılacak max token (1024-100000) |
max_tokens | Toplam max token (budget_tokens'dan büyük olmalı) |
thinking blokları ayrı event olarak gelirtemperature parametresi thinking modunda desteklenmezStreaming yanıtlar SSE (Server-Sent Events) protokolü ile gönderilir. Her event event: ve data: alanlarından oluşur.
// 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"}
/v1/chat/completions endpoint'inde SSE formatı OpenAI uyumludur:
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]
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);
}
});
}
❓ 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.