Mistral Small 4 چیست؟ بررسی کامل مدل چندوجهی، Reasoning، Coding و آموزش API درواره

Mistral Small 4 مدلی چندوجهی و اقتصادی برای گفت‌وگو، استدلال، کدنویسی، تحلیل تصویر و AI Agent است. در این راهنما مشخصات، کاربردها و اتصال آن به API درواره را بررسی می‌کنیم.

Share
Mistral Small 4 چیست؟ بررسی کامل مدل چندوجهی، Reasoning، Coding و آموزش API درواره

مقدمه

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

Mistral Small 4 با همین رویکرد طراحی شده است. این مدل قابلیت‌های گفت‌وگو، استدلال، برنامه‌نویسی، تحلیل تصویر و اجرای وظایف Agentic را در یک مدل واحد ترکیب می‌کند.

در نتیجه می‌توان از Mistral Small 4 برای کاربردهای متنوعی استفاده کرد:

  • ساخت دستیار هوشمند فارسی
  • پاسخ‌گویی بر اساس اسناد
  • تولید و تحلیل کد
  • ساخت AI Agent
  • Function Calling
  • استخراج اطلاعات ساختاریافته
  • تحلیل عکس و Screenshot
  • پردازش اسناد طولانی
  • طبقه‌بندی و خلاصه‌سازی
  • تولید محتوای متنی
  • Routing درخواست‌های روزمره

پنجره Context بزرگ، معماری Mixture of Experts و امکان تنظیم میزان Reasoning باعث شده‌اند Mistral Small 4 برای توسعه‌دهندگانی جذاب باشد که به‌دنبال تعادل میان کیفیت، سرعت و هزینه هستند.

در این مقاله، مشخصات فنی، کاربردها، محدودیت‌ها، الگوهای Prompt نویسی و نحوه استفاده از Mistral Small 4 با API درواره را بررسی می‌کنیم.

Mistral Small 4 چیست؟

Mistral Small 4 یک مدل زبانی بزرگ چندوجهی یا Multimodal LLM است که قابلیت‌های عمومی، استدلال، کدنویسی و تحلیل تصویر را در یک مدل واحد ارائه می‌کند.

نسخه‌های قبلی مدل‌های Mistral معمولاً برای وظایف مختلف به خانواده‌های جداگانه متکی بودند:

  • مدل عمومی برای Instruction Following
  • مدل Reasoning برای مسائل پیچیده
  • مدل Coding برای کارهای مهندسی نرم‌افزار
  • مدل Vision برای تحلیل تصویر

Mistral Small 4 بخش مهمی از این قابلیت‌ها را در یک مدل Hybrid ترکیب می‌کند. بنابراین برنامه می‌تواند بدون تغییر مداوم مدل، طیف وسیع‌تری از درخواست‌ها را پردازش کند.

این مدل در مارس ۲۰۲۶ معرفی شده است. طبق اطلاعات رسمی، Mistral Small 4 از پنجره Context تا ۲۵۶ هزار Token و ورودی متنی و تصویری پشتیبانی می‌کند. همچنین می‌توان میزان Reasoning آن را بر اساس دشواری وظیفه تنظیم کرد. معرفی رسمی Mistral Small 4، کارت رسمی مدل

مشخصات فنی Mistral Small 4

مشخصهمقدار یا توضیح
نوع مدلHybrid Multimodal LLM
معماریMixture of Experts
تعداد کل پارامترها۱۱۹ میلیارد
پارامترهای فعال در هر Tokenحدود ۶ تا ۶.۵ میلیارد
تعداد Expertها۱۲۸
Expertهای فعال در هر Token۴
پنجره Contextتا ۲۵۶ هزار Token
ورودی متنپشتیبانی می‌شود
ورودی تصویرپشتیبانی می‌شود
خروجی متنپشتیبانی می‌شود
Reasoning قابل تنظیمپشتیبانی می‌شود
Codingپشتیبانی می‌شود
Tool Callingپشتیبانی می‌شود
Structured Outputبر اساس قابلیت Endpoint قابل استفاده است
دسته‌بندیGeneral، Reasoning، Coding، Vision و Agent
Model ID دروارهmistralai/mistral-small-2603

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

