برنامه‌نویسی با هوش مصنوعی در اکوسیستم سلام: دستیار هوشمند سلام، دستیار زبان سلام، سرور MCP، API و ربات تلگرام

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

در این مقاله
  1. ابزارهای هوش مصنوعی سلام در یک نگاه
  2. دستیار هوشمند سلام، دستیار کدنویسی زبان سلام
  3. دستیار زبان سلام، برنامه‌ی رومیزی
  4. سرور MCP: سلام درون ابزارهای هوش مصنوعی‌ای که به کار می‌برید
  5. API برای برنامه‌های خودتان
  6. ربات تلگرام
  7. کدام را به کار ببریم؟
  8. آنچه باید در نظر داشت
  9. پرسش‌های پرتکرار درباره‌ی دستیار هوشمند سلام

پروژه‌ی سلام ابزارهای هوش مصنوعی خودش را برای برنامه‌نویسان اجرا می‌کند. دستیار هوشمند سلام (Salam AI) دستیار کدنویسی‌ای است که برای زبان برنامه‌نویسی سلام ساخته شده: به پرسش‌ها درباره‌ی زبان پاسخ می‌دهد، کد سلام می‌نویسد و درست می‌کند و آن را با کامپایلر سلام بررسی می‌کند، و تابع‌های واقعی کتابخانه‌ی استاندارد را پیدا می‌کند و از خودش نمی‌سازد. چهار راه دیگر هم دور آن هست: دستیار زبان سلام (Salam Agent)، برنامه‌ای رومیزی که به دستیار اجازه می‌دهد در پوشه‌ای از رایانه‌ی شما کار کند؛ یک سرور MCP میزبانی‌شده که کامپایلر و مستندات سلام را به ابزارهای هوش مصنوعی دیگر می‌دهد؛ یک API برای برنامه‌های خودتان؛ و یک ربات تلگرام.

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

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

ابزارکجا اجرا می‌شودبه چه کاری می‌آید
دستیار هوشمند سلامدر مرورگر، روی ai.salamlang.irپرسش، نوشتن و درست کردن کد، توضیح خطاهای کامپایلر
دستیار زبان سلامبرنامه‌ی رومیزی برای ویندوز، مک و لینوکساجازه دادن به دستیار برای اجرای فرمان و ویرایش پرونده در پوشه‌ی پروژه
سرور MCPمیزبانی‌شده روی mcp.salamlang.ir، یا روی ماشین خودتاندادن کامپایلر و مستندات سلام به ابزارهای هوش مصنوعی‌ای که همین حالا به کار می‌برید
APIai-api.salamlang.irصدا زدن دستیار از کد خودتان
ربات تلگرام@SalamAgentBotدستیار هوشمند سلام درون تلگرام

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

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

نحو سلام با هیچ زبان رایجی یکی نیست، پس چت‌بات‌های عمومی معمولاً جاهای خالی را با پایتون یا Go پر می‌کنند. دستیار هوشمند سلام طوری ساخته شده که با خود زبان بسنجد. صفحه‌ی آن در سایت سه توانایی را فهرست می‌کند:

  • پرسش درباره‌ی سلام. نحو، گونه‌ها، حلقه‌ها، ساختارها، گونه‌های عمومی، مدیریت خطا و زبان صفحه؛ با زبان خودتان بپرسید و پاسخی همراه با کد قابل اجرا بگیرید.
  • نوشتن و درست کردن کد. برنامه‌ای را توصیف کنید و کد سلامی بگیرید که دستیار آن را با کامپایلر سلام بررسی می‌کند، یا برنامه‌ای را که کامپایل نمی‌شود بچسبانید و دلیلش را بفهمید.
  • کتابخانه‌ی استاندارد. بیش از ۱۷۰ بسته، از JSON و HTTP تا پایگاه داده و یادگیری ماشین؛ نام و امضای واقعی تابع‌ها را پیدا می‌کند و حدس نمی‌زند.

