Claude Sonnet 5 چیست؟ آموزش کامل استفاده از API مدل Claude Sonnet 5 در درواره

Claude Sonnet 5 مدلی قدرتمند برای برنامه‌نویسی، ساخت AI Agent، تحلیل اسناد طولانی و اجرای وظایف چندمرحله‌ای است. در این راهنما قابلیت‌ها، محدودیت‌ها و اتصال آن به API درواره را بررسی می‌کنیم.

Share
Claude Sonnet 5 چیست؟ آموزش کامل استفاده از API مدل Claude Sonnet 5 در درواره

مقدمه

Claude Sonnet 5 یکی از جدیدترین مدل‌های خانواده Claude است که برای ایجاد تعادل میان هوشمندی، سرعت و هزینه طراحی شده است. این مدل به‌طور ویژه در برنامه‌نویسی، استفاده از ابزارها، اجرای وظایف چندمرحله‌ای، تحلیل مخازن بزرگ نرم‌افزاری و ساخت AI Agent عملکرد قدرتمندی دارد.

برخلاف مدل‌هایی که بیشتر برای گفت‌وگو یا تولید محتوای ساده ساخته شده‌اند، Claude Sonnet 5 می‌تواند یک هدف پیچیده را به مراحل کوچک‌تر تقسیم کند، از ابزارهایی مانند مرورگر و Terminal استفاده کند، نتیجه هر مرحله را بررسی کند و برای ادامه کار تصمیم بگیرد.

وجود پنجره Context بسیار بزرگ نیز باعث می‌شود بتوان حجم زیادی از کد، مستندات، فایل‌ها یا داده‌های متنی را در یک درخواست یا نشست پردازش کرد.

در این مقاله با موارد زیر آشنا می‌شویم:

  • Claude Sonnet 5 چیست؟
  • چه تفاوتی با مدل‌های قبلی Claude دارد؟
  • برای چه کاربردهایی مناسب است؟
  • پنجره Context یک‌میلیون توکنی چه مزیتی دارد؟
  • چگونه از API مدل در درواره استفاده کنیم؟
  • چگونه یک دستیار برنامه‌نویسی یا AI Agent با آن بسازیم؟
  • چگونه هزینه و مصرف Token را کنترل کنیم؟
  • چه نکاتی برای Prompt نویسی این مدل مهم است؟

Claude Sonnet 5 چیست؟

Claude Sonnet 5 یک مدل زبانی بزرگ یا LLM از خانواده Claude است که بر سه حوزه اصلی تمرکز دارد:

  1. برنامه‌نویسی و مهندسی نرم‌افزار
  2. اجرای وظایف Agentic و چندمرحله‌ای
  3. کار حرفه‌ای با اسناد، داده‌ها و Context طولانی

عبارت Sonnet در خانواده Claude معمولاً به مدلی اشاره دارد که میان قدرت مدل‌های بزرگ‌تر و سرعت مدل‌های سبک‌تر تعادل برقرار می‌کند. بنابراین Sonnet 5 را می‌توان برای بخش بزرگی از پروژه‌های Production انتخاب کرد؛ مخصوصاً زمانی که کیفیت پاسخ مهم است، اما استفاده از سنگین‌ترین مدل موجود برای تمام درخواست‌ها توجیه اقتصادی ندارد.

طبق مستندات رسمی، Claude Sonnet 5 از پنجره Context یک‌میلیون توکنی و حداکثر خروجی ۱۲۸ هزار توکن پشتیبانی می‌کند. همچنین Adaptive Thinking در آن به‌صورت پیش‌فرض فعال است؛ یعنی مدل می‌تواند متناسب با دشواری مسئله تصمیم بگیرد چه میزان پردازش استدلالی انجام دهد. معرفی رسمی Claude Sonnet 5، مستندات فنی Sonnet 5

مشخصات کلیدی Claude Sonnet 5

مشخصهتوضیح
خانواده مدلClaude
دسته‌بندیGeneral، Coding، Reasoning و Agent
ورودیمتن و محتوای چندوجهی پشتیبانی‌شده توسط API
پنجره Contextتا یک‌میلیون Token
حداکثر خروجیتا ۱۲۸ هزار Token
قابلیت استدلالAdaptive Thinking
Tool Useپشتیبانی از ابزارها و Function Calling
کاربردهای اصلیکدنویسی، Agent، تحلیل اسناد، تحقیق و اتوماسیون
مناسب برای Productionبله
Model ID دروارهشناسه دقیق را در صفحه مدل‌های درواره بررسی کنید

فهرست مدل‌ها، Model ID درواره و وضعیت دسترسی ممکن است به‌روزرسانی شود. برای مشاهده اطلاعات قطعی به صفحه مدل‌های درواره مراجعه کنید.

پنجره Context یک‌میلیون توکنی چه معنایی دارد؟

Context Window مقدار اطلاعاتی است که مدل می‌تواند هنگام تولید پاسخ در نظر بگیرد. این اطلاعات شامل موارد زیر است:

  • System Prompt
  • پیام‌های قبلی مکالمه
  • کدهای ارسال‌شده
  • اسناد و داده‌های بازیابی‌شده
  • خروجی ابزارها
  • پاسخ در حال تولید
  • ساختارهای JSON و اطلاعات جانبی درخواست

پنجره Context یک‌میلیون توکنی به این معنا نیست که همیشه باید یک‌میلیون Token برای مدل ارسال کنید. مزیت اصلی آن این است که در پروژه‌های بزرگ، محدودیت فضای پردازش دیرتر به مانع تبدیل می‌شود.