معماری Mixture of Experts چیست؟

Mistral Small 4 از معماری Mixture of Experts یا MoE استفاده می‌کند. در این معماری، همه پارامترهای مدل برای پردازش هر Token فعال نمی‌شوند.

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

در Mistral Small 4:

  • مدل در مجموع ۱۲۸ Expert دارد.
  • برای هر Token فقط ۴ Expert فعال می‌شوند.
  • تعداد کل پارامترها ۱۱۹ میلیارد است.
  • بخش فعال مدل برای هر Token بسیار کوچک‌تر از کل مدل است.

این معماری چند مزیت دارد:

  • استفاده بهینه‌تر از محاسبات
  • امکان تخصصی‌شدن Expertها
  • افزایش ظرفیت کلی مدل
  • حفظ سرعت مناسب
  • کاهش هزینه Inference نسبت به مدل Dense هم‌اندازه
  • قابلیت پردازش وظایف متنوع

البته MoE به این معنا نیست که مدل معادل یک مدل Dense کوچک است. تمام وزن‌های مدل باید در زیرساخت Inference بارگذاری شوند و مدیریت Expertها نیز به زیرساخت مناسب نیاز دارد.

قابلیت Hybrid Reasoning

یکی از ویژگی‌های مهم Mistral Small 4، امکان تغییر رفتار مدل میان پاسخ مستقیم و استدلال عمیق‌تر است.

برای درخواست‌های ساده می‌توان Reasoning را غیرفعال یا محدود کرد:

reasoning_effort = none

این حالت برای موارد زیر مناسب است:

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

برای مسائل دشوار می‌توان Reasoning بیشتری درخواست کرد:

reasoning_effort = high

این حالت برای موارد زیر مفید است:

  • تحلیل معماری
  • برنامه‌نویسی پیچیده
  • حل مسائل چندمرحله‌ای
  • طراحی برنامه مهاجرت
  • تحلیل اسناد متناقض
  • تصمیم‌گیری چندمعیاره
  • برنامه‌ریزی Agent
  • رفع خطا در Codebase

نام و نحوه پشتیبانی از پارامترهای اختصاصی Reasoning ممکن است میان Endpointها متفاوت باشد. هنگام استفاده از API سازگار درواره، پارامترهای قابل‌پشتیبانی مدل را پیش از انتشار در Production آزمایش کنید.

پنجره Context با ظرفیت ۲۵۶ هزار Token

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

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

پنجره Context تا ۲۵۶ هزار Token، Mistral Small 4 را برای پردازش درخواست‌های نسبتاً بزرگ مناسب می‌کند.

نمونه کاربردها:

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

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

قابلیت چندوجهی و تحلیل تصویر

Mistral Small 4 علاوه بر متن، می‌تواند تصویر را نیز به‌عنوان ورودی دریافت کند.

این قابلیت برای موارد زیر کاربرد دارد:

  • تحلیل Screenshot
  • استخراج اطلاعات از نمودار
  • توضیح رابط کاربری
  • بررسی عکس محصول
  • خواندن محتوای تصویری
  • تحلیل فرم یا سند اسکن‌شده
  • پاسخ به سؤال درباره تصویر
  • تبدیل اطلاعات بصری به JSON
  • بررسی خطای نمایش‌داده‌شده در Screenshot
  • ساخت دستیار پشتیبانی چندوجهی

توجه کنید که تحلیل تصویر با تولید تصویر متفاوت است. Mistral Small 4 تصویر را دریافت و پاسخ متنی تولید می‌کند؛ اما یک مدل تخصصی Image Generation برای ساخت عکس طراحی شده است.

برنامه‌نویسی و Coding

Mistral Small 4 قابلیت‌های Coding خانواده Devstral را با توانایی‌های عمومی و Reasoning ترکیب کرده است.

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

  • تولید کد
  • توضیح کد
  • Refactor
  • رفع خطا
  • تولید Unit Test
  • ساخت Query
  • تبدیل کد میان زبان‌ها
  • مستندسازی
  • بررسی Pull Request
  • تحلیل Stack Trace
  • طراحی API
  • پیشنهاد معماری
  • تولید Regex
  • ساخت Script
  • تحلیل چند فایل مرتبط