کدها در پاسخ‌ها با همان دستور زبان افزونه‌ی Visual Studio Code رنگ‌آمیزی می‌شوند. با یک نشانی ایمیل ثبت‌نام می‌کنید و گفت‌وگوهایتان در حسابتان نگه داشته می‌شود. رابط کاربری فارسی و راست‌به‌چپ است که با خاستگاه زبان جور است؛ پرسش و کد می‌تواند انگلیسی یا فارسی باشد، چون هر دو یک زبان‌اند (مقاله‌ی یک زبان، دو خط را ببینید).

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

دستیار زبان سلام، برنامه‌ی رومیزی

دستیار زبان سلام، دستیار هوشمند سلام را در پنجره‌ی خودش باز می‌کند و می‌گذارد در پوشه‌ای که انتخاب می‌کنید کار کند: فرمان اجرا کند، داکر و WSL را به کار ببرد، پرونده‌ها را بخواند و ویرایش کند و آزمون‌هایتان را اجرا کند. صفحه‌ی سایت آن را «دستیار هوشمند سلام، این بار با دست» توصیف می‌کند. خود دستیار روی کارسازهای سلام اجرا می‌شود؛ برنامه‌ی روی رایانه‌ی شما درخواست‌هایش را انجام می‌دهد، پس پرونده‌هایتان همان‌جا که هستند می‌مانند.

شروع کار سه گام دارد:

  1. نصب و ورود. برنامه این رایانه را ثبت می‌کند و کلیدش را در جاکلیدی سیستم‌عامل نگه می‌دارد.
  2. انتخاب پوشه. گفت‌وگویی که با یک پوشه‌ی کاری شروع شود، آن پوشه را فضای کار دستیار می‌کند: فرمان‌ها در آن اجرا می‌شوند و ابزارهای پرونده هر مسیر را نسبت به آن می‌سنجند و پیش از به کار بردن مسیری بیرون از آن از شما می‌پرسند.
  3. اجازه بدهید و ببینید. هر فرمان و تغییر به شکل یک کارت در گفت‌وگو می‌آید. اجازه می‌دهید، رد می‌کنید، یا آن ابزار را همیشه مجاز می‌کنید، و فرمانی را که در حال اجراست می‌توان از روی کارتش متوقف کرد.

کارهایی که انجام می‌دهد همان کارهایی است که برای راه انداختن یک پروژه‌ی سلام در پایانه و ویرایشگر می‌کنید: اجرای فرمان در Bash، sh، پاورشل یا cmd؛ ساخت و اجرای کانتینر با داکر و کار با WSL در ویندوز؛ خواندن، جست‌وجو، ساختن و ویرایش پرونده‌ها؛ ساختن برنامه، اجرای آزمون‌ها و درست کردن آنچه شکست می‌خورد؛ و بازنویسی پروژه‌های موجود PHP، C#، C، C++ یا Go به زبان سلام. پروژه‌های تازه هم به سلام نوشته می‌شوند.

سطح دسترسی‌ای که برای هر گفت‌وگو تعیین می‌کنید

سطحخواندن در پوشهنوشتن و فرمان در پوشههر چیز بیرون از پوشه
پیش از هر تغییر بپرسانجام می‌شودمی‌پرسد، یا همیشه برای آن ابزارمی‌پرسد
خودکار در پوشه‌ی کاریانجام می‌شودانجام می‌شودمی‌پرسد
فقط خواندنیانجام می‌شودرد می‌شودبرای خواندن می‌پرسد، بقیه رد می‌شود
همه‌چیز را خودکار کنانجام می‌شودانجام می‌شودبدون پرسیدن انجام می‌شود

چند قاعده در همه‌ی سطح‌ها برقرار است. نوشتن در پوشه‌ی .git همیشه رد می‌شود. فرمان‌ها پس از دو دقیقه متوقف می‌شوند، مگر دستیار زمان بیشتری بخواهد، حداکثر ۳۰ دقیقه. فقط ai.salamlang.ir می‌تواند با برنامه حرف بزند و پیوند سایت‌های دیگر در مرورگر همیشگی شما باز می‌شود.

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