برای مثال، می‌توان موارد زیر را در یک جریان کاری در اختیار مدل قرار داد:

  • چندین فایل از یک پروژه نرم‌افزاری
  • مستندات فنی داخلی
  • قراردادهای API
  • گزارش خطاها و Logها
  • تاریخچه تصمیم‌های معماری
  • خروجی تست‌ها
  • توضیحات مربوط به Feature جدید

بااین‌حال، بزرگ بودن Context جایگزین Context Engineering مناسب نیست. ارسال فایل‌های نامرتبط می‌تواند هزینه، زمان پاسخ و احتمال حواس‌پرتی مدل را افزایش دهد.

مهم‌ترین قابلیت‌های Claude Sonnet 5

۱. برنامه‌نویسی در سطح پروژه

Claude Sonnet 5 فقط برای تولید یک تابع کوتاه ساخته نشده است. این مدل می‌تواند ارتباط میان چند فایل را تحلیل کند و تغییرات هماهنگی در بخش‌های مختلف یک پروژه پیشنهاد دهد.

کاربردهای مناسب آن عبارت‌اند از:

  • پیاده‌سازی Feature جدید
  • بازسازی یا Refactor کد
  • مهاجرت میان نسخه‌های Framework
  • تولید Unit Test و Integration Test
  • تحلیل Stack Trace
  • بررسی Pull Request
  • تولید مستندات فنی
  • شناخت معماری یک Repository
  • تبدیل کد قدیمی به معماری جدید
  • ساخت نمونه اولیه یا MVP

برای دریافت نتیجه بهتر، باید ساختار پروژه، محدودیت‌ها، فرمان اجرای تست و معیار پذیرش را به مدل بدهید.

۲. اجرای وظایف Agentic

در یک AI Agent، مدل فقط متن تولید نمی‌کند؛ بلکه باید تصمیم بگیرد چه کاری انجام شود، ابزار مناسب را انتخاب کند و نتیجه اجرای ابزار را بررسی کند.

Claude Sonnet 5 برای جریان‌هایی مانند موارد زیر مناسب است:

  • جست‌وجو در پایگاه دانش
  • خواندن فایل و تولید گزارش
  • اجرای Query روی سرویس‌های داخلی
  • مدیریت وظایف چندمرحله‌ای
  • تولید و آزمایش کد
  • تحلیل خروجی ابزارها
  • انتخاب ابزار بر اساس هدف کاربر
  • اصلاح برنامه پس از شکست یک مرحله

برای نمونه، یک Agent برنامه‌نویسی ممکن است این مراحل را اجرا کند:

  1. درخواست کاربر را تحلیل کند.
  2. فایل‌های مرتبط را پیدا کند.
  3. وابستگی‌ها را بررسی کند.
  4. تغییرات را طراحی کند.
  5. کد را ویرایش کند.
  6. تست‌ها را اجرا کند.
  7. خطاها را بررسی کند.
  8. تغییرات را اصلاح کند.
  9. گزارش نهایی بسازد.

این همان تفاوت اصلی میان Chatbot ساده و Agent است. Chatbot معمولاً پاسخ می‌دهد، اما Agent برای رسیدن به هدف اقدام می‌کند.

۳. Tool Use و Function Calling

Tool Calling به مدل اجازه می‌دهد به‌جای حدس زدن اطلاعات، یک تابع یا سرویس خارجی را فراخوانی کند.

ابزارهای یک Agent می‌توانند شامل این موارد باشند:

  • جست‌وجوی محصولات
  • استعلام موجودی
  • دریافت وضعیت سفارش
  • جست‌وجو در پایگاه داده
  • خواندن تقویم
  • ایجاد Ticket
  • محاسبه قیمت
  • اجرای کد
  • جست‌وجو در اسناد سازمان
  • فراخوانی APIهای داخلی

مدل باید فقط تصمیم بگیرد کدام ابزار با چه ورودی‌ای اجرا شود. اجرای واقعی ابزار باید در Backend و تحت کنترل برنامه شما انجام شود.

نمونه تعریف مفهومی یک ابزار:

{
  "name": "get_order_status",
  "description": "دریافت وضعیت سفارش با استفاده از شناسه سفارش",
  "parameters": {
    "type": "object",
    "properties": {
      "order_id": {
        "type": "string",
        "description": "شناسه سفارش"
      }
    },
    "required": ["order_id"],
    "additionalProperties": false
  }
}

پس از انتخاب ابزار توسط مدل، Backend باید ورودی را اعتبارسنجی کند، تابع را اجرا کند و نتیجه کنترل‌شده را به مدل برگرداند.

۴. Adaptive Thinking

در Adaptive Thinking مدل متناسب با پیچیدگی درخواست درباره میزان پردازش لازم تصمیم می‌گیرد.

یک درخواست ساده مانند بازنویسی یک عنوان به استدلال عمیق نیاز ندارد؛ اما طراحی معماری یک سامانه چندسرویسی یا پیدا کردن علت یک خطای پیچیده به تحلیل بیشتری نیاز دارد.

این قابلیت می‌تواند در پروژه‌هایی با ترکیبی از درخواست‌های ساده و دشوار مفید باشد، زیرا همه درخواست‌ها مجبور نیستند دقیقاً با یک الگوی ثابت پردازش شوند.

در مهاجرت به Sonnet 5 باید توجه داشت که تنظیم دستی Extended Thinking مربوط به نسخه‌های پیشین ممکن است قابل استفاده نباشد. همچنین مستندات این مدل توصیه می‌کنند پارامترهای Sampling مانند temperature، top_p و top_k با مقدار غیراستاندارد ارسال نشوند؛ زیرا ممکن است درخواست با خطای 400 مواجه شود. راهنمای مهاجرت به Claude Sonnet 5