برای کارهای چندفایلی، کیفیت نتیجه فقط به مدل وابسته نیست. Coding Agent باید بتواند فایل‌ها را جست‌وجو کند، محتوا را بخواند، تغییرات را اعمال کند و تست‌ها را اجرا کند.

Tool Calling و ساخت AI Agent

Mistral Small 4 می‌تواند در معماری AI Agent برای انتخاب و فراخوانی ابزارها استفاده شود.

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

  • جست‌وجو در اسناد
  • دریافت اطلاعات سفارش
  • خواندن فایل
  • جست‌وجو در Repository
  • اجرای Query
  • فراخوانی API داخلی
  • ثبت Ticket
  • ایجاد گزارش
  • محاسبه قیمت
  • دریافت اطلاعات محصول
  • اجرای تست
  • ارسال داده به Workflow بعدی

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

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

{
  "type": "function",
  "function": {
    "name": "get_product_inventory",
    "description": "دریافت موجودی محصول بر اساس شناسه محصول",
    "parameters": {
      "type": "object",
      "properties": {
        "product_id": {
          "type": "string",
          "description": "شناسه یکتای محصول"
        }
      },
      "required": ["product_id"],
      "additionalProperties": false
    }
  }
}

پس از Tool Call:

  1. Backend نام ابزار را بررسی می‌کند.
  2. آرگومان‌ها با Schema اعتبارسنجی می‌شوند.
  3. سطح دسترسی کاربر کنترل می‌شود.
  4. ابزار اجرا می‌شود.
  5. خروجی خلاصه و کنترل‌شده به مدل برمی‌گردد.
  6. مدل پاسخ نهایی را تولید می‌کند.

Structured Output

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

نمونه کاربردها:

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

نمونه Schema:

{
  "type": "object",
  "properties": {
    "category": {
      "type": "string",
      "enum": [
        "technical",
        "billing",
        "sales",
        "general"
      ]
    },
    "priority": {
      "type": "string",
      "enum": [
        "low",
        "medium",
        "high"
      ]
    },
    "summary": {
      "type": "string"
    },
    "requires_human": {
      "type": "boolean"
    }
  },
  "required": [
    "category",
    "priority",
    "summary",
    "requires_human"
  ],
  "additionalProperties": false
}

حتی هنگام استفاده از Structured Output، خروجی باید در Backend اعتبارسنجی شود.

Mistral Small 4 برای چه کاربردهایی مناسب است؟

دستیار هوشمند فارسی

مدل می‌تواند موتور یک دستیار متنی باشد که به سؤالات کاربران پاسخ می‌دهد، متن می‌نویسد و اطلاعات را خلاصه می‌کند.

برای نتیجه بهتر:

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

دستیار پشتیبانی مشتری

Mistral Small 4 می‌تواند:

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

درواره API مدل را ارائه می‌کند. سیستم Ticket، رابط Chat و گردش کار پشتیبانی باید توسط کسب‌وکار ساخته یا یکپارچه شود.

RAG و پاسخ‌گویی بر اساس اسناد

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

مراحل یک سیستم RAG:

  1. دریافت سؤال
  2. تبدیل سؤال به Query جست‌وجو
  3. اجرای Vector Search یا Hybrid Search
  4. مرتب‌سازی نتایج با Reranker
  5. انتخاب Chunkهای مرتبط
  6. ارسال Context به مدل
  7. تولید پاسخ همراه Citation
  8. اعتبارسنجی منابع

Context بزرگ به RAG کمک می‌کند، اما جایگزین Retrieval دقیق نیست.

تحلیل تصویر و Screenshot

کاربر می‌تواند Screenshot یک خطا یا رابط کاربری را ارسال کند و از مدل بخواهد:

  • پیام خطا را استخراج کند.
  • عناصر رابط را توضیح دهد.
  • مشکل احتمالی را مشخص کند.
  • پیشنهاد بهبود UX ارائه دهد.
  • اطلاعات را به JSON تبدیل کند.

پردازش اسناد

برای اسناد طولانی می‌توان از مدل خواست:

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

Coding Assistant

یک ابزار برنامه‌نویسی می‌تواند Context فایل‌های مرتبط را به مدل بدهد و از آن برای تولید Patch، تست و توضیح فنی استفاده کند.