دانلود و سنجش درستی فایل

نسخه‌ها برای ویندوز ۱۰ و ۱۱ (نصب‌کننده‌ی ۶۴ بیتی، MSI، نسخه‌ی قابل حمل، ARM64 و ۳۲ بیتی)، مک (اپل سیلیکون و اینتل، به شکل .dmg یا برنامه در فایل ZIP) و لینوکس (AppImage برای x86-64 و ARM64، بسته‌های .deb و .rpm، و یک .deb ۳۲ بیتی) وجود دارند. کنار هر فایل در صفحه‌ی انتشار یک فایل .sha256 هست:

ترمینال
sha256sum -c salam-agent-*.sha256

نسخه‌های مک هنوز تأیید اپل (notarization) را ندارند، پس نخستین اجرا به فرمان xattr -dr com.apple.quarantine "/Applications/Salam Agent.app" یا راست‌کلیک و Open نیاز دارد، و SmartScreen ویندوز هم به همین دلیل ممکن است تأیید بخواهد. رابط کاربری برنامه فارسی است.

سرور MCP: سلام درون ابزارهای هوش مصنوعی‌ای که به کار می‌برید

پروتکل بافت مدل (Model Context Protocol) یا MCP به برنامه‌های هوش مصنوعی اجازه می‌دهد ابزارهای بیرونی را صدا بزنند. سرور MCP سلام که به خود سلام نوشته شده، ابزارهای سلام را به هر کلاینت MCP می‌دهد: بررسی، اجرا و قالب‌بندی کد، جست‌وجو در کتابخانه‌ی استاندارد و خواندن مستندات. سرور میزبانی‌شده به نصب هیچ چیز نیاز ندارد:

JSON
{
  "mcpServers": {
    "salam": { "type": "http", "url": "https://mcp.salamlang.ir/mcp" }
  }
}

نخستین اتصال پنجره‌ای از مرورگر باز می‌کند تا با حساب دستیار هوشمند سلام وارد شوید، روی هر پلن، حتی پلن رایگان. از آن به بعد کلاینت توکن خودش را نگه می‌دارد و تازه می‌کند. هر فراخوانی ابزار به نام حساب شما و آن برنامه ثبت می‌شود، پس می‌توانید در بخش «برنامه‌های متصل» در ai.salamlang.ir ببینید یک برنامه‌ی متصل چه کرده و همان‌جا اتصالش را قطع کنید.

ابزارها چند گروه‌اند:

گروهابزارها
کامپایلرsalam_check، salam_build، salam_run، salam_exec، salam_format، salam_translate
بازرسیsalam_inspect، salam_llvm_ir، salam_js، salam_version
زبان و کتابخانهsalam_docs، salam_stdlib_search، salam_stdlib_packages، salam_stdlib_symbols، salam_find_examples، salam_read_source، salam_keywords
وبsalam_web_search، salam_web_fetch

سرور میزبانی‌شده پرونده‌های شما را نمی‌بیند، پس ابزارهای کامپایلرش به جای مسیر، متن برنامه را می‌گیرند، و هرگز کدی اجرا نمی‌کند: salam_run، salam_exec و salam_build فقط وقتی هستند که سرور را خودتان اجرا کنید. اگر سرور را از مخزن روی ماشین خودتان بسازید، یک پرونده‌ی اجرایی بومی است که پای Node.js یا پایتون در آن در میان نیست، و نسبت به فضای کاری شما فقط خواندنی است: کامپایلر در یک پوشه‌ی موقت خصوصی اجرا می‌شود و salam_format فقط گزارش می‌دهد و هرگز پرونده‌ای را بازنویسی نمی‌کند. سه پیش‌نوشته (prompt) به نام‌های salam-write، salam-port و salam-fix روند بررسی و اصلاح را و فهرست کوتاه قاعده‌هایی را که سلام در آن‌ها با زبان‌های دیگر فرق دارد به مدل می‌دهند.

API برای برنامه‌های خودتان