۵. پردازش خروجی‌های طولانی

حداکثر خروجی ۱۲۸ هزار توکنی برای کارهایی مفید است که پاسخ آن‌ها ممکن است بسیار طولانی باشد؛ مانند:

  • تولید مستندات یک پروژه
  • ایجاد مجموعه‌ای از فایل‌های کد
  • تهیه گزارش تحلیلی بزرگ
  • استخراج داده ساختاریافته از اسناد متعدد
  • تولید برنامه مهاجرت نرم‌افزاری
  • ساخت تست برای چندین ماژول

البته بهتر است خروجی‌های بزرگ را بدون ضرورت درخواست نکنید. خروجی بیشتر به معنی هزینه و زمان پردازش بیشتر است و احتمال قطع شدن پاسخ در لایه‌های شبکه یا برنامه را نیز افزایش می‌دهد.

Claude Sonnet 5 برای چه کسانی مناسب است؟

توسعه‌دهندگان نرم‌افزار

این مدل می‌تواند به‌عنوان موتور یک Coding Assistant، ابزار بررسی کد یا Agent توسعه نرم‌افزار استفاده شود.

تیم‌های محصول

مدل می‌تواند نیازمندی‌ها را تحلیل کند، User Story بسازد، معیار پذیرش پیشنهاد دهد و ارتباط میان نیاز تجاری و تغییر فنی را توضیح دهد.

کسب‌وکارها

برای تحلیل اسناد، خودکارسازی فرایندها، پاسخ‌گویی مبتنی بر دانش سازمانی و طبقه‌بندی درخواست‌ها قابل استفاده است.

تیم‌های داده

Claude Sonnet 5 می‌تواند در تولید SQL، توضیح Schema، بررسی کیفیت داده و ایجاد گزارش تحلیلی کمک کند. Query تولیدشده باید پیش از اجرا اعتبارسنجی شود.

سازندگان AI Agent

توانایی برنامه‌ریزی، Tool Use و Context طولانی، این مدل را برای Agentهایی مناسب می‌کند که باید چند مرحله متوالی را با حفظ وضعیت اجرا کنند.

تفاوت Claude Sonnet 5 با Chatbot آماده

Claude Sonnet 5 یک مدل هوش مصنوعی است. برای استفاده از آن می‌توان مدل را داخل یک محصول، سایت یا Backend فراخوانی کرد.

Chatbot آماده معمولاً یک رابط کاربری نهایی دارد، اما API امکان ساخت محصول اختصاصی را فراهم می‌کند.

با API می‌توانید:

  • رابط کاربری خودتان را طراحی کنید.
  • احراز هویت کاربران را کنترل کنید.
  • مدل را به اطلاعات کسب‌وکار متصل کنید.
  • محدودیت مصرف تعریف کنید.
  • پیام‌ها را ثبت و ارزیابی کنید.
  • چند مدل را در یک محصول به‌کار بگیرید.
  • Fallback و Routing پیاده‌سازی کنید.
  • خروجی را پیش از نمایش اعتبارسنجی کنید.

درواره دسترسی API به مدل‌های هوش مصنوعی را ارائه می‌کند؛ بنابراین منطق برنامه، رابط کاربری و تجربه نهایی محصول توسط تیم شما ساخته می‌شود.

چرا از API درواره استفاده کنیم؟

در یک پروژه واقعی، وابستگی مستقیم به چند API متفاوت می‌تواند مدیریت مدل‌ها را پیچیده کند. هر ارائه‌دهنده ممکن است روش احراز هویت، قالب درخواست و ساختار خطای متفاوتی داشته باشد.

درواره با ارائه یک API سازگار با الگوی OpenAI-Compatible کمک می‌کند مدل‌های مختلف را از یک Base URL فراخوانی کنید:

https://api.darvareh.ir/v1

مزیت‌های این معماری عبارت‌اند از:

  • اتصال ساده‌تر به مدل‌های مختلف
  • کاهش تغییرات موردنیاز در کد
  • امکان آزمایش چند مدل
  • تعویض مدل با تغییر Model ID
  • استفاده آسان‌تر در کتابخانه‌های سازگار
  • طراحی معماری Multi-Model
  • مدیریت متمرکزتر دسترسی API

برای مشاهده مدل‌های فعال و قیمت به‌روز، صفحه مدل‌های درواره را بررسی کنید.

دریافت API Key درواره

برای شروع:

  1. وارد وب‌سایت درواره شوید.
  2. حساب کاربری ایجاد کنید.
  3. از پنل، API Key بسازید.
  4. Model ID درواره را از صفحه مدل‌ها بردارید.
  5. کلید را فقط در Backend یا متغیرهای محیطی نگه دارید.

نمونه متغیر محیطی:

DARVAREH_API_KEY=your_api_key

کلید API نباید در کد Frontend، اپلیکیشن منتشرشده، Repository عمومی یا فایل قابل‌دانلود قرار بگیرد.

آموزش اتصال Claude Sonnet 5 به API درواره با cURL

ابتدا Model ID دقیق را از صفحه مدل‌های درواره کپی کنید:

curl https://api.darvareh.ir/v1/chat/completions \
  -H "Authorization: Bearer $DARVAREH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "MODEL_ID_DARVAREH",
    "messages": [
      {
        "role": "system",
        "content": "You are a senior software architect. Give precise, practical and verifiable answers."
      },
      {
        "role": "user",
        "content": "یک معماری مقیاس‌پذیر برای سرویس پردازش اسناد با FastAPI و PostgreSQL طراحی کن."
      }
    ],
    "max_tokens": 4000
  }'