Router اقتصادی

Mistral Small 4 می‌تواند بخش قابل‌توجهی از درخواست‌های عمومی را پردازش کند و فقط وظایف بسیار دشوار به مدل‌های رده‌بالا منتقل شوند.

تفاوت Mistral Small 4 با مدل تخصصی Coding

Mistral Small 4 یک مدل Hybrid و چندمنظوره است. مدل تخصصی Coding روی کارهای مهندسی نرم‌افزار و Agentic Coding متمرکزتر است.

معیارMistral Small 4مدل تخصصی Coding
گفت‌وگوی عمومیبسیار مناسبممکن است محدودتر باشد
تحلیل تصویرپشتیبانی می‌شودوابسته به مدل
کدنویسیمناسبتمرکز اصلی
Reasoningقابل تنظیموابسته به مدل
Agent عمومیمناسببیشتر مناسب Coding Agent
RAGمناسبقابل استفاده ولی تخصص اصلی نیست
تولید محتوامناسبمعمولاً اولویت پایین‌تر
انتخاب برای محصول چندمنظورهمناسبمحدودتر

اگر محصول شما فقط یک Coding Agent پیشرفته است، بهتر است Mistral Small 4 را در کنار مدل‌های تخصصی کدنویسی ارزیابی کنید. اگر یک مدل واحد برای گفت‌وگو، تصویر، Reasoning و کد می‌خواهید، Mistral Small 4 انتخاب منعطف‌تری است.

مزایای استفاده از API درواره

برای استفاده از مدل‌های مختلف، نیازی نیست برای هر مدل یک Integration کاملاً جدا بسازید. درواره یک API سازگار با ساختار OpenAI-Compatible ارائه می‌کند.

Base URL درواره:

https://api.darvareh.ir/v1

مزایای این معماری:

  • دسترسی به مدل‌های مختلف از یک API
  • تغییر مدل با تعویض Model ID
  • استفاده از SDKهای سازگار
  • ساخت معماری Multi-Model
  • امکان Benchmark مدل‌ها
  • پیاده‌سازی Routing و Fallback
  • مدیریت ساده‌تر Integration
  • استفاده از مدل‌های متن، تصویر، صدا و ویدئو در یک اکوسیستم

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

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

برای شروع:

  1. به درواره بروید.
  2. ثبت‌نام یا وارد حساب خود شوید.
  3. از پنل یک API Key ایجاد کنید.
  4. وارد صفحه مدل‌ها شوید.
  5. Mistral Small 4 را پیدا کنید.
  6. Model ID درواره را بررسی کنید.
  7. کلید را در Backend نگه دارید.

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

DARVAREH_API_KEY=your_api_key

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

Model ID درواره

mistralai/mistral-small-2603

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

فراخوانی Mistral Small 4 با cURL

curl https://api.darvareh.ir/v1/chat/completions \
  -H "Authorization: Bearer $DARVAREH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "mistralai/mistral-small-2603",
    "messages": [
      {
        "role": "system",
        "content": "You are a precise Persian technical assistant. Clearly separate facts, assumptions and recommendations."
      },
      {
        "role": "user",
        "content": "یک معماری مقیاس‌پذیر برای پردازش Jobهای پس‌زمینه با FastAPI، PostgreSQL و Redis طراحی کن."
      }
    ],
    "temperature": 0.2,
    "max_tokens": 4000
  }'

در کارهای تحلیلی معمولاً Temperature پایین‌تر باعث پاسخ قابل‌پیش‌بینی‌تر می‌شود. برای ایده‌پردازی می‌توان مقدار بالاتری را آزمایش کرد.

استفاده با Python

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

pip install openai

سپس Client را به Base URL درواره متصل کنید:

import os
from openai import OpenAI

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

response = client.chat.completions.create(
    model="mistralai/mistral-small-2603",
    messages=[
        {
            "role": "system",
            "content": (
                "You are a senior Python developer. "
                "Write maintainable code, state assumptions, "
                "and explain important trade-offs."
            )
        },
        {
            "role": "user",
            "content": (
                "یک API با FastAPI برای ثبت و پیگیری "
                "Jobهای پردازش فایل طراحی کن."
            )
        }
    ],
    temperature=0.2,
    max_tokens=5000
)

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

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

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

