Ana içeriğe atla
POST
/
v1
/
messages
import anthropic

client = anthropic.Anthropic(
    base_url="https://api.cometapi.com",
    api_key="<COMETAPI_KEY>",
)

message = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    system="You are a helpful assistant.",
    messages=[
        {"role": "user", "content": "Hello, world"}
    ],
)

print(message.content[0].text)
{
  "id": "<string>",
  "content": [
    {
      "text": "<string>",
      "thinking": "<string>",
      "signature": "<string>",
      "id": "<string>",
      "name": "<string>",
      "input": {}
    }
  ],
  "model": "<string>",
  "stop_sequence": "<string>",
  "usage": {
    "input_tokens": 123,
    "output_tokens": 123,
    "cache_creation_input_tokens": 123,
    "cache_read_input_tokens": 123,
    "cache_creation": {
      "ephemeral_5m_input_tokens": 123,
      "ephemeral_1h_input_tokens": 123
    }
  }
}

Documentation Index

Fetch the complete documentation index at: https://apidoc.cometapi.com/llms.txt

Use this file to discover all available pages before exploring further.

CometAPI, Anthropic Messages API’yi yerel olarak destekler ve size tüm Anthropic’e özgü özelliklerle birlikte Claude modellerine doğrudan erişim sağlar. Extended thinking, prompt caching ve effort control gibi Claude’a özel yetenekler için bu endpoint’i kullanın.
Kimlik doğrulama için hem x-api-key hem de Authorization: Bearer header’ları desteklenir. Resmi Anthropic SDK’ları varsayılan olarak x-api-key kullanır.

Hızlı başlangıç

CometAPI ile resmi Anthropic SDK’sını kullanmak için base URL’i ayarlayın:
import anthropic

client = anthropic.Anthropic(
    base_url="https://api.cometapi.com",
    api_key="<COMETAPI_KEY>",
)

message = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Hello!"}],
)
print(message.content[0].text)

Extended thinking’i etkinleştirin

thinking parametresiyle Claude’un adım adım akıl yürütmesini etkinleştirin. Yanıt, Claude’un nihai cevaptan önceki iç akıl yürütmesini gösteren thinking içerik bloklarını içerir.
message = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=16000,
    thinking={
        "type": "enabled",
        "budget_tokens": 10000,
    },
    messages=[
        {"role": "user", "content": "Prove that there are infinitely many primes."}
    ],
)

for block in message.content:
    if block.type == "thinking":
        print(f"Thinking: {block.thinking[:200]}...")
    elif block.type == "text":
        print(f"Answer: {block.text}")
Thinking için minimum budget_tokens değeri 1,024 olmalıdır. Thinking token’ları max_tokens sınırınıza dahil edilir — hem thinking hem de yanıt için yeterli olacak şekilde max_tokens değerini yeterince yüksek ayarlayın.

Prompt’ları önbelleğe alın

Sonraki isteklerde gecikmeyi ve maliyeti azaltmak için büyük system prompt’larını veya konuşma öneklerini önbelleğe alın. Önbelleğe alınması gereken içerik bloklarına cache_control ekleyin:
message = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    system=[
        {
            "type": "text",
            "text": "You are an expert code reviewer. [Long detailed instructions...]",
            "cache_control": {"type": "ephemeral"},
        }
    ],
    messages=[{"role": "user", "content": "Review this code..."}],
)
Önbellek kullanımı, yanıttaki usage alanında raporlanır:
  • cache_creation_input_tokens — önbelleğe yazılan token’lar (daha yüksek bir ücretle faturalandırılır)
  • cache_read_input_tokens — önbellekten okunan token’lar (indirimli bir ücretle faturalandırılır)
Prompt caching, önbelleğe alınan içerik bloğunda minimum 1,024 tokens gerektirir. Bundan daha kısa içerikler önbelleğe alınmaz.

Yanıtları stream etme

Server-Sent Events (SSE) kullanarak yanıtları stream etmek için stream: true ayarlayın. Olaylar şu sırayla gelir:
  1. message_start — message meta verilerini ve başlangıç kullanımını içerir
  2. content_block_start — her bir içerik bloğunun başlangıcını işaret eder
  3. content_block_delta — artımlı metin parçaları (text_delta)
  4. content_block_stop — her bir içerik bloğunun sonunu işaret eder
  5. message_delta — son stop_reason ve tam usage
  6. message_stop — stream’in sonunu bildirir
with client.messages.stream(
    model="claude-sonnet-4-6",
    max_tokens=256,
    messages=[{"role": "user", "content": "Hello"}],
) as stream:
    for text in stream.text_stream:
        print(text, end="")

Çaba düzeyini kontrol etme

Claude’un bir yanıt üretirken ne kadar çaba harcayacağını kontrol etmek için output_config.effort kullanın:
message = client.messages.create(
    model="claude-opus-4-6",
    max_tokens=4096,
    messages=[
        {"role": "user", "content": "Summarize this briefly."}
    ],
    output_config={"effort": "low"},  # "low", "medium", or "high"
)

Sunucu araçlarını kullanma