مقدار MODEL_ID_DARVAREH را با Model ID درواره جایگزین کنید.

در این مثال عمداً پارامترهایی مانند temperature ارسال نشده‌اند؛ زیرا تنظیم غیراستاندارد بعضی پارامترهای Sampling در Sonnet 5 می‌تواند با محدودیت مدل مواجه شود.

اتصال با Python

ابتدا کتابخانه موردنیاز را نصب کنید:

pip install openai

سپس Base URL را روی API درواره تنظیم کنید:

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["DARVAREH_API_KEY"],
    base_url="https://api.darvareh.ir/v1"
)

response = client.chat.completions.create(
    model="MODEL_ID_DARVAREH",
    messages=[
        {
            "role": "system",
            "content": (
                "You are a senior Python engineer. "
                "Return production-oriented code and explain important trade-offs."
            )
        },
        {
            "role": "user",
            "content": (
                "یک نمونه FastAPI برای دریافت فایل، استخراج متن "
                "و ذخیره نتیجه در PostgreSQL طراحی کن."
            )
        }
    ],
    max_tokens=5000
)

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

در محیط Production بهتر است Timeout، Retry محدود، ثبت مصرف Token و مدیریت خطا نیز اضافه شود.

پیاده‌سازی نمونه با FastAPI

import os

from fastapi import FastAPI, HTTPException
from openai import OpenAI
from pydantic import BaseModel, Field

app = FastAPI()

client = OpenAI(
    api_key=os.environ["DARVAREH_API_KEY"],
    base_url="https://api.darvareh.ir/v1",
    timeout=90.0,
    max_retries=2
)


class ChatRequest(BaseModel):
    message: str = Field(min_length=1, max_length=20000)


class ChatResponse(BaseModel):
    answer: str


@app.post("/api/chat", response_model=ChatResponse)
def chat(payload: ChatRequest) -> ChatResponse:
    try:
        response = client.chat.completions.create(
            model="MODEL_ID_DARVAREH",
            messages=[
                {
                    "role": "system",
                    "content": (
                        "You are a Persian technical assistant. "
                        "Answer accurately and do not invent missing facts. "
                        "Clearly label assumptions."
                    )
                },
                {
                    "role": "user",
                    "content": payload.message
                }
            ],
            max_tokens=3000
        )

        answer = response.choices[0].message.content

        if not answer:
            raise HTTPException(
                status_code=502,
                detail="The model returned an empty response."
            )

        return ChatResponse(answer=answer)

    except HTTPException:
        raise
    except Exception as exc:
        raise HTTPException(
            status_code=502,
            detail="AI service request failed."
        ) from exc

در نسخه واقعی، باید Rate Limit، احراز هویت کاربر، ثبت خطا و محدودیت بودجه نیز به این Endpoint اضافه شود.

استفاده در Node.js و TypeScript

ابتدا SDK را نصب کنید:

npm install openai

نمونه فراخوانی:

import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.DARVAREH_API_KEY,
  baseURL: "https://api.darvareh.ir/v1",
});

async function generateAnswer(question: string) {
  const response = await client.chat.completions.create({
    model: "MODEL_ID_DARVAREH",
    messages: [
      {
        role: "system",
        content:
          "You are a senior TypeScript developer. Produce maintainable code and state your assumptions.",
      },
      {
        role: "user",
        content: question,
      },
    ],
    max_tokens: 4000,
  });

  return response.choices[0]?.message?.content ?? "";
}

generateAnswer(
  "یک سرویس NestJS برای پردازش Jobهای پس‌زمینه با Redis طراحی کن."
)
  .then(console.log)
  .catch(console.error);

API Key باید در متغیر محیطی سرور قرار بگیرد و نباید از کد Client-Side فراخوانی شود.

ساخت دستیار تحلیل کد با Claude Sonnet 5

یک دستیار تحلیل کد حرفه‌ای باید اطلاعات را ساختاریافته دریافت کند. ارسال کل Repository در هر درخواست معمولاً روش مناسبی نیست.

جریان پیشنهادی:

  1. ساختار فایل‌ها را استخراج کنید.
  2. فایل‌های مرتبط با درخواست را انتخاب کنید.
  3. وابستگی‌های مستقیم را اضافه کنید.
  4. دستور اجرای تست را مشخص کنید.
  5. معیار پذیرش تعریف کنید.
  6. تغییرات پیشنهادی را از مدل بخواهید.
  7. Patch را در محیط ایزوله اعمال کنید.
  8. تست‌ها را اجرا کنید.
  9. نتیجه تست را برای اصلاح بعدی به مدل بدهید.

نمونه Prompt:

نقش:
تو یک Senior Backend Engineer متخصص Python و FastAPI هستی.

هدف:
علت ایجاد Connection Leak در سرویس را پیدا کن و کمترین تغییر لازم را پیشنهاد بده.

اطلاعات پروژه:
- Python 3.13
- FastAPI
- SQLAlchemy 2
- PostgreSQL
- اجرای برنامه با Uvicorn

فایل‌های مرتبط:
[محتوای فایل‌ها]

خطای مشاهده‌شده:
[Stack Trace]

محدودیت‌ها:
- API عمومی نباید تغییر کند.
- کتابخانه جدید اضافه نشود.
- تغییر Schema مجاز نیست.
- پاسخ باید شامل Patch و تست باشد.

معیار پذیرش:
- تمام تست‌های فعلی عبور کنند.
- اتصال دیتابیس پس از هر Request آزاد شود.
- یک تست Regression اضافه شود.