npm install openai

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

import OpenAI from "openai";

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

async function askMistral(question: string) {
  const response = await client.chat.completions.create({
    model: "mistralai/mistral-small-2603",
    messages: [
      {
        role: "system",
        content:
          "You are a Persian technical assistant. Give concise, accurate and actionable answers.",
      },
      {
        role: "user",
        content: question,
      },
    ],
    temperature: 0.2,
    max_tokens: 4000,
  });

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

const answer = await askMistral(
  "تفاوت Queue و Event Stream را برای معماری Microservice توضیح بده."
);

console.log(answer);

ساخت Endpoint با 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=30000)


class ChatResponse(BaseModel):
    answer: str


@app.post("/api/chat", response_model=ChatResponse)
def chat(payload: ChatRequest) -> ChatResponse:
    try:
        result = client.chat.completions.create(
            model="mistralai/mistral-small-2603",
            messages=[
                {
                    "role": "system",
                    "content": (
                        "Answer in Persian. "
                        "Do not invent missing information. "
                        "Label uncertain claims and assumptions."
                    )
                },
                {
                    "role": "user",
                    "content": payload.message
                }
            ],
            temperature=0.2,
            max_tokens=3000
        )

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

        if not answer:
            raise HTTPException(
                status_code=502,
                detail="Empty model response"
            )

        return ChatResponse(answer=answer)

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

در نسخه Production باید احراز هویت، Rate Limit، ثبت مصرف Token و کنترل بودجه کاربران اضافه شود.

ارسال تصویر به Mistral Small 4

برای تحلیل یک تصویر عمومی می‌توان از پیام چندبخشی استفاده کرد:

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="mistralai/mistral-small-2603",
    messages=[
        {
            "role": "user",
            "content": [
                {
                    "type": "text",
                    "text": (
                        "این Screenshot را تحلیل کن. "
                        "پیام خطا، علت‌های احتمالی و مراحل بررسی را "
                        "به‌صورت ساختاریافته بنویس."
                    )
                },
                {
                    "type": "image_url",
                    "image_url": {
                        "url": "https://example.com/error-screenshot.png"
                    }
                }
            ]
        }
    ],
    max_tokens=3000
)

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

برای فایل خصوصی بهتر است تصویر را به Base64 تبدیل کنید یا از URL امضاشده کوتاه‌مدت استفاده کنید.

نمونه Data URL:

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...

پشتیبانی دقیق از URL، Base64، تعداد تصاویر و اندازه فایل را برای Endpoint فعال درواره آزمایش کنید.

تبدیل تصویر محلی به Base64 در Python

import base64
from pathlib import Path


def image_to_data_url(path: str) -> str:
    file_path = Path(path)
    extension = file_path.suffix.lower()

    mime_types = {
        ".png": "image/png",
        ".jpg": "image/jpeg",
        ".jpeg": "image/jpeg",
        ".webp": "image/webp"
    }

    mime_type = mime_types.get(extension)

    if not mime_type:
        raise ValueError("Unsupported image format")

    encoded = base64.b64encode(
        file_path.read_bytes()
    ).decode("utf-8")

    return f"data:{mime_type};base64,{encoded}"

استفاده:

image_url = image_to_data_url(
    "screenshot.png"
)

سپس مقدار image_url را در درخواست چندوجهی قرار دهید.

نمونه Prompt برای تحلیل تصویر

این تصویر را به‌عنوان یک Screenshot نرم‌افزاری تحلیل کن.

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

1. عناصر قابل مشاهده
2. متن‌ها و پیام‌های خطا
3. مشکل احتمالی
4. شواهد موجود در تصویر
5. مواردی که از تصویر قابل تشخیص نیست
6. مراحل پیشنهادی برای بررسی

اگر اطلاعات کافی نیست، علت قطعی اعلام نکن.

این Prompt مدل را مجبور می‌کند مشاهدات واقعی را از فرضیه‌ها جدا کند.

نمونه Tool Calling

import json
import os

from openai import OpenAI

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