همین دستیار از راه HTTP و در قالب رایج «تکمیل گفت‌وگو» (chat completions) در دسترس است، پس کتابخانه‌های کلاینت موجود کافی است نشانی پایه‌شان را روی https://ai-api.salamlang.ir بگذارند و نام مدل salam را به کار ببرند. کلید را در صفحه‌ی «کلیدهای API» دستیار هوشمند سلام بسازید. از پایانه:

ترمینال
curl https://ai-api.salamlang.ir/chat/completions \
  -H "Authorization: Bearer $SALAM_AI_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"salam","messages":[{"role":"user","content":"Write hello world in Salam"}]}'

و از خود سلام، با کلاینت شبکه.اچ تی تی پی و کدگذاری.جیسون برای گریزدادن (escape) متن پرسش:

سلام
واردسازی شبکه.اچ تی تی پی
واردسازی کدگذاری.جیسون
واردسازی سیستم عامل

تابع ریشه:
    کلید := سیستم عامل.متغیر محیطی("SALAM_AI_KEY")
    اگر کلید.طول() == ۰:
        سرچاپ "متغیر SALAM_AI_KEY را با کلیدی از صفحه‌ی کلیدهای دستیار هوشمند سلام مقدار بدهید"
        برگشت ۱
    پایان
    پرسش := "یک تابع سلام بنویس که فهرستی از عددها را وارونه کند"
    بدنه := `{"model":"salam","messages":[{"role":"user","content":"` + جیسون.اسکیپ(پرسش) + `"}]}`
    ناپایا سرآیندها := نگاشت {} برگردان نگاشت<رشته، رشته>
    دیرکن سرآیندها.آزادکن()
    سرآیندها.درج("Authorization"، "Bearer " + کلید)
    سرآیندها.درج("Content-Type"، "application/json")
    پاسخ := اچ تی تی پی.ارسال با("https://ai-api.salamlang.ir/chat/completions"، بدنه، سرآیندها)
    اگر پاسخ.خطا.طول() > ۰:
        سرچاپ "درخواست شکست خورد:"، پاسخ.خطا
        برگشت ۱
    پایان
    سرچاپ "وضعیت"، پاسخ.وضعیت
    سرچاپ پاسخ.بدنه
پایان

این برنامه بدون کلید اجرا نمی‌شود و پاسخ خام JSON را چاپ می‌کند که معمولاً آن را تجزیه می‌کنید. پرسش فارسی هم مشکلی ندارد: جیسون.اسکیپ فقط نویسه‌های ویژه‌ی JSON مثل گیومه را گریز می‌دهد و حرف‌های فارسی دست‌نخورده در رشته‌ی UTF-8 می‌مانند. کلید را در یک متغیر محیطی یا انباره‌ی راز نگه دارید، هرگز در کد منبع.

ربات تلگرام

دستیار هوشمند سلام در تلگرام هم با نام @SalamAgentBot در دسترس است. برای گفت‌وگو با آدم‌ها به جای دستیار، جامعه‌ی سلام گروه تلگرام خودش را دارد که همراه با دیسکورد و کانال‌های دیگر در صفحه‌ی جامعه آمده است.

کدام را به کار ببریم؟

  • در حال یادگیری زبان هستید یا روی یک خطا گیر کرده‌اید: دستیار هوشمند سلام در مرورگر، کنار دوره‌ی آموزشی.
  • روی پوشه‌ی یک پروژه‌ی واقعی کار می‌کنید: دستیار زبان سلام، با سطح «پیش از هر تغییر بپرس» تا وقتی به روند کار اعتماد کنید.
  • همین حالا ابزار کدنویسی هوش مصنوعی دیگری دارید: سرور MCP را اضافه کنید تا آن ابزار کد سلامش را به جای حدس زدن با کامپایلر و کتابخانه‌ی واقعی بسنجد.
  • می‌خواهید چیزی روی آن بسازید: API، از هر زبانی، از جمله خود سلام.