خروجی:
1. علت اصلی
2. شواهد
3. Patch پیشنهادی
4. تست
5. ریسک‌های تغییر

این ساختار از درخواست مبهمی مانند «این کد را درست کن» نتیجه بسیار بهتری تولید می‌کند.

ساخت Agent با حلقه Tool Calling

معماری ساده یک Agent شامل چهار بخش است:

  • مدل
  • ابزارها
  • حلقه اجرا
  • حافظه یا State

منطق کلی Agent:

MAX_STEPS = 8

messages = [
    {
        "role": "system",
        "content": (
            "Complete the user's task using the available tools. "
            "Do not claim success unless tool results confirm it."
        )
    },
    {
        "role": "user",
        "content": "وضعیت سفارش 7842 را بررسی و خلاصه کن."
    }
]

for step in range(MAX_STEPS):
    response = call_model(
        model="MODEL_ID_DARVAREH",
        messages=messages,
        tools=available_tools
    )

    message = response.choices[0].message
    messages.append(message)

    if not message.tool_calls:
        final_answer = message.content
        break

    for tool_call in message.tool_calls:
        result = execute_validated_tool(tool_call)

        messages.append({
            "role": "tool",
            "tool_call_id": tool_call.id,
            "content": serialize_tool_result(result)
        })
else:
    final_answer = "Agent stopped because the maximum step count was reached."

برای Production این موارد را نیز اضافه کنید:

  • محدودیت تعداد مراحل
  • Timeout کلی Agent
  • اعتبارسنجی آرگومان ابزار
  • محدودیت حجم خروجی ابزار
  • ثبت Trace هر مرحله
  • جلوگیری از اجرای تکراری
  • بودجه Token و هزینه
  • کنترل دسترسی ابزارها
  • Human Approval برای عملیات حساس یا غیرقابل‌بازگشت

الگوی مناسب Prompt نویسی برای Claude Sonnet 5

هدف را صریح تعریف کنید

به‌جای:

این پروژه را بررسی کن.

بنویسید:

این پروژه را از نظر ساختار ماژول‌ها، وابستگی‌های چرخشی و قابلیت تست بررسی کن.
در پایان، سه تغییر با بیشترین اثر و کمترین ریسک را پیشنهاد بده.

معیار پایان کار بدهید

Agent باید بداند چه زمانی وظیفه کامل شده است:

کار زمانی کامل است که:
- Endpoint جدید پیاده‌سازی شده باشد.
- تست موفق و ناموفق اضافه شده باشد.
- مستندات API به‌روزرسانی شده باشد.
- هیچ تست قبلی شکست نخورد.

نتیجه مورد انتظار را مشخص کنید

پاسخ را با این ساختار تولید کن:
1. خلاصه تصمیم
2. فرضیات
3. فایل‌های درگیر
4. تغییرات پیشنهادی
5. کد
6. تست
7. ریسک‌ها

مدل را به بررسی شواهد ملزم کنید

هر ادعا درباره علت خطا باید به فایل، تابع، Log یا نتیجه تست مشخصی متصل باشد.
اگر شواهد کافی نیست، آن را به‌عنوان فرضیه علامت‌گذاری کن.

برای کارهای طولانی Checkpoint تعریف کنید

ابتدا فقط برنامه اجرا را تولید کن.
پس از دریافت تأیید برنامه، مراحل را یکی‌یکی انجام بده.
در پایان هر مرحله، نتیجه و مرحله بعدی را گزارش کن.

در یک Agent خودکار، تأیید می‌تواند توسط Policy Engine برنامه شما انجام شود و لزوماً نیازمند دخالت دستی در تمام مراحل نیست.

استفاده از Claude Sonnet 5 در RAG

در Retrieval-Augmented Generation یا RAG، ابتدا اطلاعات مرتبط از پایگاه دانش بازیابی و سپس همراه درخواست برای مدل ارسال می‌شود.

حتی با وجود Context یک‌میلیون توکنی، RAG همچنان اهمیت دارد؛ زیرا:

  • اسناد نامرتبط حذف می‌شوند.
  • هزینه ورودی کاهش پیدا می‌کند.
  • اطلاعات تازه در اختیار مدل قرار می‌گیرد.
  • می‌توان منبع هر پاسخ را مشخص کرد.
  • مدیریت سطح دسترسی اسناد ساده‌تر می‌شود.
  • ارزیابی پاسخ قابل‌اندازه‌گیری‌تر خواهد بود.

جریان مناسب RAG:

  1. دریافت سؤال
  2. بازنویسی Query در صورت نیاز
  3. اجرای Hybrid Search
  4. Rerank نتایج
  5. انتخاب بخش‌های مرتبط
  6. ساخت Context همراه شناسه منبع
  7. فراخوانی Claude Sonnet 5
  8. اعتبارسنجی Citationها
  9. نمایش پاسخ

نمونه System Prompt:

فقط بر اساس منابع ارائه‌شده پاسخ بده.

قوانین:
- برای هر ادعای مهم شناسه منبع را ذکر کن.
- اگر پاسخ در منابع وجود ندارد، صریحاً بگو اطلاعات کافی نیست.
- اطلاعات منابع مختلف را بدون مشخص کردن تعارض ترکیب نکن.
- پاسخ را به فارسی روان بنویس.

مدیریت Context طولانی

پنجره بزرگ می‌تواند باعث این تصور اشتباه شود که باید همه اطلاعات موجود را به مدل ارسال کرد. روش بهتر، ساخت Context لایه‌بندی‌شده است.

لایه اول: دستورهای پایدار