tools = [
    {
        "type": "function",
        "function": {
            "name": "get_order_status",
            "description": "دریافت وضعیت سفارش",
            "parameters": {
                "type": "object",
                "properties": {
                    "order_id": {
                        "type": "string"
                    }
                },
                "required": ["order_id"],
                "additionalProperties": False
            }
        }
    }
]

response = client.chat.completions.create(
    model="mistralai/mistral-small-2603",
    messages=[
        {
            "role": "system",
            "content": (
                "Use tools when real order information is required. "
                "Never invent an order status."
            )
        },
        {
            "role": "user",
            "content": "وضعیت سفارش 78421 را بررسی کن."
        }
    ],
    tools=tools,
    tool_choice="auto"
)

message = response.choices[0].message

for tool_call in message.tool_calls or []:
    arguments = json.loads(
        tool_call.function.arguments
    )

    print(tool_call.function.name)
    print(arguments)

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

ساخت Agent کنترل‌شده

یک حلقه Agent ساده:

MAX_STEPS = 8

messages = [
    {
        "role": "system",
        "content": (
            "Complete the task using available tools. "
            "Do not claim success without tool evidence."
        )
    },
    {
        "role": "user",
        "content": user_request
    }
]

for step in range(MAX_STEPS):
    response = client.chat.completions.create(
        model="mistralai/mistral-small-2603",
        messages=messages,
        tools=tools,
        tool_choice="auto"
    )

    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": json.dumps(
                result,
                ensure_ascii=False
            )
        })
else:
    final_answer = (
        "The maximum number of agent steps was reached."
    )

برای Production باید این محدودیت‌ها را اضافه کنید:

  • حداکثر مراحل
  • حداکثر Tool Call
  • حداکثر Token
  • Timeout کلی
  • اعتبارسنجی آرگومان‌ها
  • محدودیت اندازه خروجی ابزار
  • جلوگیری از اجرای تکراری
  • ثبت Trace
  • بودجه هزینه
  • تأیید انسانی برای اقدامات مهم

استفاده در RAG

نمونه System Prompt برای پاسخ بر اساس اسناد:

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

قوانین:
- فقط از Context ارائه‌شده استفاده کن.
- برای هر ادعای مهم شناسه منبع را ذکر کن.
- اگر پاسخ در منابع نیست، بگو اطلاعات کافی وجود ندارد.
- واقعیت منبع را از استنباط جدا کن.
- تعارض منابع را مشخص کن.
- هیچ Citation یا منبع جدیدی نساز.
- پاسخ را به فارسی روان بنویس.

Context نمونه:

[Source: DOC-17]
...

[Source: DOC-42]
...

برای افزایش کیفیت RAG:

  • Chunk مناسب بسازید.
  • Metadata را حفظ کنید.
  • Hybrid Search اجرا کنید.
  • نتایج را Rerank کنید.
  • Context تکراری را حذف کنید.
  • Citationها را پس از پاسخ اعتبارسنجی کنید.

Prompt نویسی مناسب برای Mistral Small 4

نقش را دقیق مشخص کنید

تو یک Senior Backend Engineer متخصص Python، FastAPI و PostgreSQL هستی.

هدف را واضح بنویسید

هدف، یافتن علت افزایش Connectionهای دیتابیس و ارائه کمترین تغییر ممکن است.

اطلاعات محیط را اضافه کنید

- Python 3.13
- FastAPI
- SQLAlchemy 2
- PostgreSQL
- Uvicorn

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

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

معیار پذیرش بدهید

کار زمانی کامل است که:
- علت اصلی همراه شواهد مشخص شود.
- Patch پیشنهاد شود.
- تست Regression نوشته شود.
- روش Rollback توضیح داده شود.

قالب خروجی را تعیین کنید

خروجی:
1. خلاصه
2. شواهد
3. علت اصلی
4. فرضیات
5. تغییرات
6. تست‌ها
7. ریسک‌ها

نمونه Prompt حرفه‌ای Coding

نقش:
تو یک Principal Software Engineer هستی.

وظیفه:
کد ارائه‌شده را بررسی کن و علت Race Condition را پیدا کن.

محدودیت‌ها:
- Public API نباید تغییر کند.
- Dependency جدید اضافه نشود.
- تغییر باید حداقلی باشد.
- پاسخ باید شامل تست باشد.

