الانتقال إلى المحتوى الرئيسي
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 بشكل أصيل، مما يمنحك وصولًا مباشرًا إلى نماذج Claude مع جميع الميزات الخاصة بـ Anthropic. استخدم نقطة النهاية هذه للإمكانات الحصرية لـ Claude مثل التفكير الموسّع، وتخزين Prompt مؤقتًا، والتحكم في الجهد.
يتم دعم كل من رؤوس x-api-key وAuthorization: Bearer للمصادقة. تستخدم مجموعات SDK الرسمية الخاصة بـ Anthropic الرأس x-api-key بشكل افتراضي.

البدء السريع

لاستخدام Anthropic SDK الرسمية مع CometAPI، اضبط base URL:
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)

تفعيل التفكير الموسّع

فعّل الاستدلال خطوة بخطوة في Claude باستخدام المعامل thinking. تتضمن الاستجابة كتل محتوى thinking تعرض الاستدلال الداخلي لـ Claude قبل الإجابة النهائية.
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}")
يتطلب التفكير حدًا أدنى من budget_tokens قدره 1,024. يتم احتساب Tokens الخاصة بالتفكير ضمن حد max_tokens — لذا اضبط max_tokens على قيمة مرتفعة بما يكفي لاستيعاب كل من التفكير والاستجابة.

تخزين Prompt مؤقتًا

لتقليل زمن الاستجابة والتكلفة في الطلبات اللاحقة، خزّن Prompts النظام الكبيرة أو بدايات المحادثة مؤقتًا. أضف cache_control إلى كتل المحتوى التي يجب تخزينها مؤقتًا:
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..."}],
)
يتم الإبلاغ عن استخدام التخزين المؤقت في حقل usage ضمن الاستجابة:
  • cache_creation_input_tokens — Tokens التي تمت كتابتها إلى التخزين المؤقت (تُحتسب بسعر أعلى)
  • cache_read_input_tokens — Tokens التي تمت قراءتها من التخزين المؤقت (تُحتسب بسعر مخفّض)
يتطلب تخزين Prompt مؤقتًا حدًا أدنى قدره 1,024 Tokens في كتلة المحتوى المخزنة مؤقتًا. المحتوى الأقصر من ذلك لن يتم تخزينه مؤقتًا.

بث Responses

لبث Responses باستخدام Server-Sent Events (SSE)، اضبط stream: true. تصل الأحداث بهذا الترتيب:
  1. message_start — يحتوي على البيانات الوصفية للرسالة والاستخدام الأولي
  2. content_block_start — يحدد بداية كل كتلة محتوى
  3. content_block_delta — أجزاء نصية تزايدية (text_delta)
  4. content_block_stop — يحدد نهاية كل كتلة محتوى
  5. message_deltastop_reason النهائي وusage الكامل
  6. message_stop — يشير إلى نهاية البث
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="")

التحكم في الجهد

للتحكم في مقدار الجهد الذي يبذله Claude في إنشاء الاستجابة، استخدم output_config.effort:
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"
)

استخدام أدوات الخادم

يدعم Claude أدوات من جهة الخادم تعمل على البنية التحتية الخاصة بـ Anthropic:
اجلب المحتوى من عناوين URL وحلّله:
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}
    ],
)

مثال على الاستجابة

استجابة نموذجية من نقطة نهاية Anthropic في CometAPI:
{
  "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

الميزةAnthropic Messages (/v1/messages)OpenAI-Compatible (/v1/chat/completions)
التفكير الموسّعالمعامل thinking مع budget_tokensغير متاح
تخزين Prompt مؤقتًاcache_control على كتل contentغير متاح
التحكم في الجهدoutput_config.effortغير متاح
Web fetch/searchأدوات الخادم (web_fetch, web_search)غير متاح
ترويسة المصادقةx-api-key أو BearerBearer فقط
تنسيق الاستجابةتنسيق Anthropic (كتل content)تنسيق OpenAI (choices, message)
النماذجClaude فقطمزودون متعددون (GPT, Claude, Gemini, etc.)

التفويضات

x-api-key
string
header
مطلوب

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

الترويسات

anthropic-version
string
افتراضي:2023-06-01

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

مثال:

"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.

الجسم

application/json
model
string
مطلوب

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

مثال:

"claude-sonnet-4-6"

messages
object[]
مطلوب

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
مطلوب

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.

النطاق المطلوب: x >= 1
مثال:

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
افتراضي: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.

النطاق المطلوب: 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.

النطاق المطلوب: 0 <= x <= 1
top_k
integer

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

النطاق المطلوب: x >= 0
stream
boolean
افتراضي: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.

الخيارات المتاحة:
auto,
standard_only

الاستجابة

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.

الخيارات المتاحة:
message
role
enum<string>

Always assistant.

الخيارات المتاحة:
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.

الخيارات المتاحة:
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.