شامل نقش، سیاست‌ها و قالب خروجی.

لایه دوم: وضعیت فعلی کار

شامل هدف، برنامه، مراحل انجام‌شده و تصمیم‌های قبلی.

لایه سوم: اطلاعات بازیابی‌شده

فقط فایل‌ها، اسناد و داده‌های مرتبط با درخواست فعلی.

لایه چهارم: خروجی ابزارها

نتیجه ابزارها با ساختار کوتاه و قابل‌پردازش.

لایه پنجم: خلاصه تاریخچه

به‌جای نگهداری تمام پیام‌های قدیمی، بخش‌های کم‌اهمیت را خلاصه کنید.

این معماری معمولاً از ارسال یک تاریخچه بسیار طولانی، ارزان‌تر و قابل‌کنترل‌تر است.

خروجی ساختاریافته

در کاربردهای نرم‌افزاری، متن آزاد همیشه انتخاب مناسبی نیست. اگر خروجی قرار است توسط برنامه پردازش شود، ساختار JSON مشخصی تعریف کنید.

نمونه Schema مفهومی برای بررسی کد:

{
  "summary": "string",
  "risk_level": "low | medium | high",
  "issues": [
    {
      "file": "string",
      "line": 0,
      "title": "string",
      "explanation": "string",
      "suggested_fix": "string"
    }
  ]
}

سپس در Prompt مشخص کنید:

پاسخ باید فقط مطابق Schema تعیین‌شده تولید شود.
فیلد ناشناخته اضافه نکن.
اگر شماره خط مشخص نیست، مقدار line را صفر قرار بده.

در Backend نیز خروجی را با JSON Schema یا مدل Pydantic اعتبارسنجی کنید. Prompt به‌تنهایی تضمین قطعی برای معتبر بودن داده نیست.

مدیریت خطا و Retry

هر خطای API نباید به Retry فوری منجر شود.

خطاهای موقت

خطاهای موقت شبکه، Timeout یا محدودیت لحظه‌ای ظرفیت ممکن است با Retry محدود حل شوند.

برای این خطاها از Exponential Backoff همراه Jitter استفاده کنید:

تلاش اول: بدون تأخیر
تلاش دوم: حدود ۱ ثانیه
تلاش سوم: حدود ۲ ثانیه
تلاش چهارم: حدود ۴ ثانیه

تعداد تلاش‌ها باید محدود باشد.

خطاهای درخواست

خطاهای مربوط به موارد زیر معمولاً با Retry حل نمی‌شوند:

  • Model ID اشتباه
  • API Key نامعتبر
  • Context بیش از حد
  • پارامتر پشتیبانی‌نشده
  • JSON نامعتبر
  • مجوز ناکافی

در این حالت، باید درخواست اصلاح شود.

خطاهای خروجی

ممکن است پاسخ از نظر شبکه موفق باشد، اما ساختار مورد انتظار را نداشته باشد. در این شرایط:

  1. خروجی را اعتبارسنجی کنید.
  2. خطای Validation را ثبت کنید.
  3. یک درخواست اصلاح محدود ارسال کنید.
  4. پس از تعداد مشخصی تلاش، فرایند را متوقف کنید.

کنترل هزینه Claude Sonnet 5

قیمت مدل‌ها ممکن است تغییر کند؛ بنابراین اعداد ثابت قیمت را مبنای طراحی بلندمدت قرار ندهید. قیمت به‌روز و Model ID درواره را در صفحه مدل‌ها ببینید.

برای کاهش هزینه:

ورودی‌های تکراری را حذف کنید

هر پیام، فایل یا سند نامرتبط باعث افزایش Token ورودی می‌شود.

خروجی را محدود کنید

برای پاسخ کوتاه، max_tokens بسیار بزرگ تعیین نکنید.

مدل را بر اساس دشواری انتخاب کنید

تمام درخواست‌ها به Sonnet 5 نیاز ندارند. درخواست‌های ساده را می‌توان به مدل اقتصادی‌تر و وظایف پیچیده را به Sonnet 5 هدایت کرد.

از RAG استفاده کنید

به‌جای ارسال تمام پایگاه دانش، فقط بخش‌های مرتبط را بازیابی کنید.

مکالمات طولانی را خلاصه کنید

پیام‌های قدیمی کم‌اهمیت را به یک State ساختاریافته تبدیل کنید.

مصرف را برای هر کاربر ثبت کنید

حداقل این اطلاعات را نگه دارید:

  • Model ID
  • Input Token
  • Output Token
  • زمان پاسخ
  • وضعیت درخواست
  • تعداد Retry
  • شناسه کاربر یا پروژه
  • نوع وظیفه

بودجه Agent تعریف کنید

برای هر اجرای Agent محدودیت قرار دهید:

  • حداکثر تعداد مراحل
  • حداکثر زمان
  • حداکثر Tool Call
  • حداکثر Token
  • حداکثر هزینه تخمینی

چه زمانی Claude Sonnet 5 انتخاب مناسبی نیست؟

Sonnet 5 لزوماً برای تمام درخواست‌ها بهترین انتخاب اقتصادی نیست.

برای این کارها ممکن است یک مدل سبک‌تر کافی باشد:

  • طبقه‌بندی ساده متن
  • استخراج چند فیلد مشخص
  • بازنویسی عنوان
  • تشخیص زبان
  • پاسخ‌های قالبی
  • خلاصه‌سازی کوتاه
  • پردازش تعداد بسیار زیاد درخواست‌های کم‌پیچیدگی

همچنین برای کارهایی که به بالاترین سطح ممکن از استدلال نیاز دارند، باید Sonnet 5 را در کنار مدل‌های رده بالاتر با داده واقعی پروژه Benchmark کنید.

