النص

إنشاء رسالة

ينشئ رسالة باستخدام تنسيق Anthropic Messages API

POST
/v1/messages

نظرة عامة

توفّر هذه النقطة الطرفية توافقًا أصليًا مع Anthropic Messages API. استخدم هذا مع نماذج Claude وميزات مثل التفكير الممتد.

يحافظ هذا المسار على عقد Anthropic الأصلي. يجب أن تكون messages مصفوفة رسائل بأدوار user / assistant فقط، ويجب وضع system في الحقل العلوي system، كما أن max_tokens مطلوب. إذا كانت حمولة الطلب تستخدم أدوار OpenAI مثل system أو developer أو tool داخل messages، فأرسلها إلى /v1/chat/completions بدلًا من ذلك.

عنوان URL الأساسي لـ Anthropic SDK: https://api.tokenlab.sh (بدون اللاحقة /v1)

ترويسات الطلب

x-api-keystringheader

مفتاح TokenLab API الخاص بك. أرسله عبر x-api-key أو Authorization: Bearer <API_KEY>.

anthropic-versionstringheaderمطلوب

إصدار Anthropic API. استخدم 2023-06-01.

جسم الطلب

يعتمد دعم المعلمات الاختيارية والقيم المقبولة والقيم الافتراضية على النموذج المختار. راجع تفاصيل النموذج قبل ضبط خيارات أخذ العينات أو الاستدلال أو الأدوات.

modelstringمطلوب

معرّف نموذج يدعم تنسيق anthropic_messages. راجع تفاصيل النموذج لمعرفة قدراته الحالية.

messagesarrayمطلوب

مصفوفة من كائنات الرسائل تحتوي على role و content.

max_tokensintegerمطلوب

الحد الأقصى لعدد الـ tokens المطلوب إنشاؤها.

systemstring | array

تعليمة النظام كسلسلة نصية أو مصفوفة من كتل المحتوى، منفصلة عن مصفوفة messages.

temperaturenumber

درجة حرارة أخذ العينات. يعتمد الدعم والقيم المسموح بها والقيمة الافتراضية على النموذج المختار. احذف هذا الحقل لاستخدام القيمة الافتراضية للنموذج.

streambooleanالافتراضي: false

تمكين الاستجابات المتدفقة.

thinkingobject

إعدادات thinking الأصلية. تعتمد الأوضاع والميزانيات المدعومة والتوافق مع المعلمات الأخرى على النموذج المختار.

toolsarray

الأدوات المتاحة للنموذج.

tool_choiceobject

كائن اختيار الأدوات الأصلي، مثل {"type":"auto"}. تعتمد الأنواع المدعومة على النموذج المختار.

top_pnumber

معلمة Nucleus sampling. استخدم إما temperature أو top_p، وليس كليهما.

top_kinteger

أخذ العينات فقط من أعلى K خيارات لكل token.

stop_sequencesarray

تسلسلات إيقاف مخصصة ستؤدي إلى توقف النموذج عن التوليد.

metadataobject

بيانات وصفية لإرفاقها بالطلب لأغراض التتبع.

الاستجابة

idstring

معرّف فريد للرسالة.

typestring

دائمًا message.

rolestring

دائمًا assistant.

contentarray

مصفوفة من كتل المحتوى، مثل text أو thinking أو tool_use.

modelstring

النموذج المستخدم.

stop_reasonstring

سبب توقف التوليد، مثل end_turn أو max_tokens أو stop_sequence أو tool_use.

usageobject

استخدام الـ tokens مع input_tokens و output_tokens.

الطلب

curl -X POST "https://api.tokenlab.sh/v1/messages" \
  -H "x-api-key: sk-your-api-key" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-5",
    "max_tokens": 1024,
    "system": "You are a helpful assistant.",
    "messages": [
      {"role": "user", "content": "Hello, Claude!"}
    ]
  }'

الاستجابة