قوانین:
- ادعاها را به شواهد کد متصل کن.
- اگر علت قطعی نیست، آن را فرضیه بنام.
- بدون دیدن خروجی Test Runner ادعا نکن تست موفق شده است.

خروجی:
1. Root Cause
2. Evidence
3. Proposed Patch
4. Regression Test
5. Risks
6. Rollback Plan

کنترل هزینه Mistral Small 4

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

برای کنترل هزینه:

Reasoning را فقط در صورت نیاز استفاده کنید

درخواست‌های ساده به Reasoning عمیق نیاز ندارند.

Context را پاک‌سازی کنید

پیام‌ها، فایل‌ها و اسناد نامرتبط را حذف کنید.

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

مقدار max_tokens را متناسب با نیاز واقعی تعیین کنید.

تاریخچه را خلاصه کنید

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

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

به‌جای ارسال تمام اسناد، فقط Chunkهای مرتبط را وارد Context کنید.

پاسخ‌ها را Cache کنید

پاسخ درخواست‌های تکراری و پایدار را دوباره استفاده کنید.

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

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

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

Mistral Small 4 چه زمانی انتخاب مناسبی است؟

این مدل گزینه مناسبی است اگر:

  • یک مدل چندمنظوره می‌خواهید.
  • هزینه و Latency اهمیت دارند.
  • ورودی تصویر دارید.
  • Tool Calling نیاز دارید.
  • وظایف شما ترکیبی از Chat، Coding و Reasoning هستند.
  • Context نسبتاً بزرگی لازم دارید.
  • قصد ساخت AI Agent دارید.
  • می‌خواهید مدل پیش‌فرض یک Router باشد.
  • خروجی فارسی و چندزبانه نیاز دارید.

چه زمانی مدل دیگری را بررسی کنیم؟

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

  • به قدرتمندترین Reasoning موجود نیاز دارید.
  • Coding Agent شما روی وظایف بسیار پیچیده کار می‌کند.
  • تولید تصویر می‌خواهید.
  • ورودی یا خروجی صوتی لازم دارید.
  • تولید ویدئو می‌خواهید.
  • حجم بسیار زیادی از طبقه‌بندی ساده دارید.
  • Context بیش از ظرفیت مدل نیاز دارید.
  • Latency فوق‌العاده پایین اولویت اصلی است.

طراحی Model Routing

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

    if task.requires_vision:
        return "mistralai/mistral-small-2603"

    if task.requires_general_reasoning:
        return "mistralai/mistral-small-2603"

    if task.requires_complex_agentic_coding:
        return "ADVANCED_CODING_MODEL_ID"

    return "mistralai/mistral-small-2603"

Router بهتر است بر اساس ترکیبی از معیارها تصمیم بگیرد:

  • نوع وظیفه
  • پیچیدگی
  • اندازه Context
  • نیاز به Vision
  • بودجه
  • Latency
  • نرخ موفقیت قبلی مدل
  • ارزش تجاری درخواست

ارزیابی مدل پیش از Production

قبل از انتخاب Mistral Small 4 یک Eval Dataset واقعی بسازید.

معیارهای گفت‌وگو

  • صحت پاسخ
  • رعایت دستور
  • کیفیت فارسی
  • نرخ اطلاعات ساختگی
  • Latency
  • هزینه

معیارهای RAG

  • Faithfulness
  • Citation Accuracy
  • پاسخ‌گویی بر اساس Context
  • تشخیص اطلاعات ناکافی
  • نرخ ادعای بدون منبع

معیارهای Coding

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

معیارهای Vision

  • تشخیص عناصر تصویر
  • استخراج دقیق متن
  • درک نمودار
  • تفکیک مشاهده از استنباط
  • کیفیت خروجی JSON

معیارهای Tool Calling

  • انتخاب ابزار صحیح
  • آرگومان معتبر
  • تعداد فراخوانی غیرضروری
  • نرخ تکمیل هدف
  • توانایی بازیابی پس از خطا

مدیریت خطا و Retry

خطاهای قابل Retry

  • Timeout موقت
  • اختلال شبکه
  • محدودیت لحظه‌ای ظرفیت
  • بعضی خطاهای سرور