Claude, Anthropic altyapısında çalışan sunucu taraflı araçları destekler:
URL’lerden içerik çekin ve analiz edin:
message = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    messages=[
        {"role": "user", "content": "Analyze the content at https://arxiv.org/abs/1512.03385"}
    ],
    tools=[
        {"type": "web_fetch_20250910", "name": "web_fetch", "max_uses": 5}
    ],
)

Yanıt örneği

CometAPI’nin Anthropic endpoint’inden tipik bir yanıt:
{
  "id": "msg_bdrk_01UjHdmSztrL7QYYm7CKBDFB",
  "type": "message",
  "role": "assistant",
  "content": [
    {
      "type": "text",
      "text": "Hello!"
    }
  ],
  "model": "claude-sonnet-4-6",
  "stop_reason": "end_turn",
  "stop_sequence": null,
  "usage": {
    "input_tokens": 19,
    "cache_creation_input_tokens": 0,
    "cache_read_input_tokens": 0,
    "cache_creation": {
      "ephemeral_5m_input_tokens": 0,
      "ephemeral_1h_input_tokens": 0
    },
    "output_tokens": 4
  }
}

OpenAI-compatible endpoint ile karşılaştırma

ÖzellikAnthropic Messages (/v1/messages)OpenAI-Compatible (/v1/chat/completions)
Genişletilmiş düşünmebudget_tokens ile thinking parametresiKullanılamaz
Prompt cachingiçerik bloklarında cache_controlKullanılamaz
Çaba kontrolüoutput_config.effortKullanılamaz
Web fetch/searchSunucu araçları (web_fetch, web_search)Kullanılamaz
Kimlik doğrulama başlığıx-api-key veya BearerYalnızca Bearer
Yanıt formatıAnthropic formatı (content blokları)OpenAI formatı (choices, message)
ModellerYalnızca ClaudeÇoklu sağlayıcı (GPT, Claude, Gemini, vb.)

Yetkilendirmeler

x-api-key
string
header
gerekli

Your CometAPI key passed via the x-api-key header. Authorization: Bearer <key> is also supported.

Başlıklar

anthropic-version
string
varsayılan:2023-06-01

The Anthropic API version to use. Defaults to 2023-06-01.

Örnek:

"2023-06-01"

anthropic-beta
string

Comma-separated list of beta features to enable. Examples: max-tokens-3-5-sonnet-2024-07-15, pdfs-2024-09-25, output-128k-2025-02-19.

Gövde

application/json
model
string
gerekli

The Claude model to use. See the Models page for current Claude model IDs.

Örnek:

"claude-sonnet-4-6"

messages
object[]
gerekli

The conversation messages. Must alternate between user and assistant roles. Each message's content can be a string or an array of content blocks (text, image, document, tool_use, tool_result). There is a limit of 100,000 messages per request.

max_tokens
integer
gerekli

The maximum number of tokens to generate. The model may stop before reaching this limit. When using thinking, the thinking tokens count towards this limit.

Gerekli aralık: x >= 1
Örnek:

1024

system

System prompt providing context and instructions to Claude. Can be a plain string or an array of content blocks (useful for prompt caching).

temperature
number
varsayılan:1

Controls randomness in the response. Range: 0.0–1.0. Use lower values for analytical tasks and higher values for creative tasks. Defaults to 1.0.

Gerekli aralık: 0 <= x <= 1
top_p
number

Nucleus sampling threshold. Only tokens with cumulative probability up to this value are considered. Range: 0.0–1.0. Use either temperature or top_p, not both.

Gerekli aralık: 0 <= x <= 1
top_k
integer

Only sample from the top K most probable tokens. Recommended for advanced use cases only.

Gerekli aralık: x >= 0
stream
boolean
varsayılan:false

If true, stream the response incrementally using Server-Sent Events (SSE). Events include message_start, content_block_start, content_block_delta, content_block_stop, message_delta, and message_stop.

stop_sequences
string[]

Custom strings that cause the model to stop generating when encountered. The stop sequence is not included in the response.

thinking
object

Enable extended thinking — Claude's step-by-step reasoning process. When enabled, the response includes thinking content blocks before the answer. Requires a minimum budget_tokens of 1,024.

tools
object[]

Tools the model may use. Supports client-defined functions, web search (web_search_20250305), web fetch (web_fetch_20250910), code execution (code_execution_20250522), and more.

tool_choice
object

Controls how the model uses tools.

metadata
object

Request metadata for tracking and analytics.

output_config
object

Configuration for output behavior.

service_tier
enum<string>

The service tier to use. auto tries priority capacity first, standard_only uses only standard capacity.

Mevcut seçenekler:
auto,
standard_only

Yanıt

200 - application/json

Successful response. When stream is true, the response is a stream of SSE events.

id
string

Unique identifier for this message (e.g., msg_01XFDUDYJgAACzvnptvVoYEL).

type
enum<string>

Always message.

Mevcut seçenekler:
message
role
enum<string>

Always assistant.

Mevcut seçenekler:
assistant
content
object[]

The response content blocks. May include text, thinking, tool_use, and other block types.

model
string

The specific model version that generated this response (e.g., claude-sonnet-4-6).

stop_reason
enum<string>

Why the model stopped generating.

Mevcut seçenekler:
end_turn,
max_tokens,
stop_sequence,
tool_use,
pause_turn
stop_sequence
string | null

The stop sequence that caused the model to stop, if applicable.

usage
object

Token usage statistics.