همه‌ی این‌ها روی ابزارهایی ساخته شده‌اند که زبان در اختیار همه می‌گذارد: پیام‌های خطا و اصلاح‌های کامپایلر، مرجع SKILL.md و کتابخانه‌ی استاندارد مستندشده. اگر ترجیح می‌دهید بدون دستیار کار کنید، این ابزارها در صفحه‌ی ابزارها و مقاله‌ی ابزارهای توسعه‌ی سلام آمده‌اند.

آنچه باید در نظر داشت

  • دستیار روی کارسازهای سلام اجرا می‌شود. آنچه تایپ می‌کنید، و با دستیار زبان سلام خروجی فرمان‌ها و محتوای پرونده‌هایی که می‌خواند، برای پاسخ گرفتن به آن‌جا فرستاده می‌شود.
  • بررسی‌شده با درست یکی نیست. کدی که کامپایل می‌شود باز هم می‌تواند کار اشتباهی بکند. آزمون‌ها را در پروژه نگه دارید و تغییرها را پیش از پذیرفتن بخوانید، به‌ویژه در سطح‌های دسترسی خودکار.
  • پوسته‌ی دستیار زبان سلام محیط ایزوله (sandbox) نیست. مرزهای پوشه برای ابزارهای پرونده اعمال می‌شوند؛ فرمان‌ها می‌توانند به بقیه‌ی سیستم برسند.
  • سرویسی جوان. این ابزارها تازه‌اند و زیاد تغییر می‌کنند، و مثل خود زبان، تیم کوچکی پشتشان است. این‌جا هیچ رقمی درباره‌ی دقت منتشر نمی‌کنیم، چون بدون یک ارزیابی عمومی معنای چندانی ندارد.

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

آیا دستیار هوشمند سلام رایگان است؟

بله. ثبت‌نام با یک نشانی ایمیل کافی است و سرور MCP و دستیار زبان سلام هم با حساب رایگان کار می‌کنند.

آیا دستیار زبان سلام کل پروژه‌ی من را بارگذاری می‌کند؟

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

آیا بدون حساب کاربری می‌توان از سرور MCP سلام استفاده کرد؟

سرور میزبانی‌شده روی mcp.salamlang.ir از شما می‌خواهد با حساب دستیار هوشمند سلام، روی هر پلنی، وارد شوید. اگر سرور را از مخزن بسازید و روی ماشین خودتان از راه stdio اجرا کنید، ورودی لازم نیست.

آیا دستیار هوشمند سلام به زبان‌های دیگر هم کد می‌نویسد؟

صفحه‌ی دستیار زبان سلام در سایت می‌گوید پروژه‌های موجود PHP، C#، C، C++ و Go را به سلام بازنویسی می‌کند و پروژه‌های تازه را به سلام می‌نویسد. این ابزارها دور کامپایلر و کتابخانه‌ی سلام ساخته شده‌اند و بیشترین کارایی‌شان هم همان‌جاست.

راه پیش رو

آیا هوش مصنوعی می‌تواند به فارسی کد بنویسد؟ تولید و اعتبارسنجی برنامه‌های سلام فارسی

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

خواندن مقاله
راه پیش رو

اجرای مدل‌های هوش مصنوعی با زبان سلام: بارگذاری مدل‌های زبانی GGUF، اجرای ONNX و ساخت ابزار یادگیری ماشین بدون پایتون

کتابخانه‌ی استاندارد سلام می‌تواند مدل‌های زبانی GGUF را بخواند، مدل‌های کوچک خانواده‌ی Llama را روی پردازنده اجرا کند و گراف‌های ONNX را به کار بیندازد، همه با کد خالص سلام. در این نوشته می‌بینیم چه چیزی کار می‌کند، چه هزینه‌ای دارد و برای چه کاری ساخته نشده است.

خواندن مقاله
راه پیش رو

یک زبان برنامه‌نویسی تازه چطور زیست‌بوم متن‌باز خودش را می‌سازد: بسته‌ها، فهرست بسته‌ها، مستندات و مشارکت‌کنندگان در سلام

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

خواندن مقاله