برای این موارد از Exponential Backoff همراه Jitter استفاده کنید.

خطاهای غیرقابل Retry بدون تغییر درخواست

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

Retry بدون اصلاح درخواست فقط هزینه و بار سیستم را افزایش می‌دهد.

اشتباهات رایج

ارسال تمام Context موجود

Context بزرگ نباید با اطلاعات نامرتبط پر شود.

فعال‌کردن Reasoning برای همه درخواست‌ها

برای کارهای ساده، پاسخ مستقیم سریع‌تر و اقتصادی‌تر است.

اعتماد به JSON بدون Validation

تمام خروجی‌های ساختاریافته باید در Backend بررسی شوند.

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

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

استفاده از تصویر بدون فشرده‌سازی

فایل‌های بسیار بزرگ باعث افزایش زمان و مصرف می‌شوند.

نداشتن محدودیت برای Agent

Agent باید سقف مرحله، ابزار، زمان و Token داشته باشد.

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

API Key فقط باید روی سرور نگه‌داری شود.

استفاده از قیمت ثابت

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

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

Mistral Small 4 چیست؟

Mistral Small 4 یک مدل چندوجهی Hybrid است که گفت‌وگو، Reasoning، Coding، تحلیل تصویر و قابلیت‌های Agentic را در یک مدل ترکیب می‌کند.

Context Window مدل چقدر است؟

طبق مستندات رسمی، این مدل از پنجره Context تا ۲۵۶ هزار Token پشتیبانی می‌کند.

آیا Mistral Small 4 تصویر را تحلیل می‌کند؟

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

آیا Mistral Small 4 تصویر تولید می‌کند؟

خیر. برای تولید تصویر باید از مدل تخصصی Image Generation استفاده کنید.

آیا برای برنامه‌نویسی مناسب است؟

بله. این مدل قابلیت تولید، توضیح، Refactor و تحلیل کد دارد و می‌تواند در Coding Assistant استفاده شود.

آیا برای AI Agent مناسب است؟

بله. Tool Calling، Reasoning و Context بزرگ آن را برای بسیاری از Agentهای عمومی مناسب می‌کنند.

آیا Reasoning قابل تنظیم است؟

بله. Mistral Small 4 امکان تنظیم میزان Reasoning را ارائه می‌کند. نحوه ارسال پارامتر اختصاصی باید با Endpoint مورد استفاده سازگار باشد.

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

بله. Context بزرگ، Instruction Following و قابلیت پردازش اسناد آن را برای RAG مناسب می‌کنند.

آیا زبان فارسی را پشتیبانی می‌کند؟

مدل قابلیت چندزبانه دارد و می‌تواند درخواست‌ها و پاسخ‌های فارسی را پردازش کند. کیفیت آن باید با Dataset فارسی واقعی پروژه ارزیابی شود.

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

mistralai/mistral-small-2603

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

قیمت Mistral Small 4 چقدر است؟

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

چگونه API Key درواره بگیریم؟

در درواره ثبت‌نام کنید و از پنل یک API Key بسازید.

Base URL درواره چیست؟

https://api.darvareh.ir/v1

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

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

جمع‌بندی

Mistral Small 4 یک مدل چندوجهی و Hybrid است که قابلیت‌های عمومی، Reasoning، Coding، Vision و Agentic را در یک مدل واحد ارائه می‌کند.

معماری Mixture of Experts با ۱۱۹ میلیارد پارامتر کلی و تعداد بسیار کمتری پارامتر فعال برای هر Token، به مدل کمک می‌کند ظرفیت بالا را با Inference کارآمدتر ترکیب کند. پنجره Context تا ۲۵۶ هزار Token و امکان تنظیم Reasoning نیز آن را برای RAG، دستیار هوشمند، تحلیل اسناد، Coding و AI Agent مناسب می‌کنند.

این مدل می‌تواند گزینه مناسبی برای بار اصلی بسیاری از محصولات هوش مصنوعی باشد؛ به‌خصوص زمانی که یک مدل واحد برای پردازش متن، تصویر، کد و وظایف چندمرحله‌ای نیاز دارید.

برای مشاهده قیمت به‌روز و بررسی 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 درواره آشنا می‌شوید.