انتخاب مدل باید بر اساس چهار معیار انجام شود:

  • کیفیت
  • Latency
  • هزینه
  • نرخ موفقیت واقعی در وظیفه

مقایسه Sonnet 5 با مدل سبک و مدل رده‌بالا

معیارمدل سبکClaude Sonnet 5مدل رده‌بالا
سرعتبسیار بالامتعادلمعمولاً کمتر
هزینهپایینمتوسطبالا
کدنویسی پیچیدهمحدودتربسیار مناسببسیار مناسب
Agent چندمرحله‌ایمناسب کارهای سادهبسیار مناسبمناسب پیچیده‌ترین وظایف
تحلیل Context طولانیوابسته به مدلتا یک‌میلیون Tokenوابسته به مدل
مصرف انبوهمناسبنیازمند Routingمعمولاً پرهزینه
تعادل کیفیت و هزینهخوب برای کار سادهبسیار خوب برای کار حرفه‌ایمناسب درخواست‌های دشوار

این جدول یک مقایسه معماری است، نه نتیجه قطعی Benchmark. برای تصمیم Production باید از داده‌های واقعی خودتان استفاده کنید.

طراحی Model Routing با Claude Sonnet 5

در معماری Multi-Model می‌توان درخواست‌ها را بر اساس پیچیدگی هدایت کرد.

نمونه سیاست Routing:

def select_model(task):
    if task.type in {"classification", "short_rewrite"}:
        return "ECONOMICAL_MODEL_ID"

    if task.requires_repository_context:
        return "CLAUDE_SONNET_5_MODEL_ID"

    if task.is_agentic and task.estimated_steps > 3:
        return "CLAUDE_SONNET_5_MODEL_ID"

    if task.requires_maximum_reasoning:
        return "FRONTIER_MODEL_ID"

    return "DEFAULT_MODEL_ID"

Router بهتر است فقط به طول Prompt وابسته نباشد. یک درخواست کوتاه می‌تواند بسیار دشوار و یک درخواست بلند می‌تواند صرفاً خلاصه‌سازی ساده باشد.

ارزیابی Claude Sonnet 5 پیش از Production

پیش از انتخاب مدل، یک مجموعه آزمایش واقعی بسازید.

برای Coding Assistant می‌توان این شاخص‌ها را اندازه گرفت:

  • درصد تست‌های موفق
  • نرخ Patch قابل‌اعمال
  • تعداد خطاهای جدید
  • میزان دخالت توسعه‌دهنده
  • زمان رسیدن به پاسخ نهایی
  • هزینه هر وظیفه موفق
  • تعداد مراحل Agent
  • نرخ ادعاهای بدون شواهد

برای RAG:

  • صحت پاسخ
  • صحت ارجاع به منبع
  • Recall بازیابی
  • نرخ پاسخ‌های بدون پشتوانه
  • هزینه هر سؤال
  • Latency صدک ۹۵

برای استخراج داده:

  • Schema Validity
  • دقت هر فیلد
  • نرخ فیلدهای ازدست‌رفته
  • نرخ داده ساختگی
  • هزینه هر سند

مدلی که در Benchmark عمومی رتبه بالاتری دارد، الزاماً در داده فارسی یا فرایند اختصاصی شما بهترین نتیجه را نمی‌دهد.

نکات مهم برای زبان فارسی

برای استفاده حرفه‌ای از Claude Sonnet 5 در فارسی:

  • زبان پاسخ را صریحاً مشخص کنید.
  • نمونه خروجی فارسی ارائه دهید.
  • واژه‌های فنی فارسی و English را طبیعی ترکیب کنید.
  • نوع اعداد، تاریخ و واحد پول را تعیین کنید.
  • برای لحن برند مثال واقعی بدهید.
  • خروجی را از نظر نیم‌فاصله و نشانه‌گذاری پردازش کنید.
  • کیفیت مدل را با داده فارسی واقعی ارزیابی کنید.

نمونه Prompt:

پاسخ را به فارسی روان و حرفه‌ای بنویس.

قواعد نگارشی:
- اصطلاحات شناخته‌شده را به‌صورت فارسی و English استفاده کن؛
  مانند توکن (Token) و پرامپت (Prompt).
- از ترجمه تحت‌اللفظی اصطلاحات برنامه‌نویسی خودداری کن.
- کد، نام متغیرها و Model ID را تغییر نده.
- برای هر بخش عنوان کوتاه بنویس.

اشتباهات رایج هنگام استفاده از Claude Sonnet 5

ارسال کل اطلاعات بدون انتخاب

Context بزرگ مجوزی برای ارسال داده نامرتبط نیست.

نداشتن معیار پایان

Agent بدون Stop Condition ممکن است مراحل اضافی اجرا کند یا در یک حلقه تکراری بماند.

اعتماد مستقیم به کد تولیدشده

کد باید تست، Lint، Type Check و بازبینی شود.

قراردادن API Key در Frontend

این کار می‌تواند باعث افشای کلید و مصرف غیرمجاز شود.

استفاده از Retry نامحدود

Retry نامحدود هزینه را افزایش می‌دهد و ممکن است بار بیشتری بر سامانه وارد کند.

فعال کردن ابزارهای غیرضروری

هر Agent فقط باید به ابزارهای موردنیاز همان وظیفه دسترسی داشته باشد.

ثابت کردن قیمت در کد

قیمت و دسترسی مدل‌ها ممکن است تغییر کند. اطلاعات به‌روز را از صفحه مدل‌های درواره دریافت کنید.