Response
{
  "id": "msg_abc123",
  "type": "message",
  "role": "assistant",
  "content": [
    {
      "type": "text",
      "text": "Hello! How can I help you today?"
    }
  ],
  "model": "claude-sonnet-5",
  "stop_reason": "end_turn",
  "usage": {
    "input_tokens": 15,
    "output_tokens": 10
  }
}

مثال على إدخال الرؤية

بالنسبة إلى نماذج Claude التي تدعم الرؤية، ضع الصور داخل messages[].content ككتل صور مُنظَّمة.

{
  "model": "claude-sonnet-5",
  "max_tokens": 1024,
  "messages": [
    {
      "role": "user",
      "content": [
        {
          "type": "text",
          "text": "Please describe this image."
        },
        {
          "type": "image",
          "source": {
            "type": "url",
            "url": "https://example.com/demo.jpg"
          }
        }
      ]
    }
  ]
}
{
  "model": "claude-sonnet-5",
  "max_tokens": 1024,
  "messages": [
    {
      "role": "user",
      "content": [
        {
          "type": "text",
          "text": "Please describe this image."
        },
        {
          "type": "image",
          "source": {
            "type": "base64",
            "media_type": "image/jpeg",
            "data": "/9j/4AAQSkZJRgABAQ..."
          }
        }
      ]
    }
  ]
}

مثال على التفكير الممتد

عيّن TOKENLAB_THINKING_MODEL إلى نموذج يدعم التفكير اليدوي باستخدام type: "enabled" وbudget_tokens. اضبط ميزانيتي التوكنات وفق حدود ذلك النموذج. قد تتطلب النماذج الأخرى إعدادات thinking مختلفة.

import os
from anthropic import Anthropic

client = Anthropic(
    api_key="sk-your-api-key",
    base_url="https://api.tokenlab.sh"
)

message = client.messages.create(
    model=os.environ["TOKENLAB_THINKING_MODEL"],
    max_tokens=16000,
    thinking={
        "type": "enabled",
        "budget_tokens": 10000
    },
    messages=[{"role": "user", "content": "Solve this math problem..."}]
)

for block in message.content:
    if block.type == "thinking":
        print(f"Thinking: {block.thinking}")
    elif block.type == "text":
        print(f"Response: {block.text}")

دفعات رسائل Anthropic

يوفّر TokenLab الآن تدفق Anthropic Message Batches الأصلي إلى جانب /v1/messages.

المسارات المتاحة:

  • POST /v1/messages/batches
  • GET /v1/messages/batches
  • GET /v1/messages/batches/:message_batch_id
  • GET /v1/messages/batches/:message_batch_id/results
  • POST /v1/messages/batches/:message_batch_id/cancel
  • DELETE /v1/messages/batches/:message_batch_id

ملاحظات تشغيلية:

  • استخدم نفس مفتاح TokenLab API مع ترويسات Anthropic الأصلية.
  • إذا كانت عناصر الـ batch تشير إلى file_id، فأضف أيضًا anthropic-beta: files-api-2025-04-14.
  • تحافظ مهام الـ batch على شكل الطلب/الاستجابة الأصلي لـ Anthropic، بينما يتتبع TokenLab داخليًا دورة التسوية الخاصة بها.

التفويض

BearerAuth
AuthorizationBearer <token>

مصادقة مفتاح API. قم بإنشاء أو إدارة مفاتيح API في Dashboard > API > API Keys.

الموضع: header

الترويسات

X-TokenLab-Delivery-Policy?string

سياسة التسليم لكل طلب. تتجاوز إعدادات API key و Workspace الافتراضية. يحاول النظام تلقائياً استخدام TokenLab Verified أولاً، وقد ينتقل مرة واحدة إلى Official فقط قبل المخرجات، أو قبول الطلب، أو إنشاء مورد دائم.

القيم المتاحة

  • "auto"
  • "verified"
  • "official"

جسم الطلب

application/json

الاستجابة

application/json

application/json

application/json

application/json

application/json

application/json