ارسال پارامترهای ناسازگار

هنگام مهاجرت به Sonnet 5، تنظیمات مربوط به Thinking و Sampling نسخه‌های قبلی را بدون بررسی منتقل نکنید.

پرسش‌های متداول

Claude Sonnet 5 چیست؟

Claude Sonnet 5 یک مدل هوش مصنوعی برای برنامه‌نویسی، Agent، تحلیل اسناد و انجام کارهای حرفه‌ای چندمرحله‌ای است که تعادلی میان کیفیت، سرعت و هزینه ارائه می‌دهد.

پنجره Context مدل چقدر است؟

طبق مستندات رسمی، Claude Sonnet 5 از پنجره Context یک‌میلیون توکنی پشتیبانی می‌کند.

حداکثر خروجی آن چقدر است؟

حداکثر خروجی اعلام‌شده برای این مدل ۱۲۸ هزار Token است.

آیا Claude Sonnet 5 برای کدنویسی مناسب است؟

بله. Coding و وظایف Agentic از مهم‌ترین کاربردهای آن هستند. بااین‌حال، کد تولیدشده باید در محیط ایزوله آزمایش و بازبینی شود.

آیا می‌توان با آن AI Agent ساخت؟

بله. این مدل می‌تواند برای برنامه‌ریزی، انتخاب ابزار، Function Calling و مدیریت وظایف چندمرحله‌ای استفاده شود.

آیا برای RAG مناسب است؟

بله. Context بزرگ و توانایی تحلیل اسناد، آن را برای RAG مناسب می‌کند؛ اما همچنان باید Retrieval، Reranking و ارزیابی منابع را به‌درستی پیاده‌سازی کرد.

آیا Adaptive Thinking به‌صورت پیش‌فرض فعال است؟

طبق مستندات نسخه، Adaptive Thinking در Claude Sonnet 5 به‌صورت پیش‌فرض فعال است.

آیا می‌توان temperature را تغییر داد؟

مستندات Sonnet 5 اعلام می‌کنند ارسال مقادیر غیراستاندارد برای برخی پارامترهای Sampling مانند temperature، top_p و top_k ممکن است خطای 400 ایجاد کند. بهتر است این پارامترها را حذف و رفتار مدل را با Prompt کنترل کنید.

Model ID درواره چیست؟

برای جلوگیری از استفاده از شناسه قدیمی یا اشتباه، Model ID درواره را مستقیماً از صفحه مدل‌ها کپی کنید.

قیمت API مدل چقدر است؟

قیمت‌ها ممکن است تغییر کنند. آخرین قیمت Claude Sonnet 5 را در صفحه مدل‌های درواره ببینید.

آیا درواره Chatbot آماده ارائه می‌کند؟

درواره دسترسی API مدل‌های هوش مصنوعی را ارائه می‌کند. رابط کاربری، Backend و محصول نهایی توسط توسعه‌دهنده یا کسب‌وکار ساخته می‌شود.

آیا API Key را می‌توان در React یا JavaScript مرورگر قرار داد؟

خیر. API Key باید فقط در Backend نگه‌داری شود و Frontend باید از طریق Endpoint کنترل‌شده برنامه شما درخواست ارسال کند.

جمع‌بندی

Claude Sonnet 5 یک مدل قدرتمند برای کدنویسی، ساخت AI Agent، تحلیل مخازن نرم‌افزاری، پردازش اسناد طولانی و اجرای وظایف چندمرحله‌ای است. پنجره Context یک‌میلیون توکنی، خروجی حداکثر ۱۲۸ هزار توکنی، Tool Use و Adaptive Thinking آن را به گزینه‌ای جدی برای برنامه‌های حرفه‌ای تبدیل می‌کنند.

بااین‌حال، کیفیت مدل به‌تنهایی یک سامانه Production نمی‌سازد. برای استفاده مطمئن باید Context را مدیریت کنید، ابزارها را محدود نگه دارید، خروجی را اعتبارسنجی کنید، هزینه را اندازه بگیرید و عملکرد مدل را با داده‌های واقعی کسب‌وکار بسنجید.

برای مشاهده Model ID درواره، قیمت به‌روز و مدل‌های در دسترس به صفحه مدل‌های درواره مراجعه کنید. سپس با ثبت‌نام در درواره، API Key خود را دریافت کرده و مدل را از طریق Base URL زیر به Backend پروژه متصل کنید:

https://api.darvareh.ir/v1

مقالات مرتبط

Read more

اتوماسیون هوش مصنوعی چیست؟ کاربردها و آموزش ساخت AI Automation

اتوماسیون هوش مصنوعی چیست؟ کاربردها و آموزش ساخت AI Automation

اتوماسیون هوش مصنوعی با ترکیب گردش‌کارهای خودکار و مدل‌های هوش مصنوعی، پردازش متن، دسته‌بندی، استخراج اطلاعات و تصمیم‌های پیشنهادی را خودکار می‌کند. در این راهنما، معماری و ساخت نمونه عملی آن با API درواره را می‌آموزید.

Agentic Commerce چیست؟ آینده خرید با ایجنت هوش مصنوعی

Agentic Commerce چیست؟ آینده خرید با ایجنت هوش مصنوعی

Agentic Commerce شیوه‌ای جدید برای خرید اینترنتی است که در آن ایجنت هوش مصنوعی می‌تواند نیاز کاربر را بفهمد، محصولات را جست‌وجو و مقایسه کند و فرایند خرید را پیش ببرد. در این راهنما با معماری، UCP، ACP و پیاده‌سازی آن با API درواره آشنا می‌شوید.