محصولات ما

AI WebService — هوش مصنوعی برای کارهای فنی

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

معرفی

AI WebService، هوش مصنوعیِ وب‌سرویس برای کارهای فنی است — نه یک چت‌باتِ عمومی برای گپ‌وگفت. کد می‌نویسد و اجرا می‌کند، سرور و روترِ میکروتیک را پیکربندی می‌کند و با اجازهٔ شما روی ویندوزِ خودتان کار را از ابتدا تا انتها برعهده می‌گیرد؛ نتیجه را بررسی می‌کند و فایلِ واقعی تحویل می‌دهد. از یک پنلِ فارسی، از اپِ ویندوز، یا مستقیم از نرم‌افزارِ خودتان با API.

انجامِ کار، نه فقط جواب

به‌جای توضیحِ راه‌حل، فایل را می‌سازد، کد را اجرا می‌کند و خروجی را آزمایش می‌کند.

خواندنِ فایل

عکس و اسکرین‌شات، PDF، اکسل، ورد، CSV و فایلِ کد — تا ۲۵ مگابایت.

تحویلِ فایل

فایل‌هایی که می‌سازد (کد، سند، PDF، اکسل) همان‌جا برای دانلود می‌آیند.

کار در پس‌زمینه

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

حافظه و دستورالعملِ ثابت

ترجیح‌ها و قواعدِ کارتان را یک بار بگویید؛ حافظه را خودتان می‌بینید و ویرایش می‌کنید.

فارسی از پایه

رابط و خروجیِ فارسی و راست‌به‌چپ، رقم و تاریخِ شمسی، و سند و PDF ِ فارسی.

مناسبِ چه کسانی است؟

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

یک سرویس، دو در

پنلی برای گفتگو و کار، و یک API که نرم‌افزارِ خودتان مستقیم صدایش می‌زند. هزینهٔ هر دو از یک سهمیه و با یک تعرفه حساب می‌شود؛ چون هزینه پیش از آن‌که معلوم شود درخواست از پنل آمده یا از API اندازه گرفته می‌شود، برابریِ این دو نتیجهٔ ساختار است، نه دو مجموعه قانون که باید هم‌زمان نگه داشته شوند.

امکانات

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

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

نوشتن و اجرا

کد می‌نویسد، اجرا می‌کند و تا رسیدن به خروجیِ درست ادامه می‌دهد.

رفعِ خطا

متنِ خطا یا اسکرین‌شاتش را بفرستید؛ علت را پیدا و کد را اصلاح می‌کند.

بازبینیِ کد

خروجی با قواعدِ خودکارِ کیفیت و امنیت بررسی می‌شود؛ از جمله SQL، تست‌ها و وابستگی‌ها.

خواندنِ صفحه‌های وب

مستندات و صفحه‌های وب را می‌خواند؛ سایت‌های ایرانی را هم.

سند و گزارش

مستندِ فنی، گزارش و PDF ِ فارسی با قلم و چیدمانِ درست.

استخراجِ داده

از عکس و PDF ِ فاکتور و رسیدِ فارسی، داده را به اکسل یا JSON درمی‌آورد.

سرور، شبکه و ویندوز

با اپِ ویندوز، AI WebService به کامپیوترِ شما وصل می‌شود و کار را از همان‌جا کامل برعهده می‌گیرد: دستور را خودش اجرا می‌کند، خروجی را می‌خواند، اگر خطا بود رفع می‌کند و تا پایانِ کار پیش می‌رود — نه این‌که فقط بگوید چه کنید. هر جایی که از ویندوزِ شما در دسترس است، برایش هم در دسترس است: سرورها، روترها و شبکهٔ داخلی.

رمزِ شما را نمی‌خواهد. دستورها با همان دسترسی‌ای اجرا می‌شوند که خودتان روی این ویندوز دارید — مثلاً کلیدِ SSH ِ سرور یا اتصالی که از قبل روی سیستم تنظیم کرده‌اید. در را خودتان باز می‌کنید و کار را به او می‌سپارید.

سرورِ لینوکس

از ویندوزِ شما با SSH به سرور وصل می‌شود: نصب و تنظیمِ وب‌سرور و سرویس‌ها، فایروال، به‌روزرسانی، و عیب‌یابی از روی لاگ‌ها.

میکروتیک

اتصال به روتر، خواندن و بررسیِ پیکربندی، و تنظیمِ فایروال، NAT، کاربرها و سرویس‌ها — با توضیحِ هر تغییر پیش از اعمال.

خودِ ویندوز

نصب و راه‌اندازیِ نرم‌افزار، مدیریتِ فایل و پوشه، و خودکارسازی با اسکریپتِ PowerShell.

عیب‌یابیِ شبکه

بررسیِ اتصال، DNS و رکوردهای دامنه و ایمیل، و پیداکردنِ گلوگاهِ مشکل.

پروژه و گیتِ شما

روی فایل‌ها و مخزنِ گیتِ پروژه، با حسابِ گیتِ خودتان؛ سرورِ ما به گیتِ شما دسترسی ندارد.

گزارشِ کامل

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

اختیار دستِ خودتان است
۱
فقط خواندن

بررسی و گزارش؛ هیچ چیزی تغییر نمی‌کند.

۲
با پرسش

پیش از هر تغییر اجازه می‌گیرد — روی صفحه یا با دکمه در پیام‌رسانِ بله (پیش‌فرض).

۳
مورداعتماد

کار را بی‌وقفه و کامل خودش پیش می‌برد.

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

ساختِ سایت و اپ

سایت و اپلیکیشنِ کامل، با کدِ واقعی و محتوای واقعی — نه قالبِ خالی.

ساختِ سایت

شرکتی یا فروشگاهی

سایتِ کامل با ۱۲ تا ۲۰ صفحه؛ در نسخهٔ فروشگاهی، سبدِ خرید و مراحلِ سفارش کار می‌کنند.

چهار سبکِ طراحی

لوکس، فناورانه و مینیمال، گرم و محلی، جسور و مدرن.

۱۵ صنف

از کلینیک و آموزشی تا املاک، رستوران، حقوقی، گردشگری و فروشگاهی.

بیش از ۴۰ بررسیِ کیفیت

پیش از تحویل در سه اندازهٔ صفحه سنجیده می‌شود و هیچ پیوندِ شکسته‌ای نمی‌ماند.

عکس با مجوز

عکس‌ها از بانک‌های تصویرِ دارای مجوز با ذکرِ منبع می‌آیند.

بدونِ اطلاعاتِ ساختگی

نشانی و شمارهٔ تماس فقط از اطلاعاتی می‌آید که خودتان می‌دهید.

درگاهِ پرداختِ واقعیِ فروشگاه را باید روی میزبانِ خودتان وصل کنید.
ساختِ اپِ اندروید

APK و سورس

فایلِ APK ِ امضاشده به‌همراهِ سورسِ کامل تحویل می‌شود.

Kotlin و Compose

با فناوریِ روزِ اندروید و طراحیِ Material 3 بر پایهٔ رنگِ برندِ شما.

فارسی و راست‌به‌چپ

قلمِ فارسی، رقمِ فارسی و چیدمانِ درست؛ با بیش از ۳۶ قاعدهٔ بررسی.

راهنمای پنل

چه کاری می‌کند

در پنل فقط جواب نمی‌گیرید؛ کار انجام می‌شود. دستیار فایل می‌سازد و ویرایش می‌کند، کد اجرا می‌کند، پروژه می‌سازد و بیلد می‌گیرد، سند و PDF ِ فارسی تولید می‌کند، صفحه‌های وب را می‌خواند و صفحه‌ای را که ساخته در مرورگر باز می‌کند و ایرادش را می‌گیرد — و نتیجه را به شکلِ فایلِ آمادهٔ دانلود تحویل می‌دهد.

پس درخواست را مثلِ یک کار بنویسید، نه مثلِ یک سؤال: «یک صفحهٔ فرود با فرمِ تماس بساز و فایلش را بده» بهتر از «چطور صفحهٔ فرود بسازم؟» جواب می‌گیرد.

فایل‌ها

  • هرچه ساخته شود خودکار تحویل داده می‌شود. زیرِ پاسخ یک کارت می‌آید؛ یک کلیک روی کارت، فایل دانلود می‌شود. لازم نیست مسیر یا دستوری بپرسید.
  • عکس‌ها بندانگشتی می‌آیند تا صفحه شلوغ نشود؛ همان کارت را که بزنید، اصلِ فایل دانلود می‌شود.
  • خودتان هم فایل می‌فرستید. فایل را روی صفحه بکشید و رها کنید، یا از دکمهٔ گیره استفاده کنید. اسکرین‌شات را مستقیم با Ctrl+V بچسبانید.
  • ویرایشِ دوباره. در همان گفتگو بگویید چه چیزی عوض شود؛ نسخهٔ تازه به‌عنوانِ کارتِ تازه می‌آید و لازم نیست فایل را دوباره بفرستید.

نوشتن، توقف، بستنِ صفحه

  • Enter می‌فرستد، Shift+Enter خطِ تازه می‌سازد.
  • وسطِ کار می‌شود متوقف کرد. دکمهٔ ارسال وقتی کاری در جریان است «توقف» می‌شود؛ آنچه تا آن لحظه نوشته شده می‌ماند.
  • بستنِ صفحه کار را قطع نمی‌کند. کار تا آخر انجام می‌شود و دفعهٔ بعد، جواب و فایل‌هایش سرِ جایشان هستند.
  • عنوانِ گفتگو را با کلیک روی خودش عوض کنید. گفتگوها در ستونِ کنارِ صفحه‌اند و جست‌وجو دارند.

مدل و هزینه

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

کار روی مخزنِ گیت

کارِ گیت روی رایانهٔ خودتان انجام می‌شود، نه روی سرورِ ما — و این یک تصمیم است، نه کمبود. روی کامپیوترتان از قبل واردِ گیت‌هاب یا گیت‌لب هستید؛ پس هیچ توکنی لازم نیست به پنل بدهید و هیچ‌جا ذخیره نمی‌شود.

۱
وصل‌کردن

یک بار رایانه‌تان را وصل کنید.

۲
گفتن

«در پوشهٔ فلان، این تغییر را بده و کامیت کن.»

۳
انجام

دستور روی ماشینِ خودتان و با حسابِ گیتِ خودتان اجرا می‌شود.

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

رایانهٔ من

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

۱
بله را وصل کنید

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

۲
اپِ ویندوز

اپِ ویندوز را نصب کنید و واردِ حسابتان شوید.

۳
روشن‌کردن

در «تنظیمات» ِ اپ، کلیدِ «دسترسی به این رایانه» را بزنید. نه فایلی لازم است، نه تنظیمِ دستی.

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

انتخابِ حالت روی خودِ همان کامپیوتر است، در فایلِ aiws-pc.json کنارِ برنامهٔ اتصال؛ پوشه‌هایی که خواندن و نوشتن در آن‌ها آزاد است را هم همان‌جا مشخص می‌کنید (roots). چند چیز در هیچ حالتی اجرا نمی‌شود و با هیچ تأییدی هم باز نمی‌شود: دست‌زدن به خودِ برنامهٔ اتصال، تنظیمات و کلیدش.

  • چه چیزی لازم ندارد: نه زبانِ برنامه‌نویسی، و نه باز کردنِ هیچ پورتی روی مودم یا فایروال. برنامه خودش به سرویس وصل می‌شود، نه برعکس.
  • گزارش: دستورها با دسترسیِ همان کاربری اجرا می‌شوند که برنامه را اجرا کرده، و هر دستور در فایلِ aiws-pc.log کنارِ برنامه نوشته می‌شود. فقط گفتگوهای همان حساب، و فقط وقتی کاری در جریان است، می‌توانند به این رایانه دستور بدهند.
  • در «حساب من» می‌بینید چه چیزی پرسیده شد و چه شد — با دکمهٔ «رد کردنِ همهٔ در انتظارها» برای لحظه‌ای که چیزی درست به نظر نمی‌رسد.
  • قطع‌کردن: در «حساب من» دکمهٔ قطع را بزنید؛ از همان لحظه دیگر دستوری نمی‌گیرد، حتی اگر آن کامپیوتر روشن باشد.

دستگاه‌ها

می‌توانید هم‌زمان از چند دستگاه وارد باشید. فهرستِ دستگاه‌های واردشده و دکمهٔ بیرون‌کردنشان در «حساب من» است؛ اگر گوشی‌تان را گم کردید، از همان‌جا همهٔ دستگاه‌های دیگر را یک‌جا ببندید.

اتصالِ اپ‌های سازگار با Anthropic (مثلِ Claude Desktop)

اگر ترجیح می‌دهید به‌جای مرورگر از یک برنامهٔ دسکتاپ که پروتکلِ Messages را بلد است استفاده کنید، آن را به همین سرویس وصل کنید: همان مدل‌ها، همان سهمیه، و همان ابزارها.

۱
کلید بسازید

از صفحهٔ «کلیدها» ِ پنل، با حسابِ خودتان. کلید فقط همان یک بار نشان داده می‌شود. برای چند دستگاه، محدودیتِ آی‌پی نگذارید.

۲
حالتِ توسعه‌دهنده

Help → Troubleshooting → Enable Developer Mode

۳
آدرس و کلید

Developer → Configure Third-Party Inference…

Inference providerGateway
Gateway base URLhttps://ai.webservice.ir
Gateway API keyکلیدی که در قدمِ ۱ ساختید
Credential kindStatic API key
Gateway auth schemeBearer
آدرس را بدونِ /v1 بگذارید؛ خودِ اپ آن را اضافه می‌کند. با /v1 همهٔ درخواست‌ها به مسیرِ اشتباه می‌روند. متغیرهای ANTHROPIC_BASE_URL و ANTHROPIC_AUTH_TOKEN مالِ خطِ فرمان‌اند و اپِ دسکتاپ آن‌ها را نمی‌خواند.

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

چه کاری نمی‌کند

  • به کامپیوترِ شما دسترسی ندارد — مگر خودتان وصلش کنید. تا آن موقع، هر کاری که باید آن‌جا انجام شود به شکلِ فایل یا اسکریپتِ آماده تحویل داده می‌شود تا خودتان اجرایش کنید.
  • اگر سایتی باز نشود، خودش راهِ دیگری را امتحان می‌کند؛ اگر باز هم نشد، صریح می‌گوید نشد و محتوای قدیمی را به‌جای صفحهٔ واقعی جا نمی‌زند.
  • پاسخ‌ها ممکن است اشتباه داشته باشند. چیزهای مهم را خودتان بررسی کنید.

API و اتصال

API ِ AI WebService استانداردِ OpenAI است: همان پروتکلِ Chat Completions که بیشترِ ابزارها و کتابخانه‌های هوش مصنوعی با آن کار می‌کنند. یعنی SDK ِ رسمیِ OpenAI برای پایتون، Node.js و زبان‌های دیگر، و هر نرم‌افزاری که گزینهٔ «OpenAI-compatible» دارد، فقط با عوض‌کردنِ آدرسِ پایه و کلید به AI WebService وصل می‌شود — بی‌نوشتنِ حتی یک خط کدِ اختصاصی.

آدرسِ پایهhttps://ai.webservice.ir/v1
احرازِ هویتAuthorization: Bearer sk-awc-… — کلید فقط یک بار، هنگامِ ساخت، نشان داده می‌شود؛ سرور تنها هشِ آن را نگه می‌دارد، پس اگر گمش کنید باید کلیدِ تازه بسازید.
قالبِ بدنهapplication/json
مدل‌هافهرست را از GET /v1/models بگیرید؛ بی‌فرستادنِ model، مدلِ پیش‌فرض به کار می‌رود.

نشانی‌ها (Endpoints)

متدمسیرکار
GET/v1/modelsفهرستِ مدل‌های مجاز
GET/v1/models/{id}مشخصاتِ یک مدل
POST/v1/chat/completionsتولیدِ پاسخ، شکلِ OpenAI — معمولی یا جریانی
POST/v1/messagesتولیدِ پاسخ، شکلِ Anthropic — معمولی یا جریانی (پایین‌تر)
GET/v1/files/{conversation_id}فهرستِ فایل‌هایی که اجراها ساخته‌اند
GET/v1/files/{conversation_id}/{name}دانلودِ یکی از آن فایل‌ها
GET/api/helloبررسیِ سلامتِ سرویس، بی‌کلید

دو مسیرِ تولید هست چون دو خانوادهٔ کلاینت وجود دارد؛ هر دو یک موتور، یک کلید، یک سهمیه و یک تعرفه دارند و فقط شکلِ درخواست و پاسخ فرق می‌کند.

پارامترهای درخواست

نامنوعالزامیتوضیح
messagesarrayبلههر عضو {role, content}؛ نقش‌ها: system، user، assistant.
modelstringخیرنبودنش یعنی مدلِ پیش‌فرض؛ اگر کلید مدلِ ثابت داشته باشد، این فیلد نادیده گرفته می‌شود.
streambooleanخیربا true پاسخ به‌صورتِ جریانی (SSE) می‌آید.
conversation_idstringخیرافزودهٔ AI WebService — گفتگو را بینِ چند فراخوانی زنده نگه می‌دارد (پایین‌تر).

دو رفتار که باید بدانید: پیام‌های system با خطِ خالی به هم می‌چسبند و جایگزینِ پرامپتِ سیستمِ پیش‌فرض می‌شوند. اگر بیش از یک پیامِ غیرسیستمی بفرستید و conversation_id نداده باشید، همه در یک متن با برچسبِ «کاربر:» و «دستیار:» تا می‌شوند تا فراخوانِ بی‌حالت هم زمینه داشته باشد.

پاسخِ موفق — 200

{
  "id": "chatcmpl-8f2c1a9b4e7d0a6c3b5e9f21",
  "object": "chat.completion",
  "created": 1757240000,
  "model": "sonnet",
  "choices": [{
    "index": 0,
    "message": {"role": "assistant", "content": "..."},
    "finish_reason": "stop"
  }],
  "usage": {"prompt_tokens": 812, "completion_tokens": 143, "total_tokens": 955}
}

prompt_tokens جمعِ هر سه نوع ورودی است: ورودیِ تازه، توکنی که در کش نوشته شده و توکنی که از کش خوانده شده. محاسبهٔ هزینه اما با همان تفکیک انجام می‌شود.

نمونه‌کد

cURL

curl https://ai.webservice.ir/v1/chat/completions \
  -H "Authorization: Bearer sk-awc-..." \
  -H "Content-Type: application/json" \
  -d '{
    "messages": [
      {"role": "system", "content": "Answer with code only."},
      {"role": "user", "content": "Write a Python function that validates an Iranian national ID"}
    ]
  }'

Python (کتابخانهٔ رسمیِ openai)

from openai import OpenAI

client = OpenAI(base_url="https://ai.webservice.ir/v1", api_key="sk-awc-...")

r = client.chat.completions.create(
    messages=[
        {"role": "system", "content": "Answer with code only."},
        {"role": "user", "content": "Write a Python function that validates an Iranian national ID"},
    ],
)
print(r.choices[0].message.content)

Node.js

import OpenAI from "openai";

const client = new OpenAI({ baseURL: "https://ai.webservice.ir/v1", apiKey: "sk-awc-..." });

const r = await client.chat.completions.create({
  messages: [{ role: "user", content: "Write an nginx config that redirects www to the bare domain" }],
});
console.log(r.choices[0].message.content);

PHP

$ch = curl_init("https://ai.webservice.ir/v1/chat/completions");
curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => ["Authorization: Bearer sk-awc-...", "Content-Type: application/json"],
    CURLOPT_POSTFIELDS => json_encode(["messages" => [["role" => "user", "content" => "Explain this MySQL error: 1215"]]]),
]);
$res = json_decode(curl_exec($ch), true);
echo $res["choices"][0]["message"]["content"];

پاسخِ جریانی (Streaming)

ترتیب همیشه این است: یک تکه با delta: {"role": "assistant"} (شروع)، چند تکه با delta: {"content": "…"} (متن)، یک تکه با finish_reason: "stop" (پایانِ سالم)، و خطِ data: [DONE].

با "stream": true پاسخ تکه‌تکه به شکلِ استانداردِ SSE می‌آید و با data: [DONE] تمام می‌شود. خطایی که وسطِ جریان رخ دهد دیگر کدِ HTTP نمی‌گیرد؛ به‌صورتِ متن می‌آید و finish_reason برابرِ error می‌شود، پس آن را بررسی کنید:

stream = client.chat.completions.create(messages=[{"role": "user", "content": "..."}], stream=True)
for chunk in stream:
    choice = chunk.choices[0]
    if choice.delta.content:
        print(choice.delta.content, end="")
    if choice.finish_reason == "error":      # an error mid-stream arrives as text, not as an HTTP status
        raise RuntimeError("stream failed")

پروتکلِ Anthropic — /v1/messages

اگر برنامه‌تان با SDK ِ Anthropic نوشته شده — یا اپِ دسکتاپی که این پروتکل را بلد است — این مسیر را می‌زند:

تفاوتشکلِ OpenAIشکلِ Anthropic
مسیر/v1/chat/completions/v1/messages
احرازِ هویتAuthorization: Bearerx-api-key (هر دو پذیرفته می‌شود)
پرامپتِ سیستمپیامی با نقشِ systemفیلدِ جدای system
متنِ پاسخchoices[0].message.contentcontent[0].text
پوششِ خطا{"detail": "…"}{"type":"error","error":{…}}
# pip install anthropic
from anthropic import Anthropic

client = Anthropic(base_url="https://ai.webservice.ir", api_key="sk-awc-...")

msg = client.messages.create(
    max_tokens=1024,
    model="sonnet",
    system="Answer with code only.",
    messages=[{"role": "user", "content": "Write a bash one-liner that counts lines in *.py"}],
)
print(msg.content[0].text)

نامِ مدل: اگر کلاینت نامِ نسخه‌دار بفرستد، روی نامِ مستعارِ ما نگاشت می‌شود. تصویر و فایل: بلاک‌های image و document با source.type = "base64" پذیرفته می‌شوند. آدرسِ پایه برای SDK ِ Anthropic بدونِ /v1 است.

گفتگوی چندمرحله‌ای و صرفه‌جویی

در پروتکلِ OpenAI باید هر بار کلِ تاریخچه را دوباره بفرستید. در AI WebService با فرستادنِ یک conversation_id ثابت، موتور خودش گفتگو را نگه می‌دارد؛ و ادامهٔ یک گفتگو حدودِ یک‌چهارمِ شروعِ دوباره هزینه دارد — برای کارهای دسته‌ای (مثلاً صد توضیحِ محصول) یک شناسهٔ ثابت بگذارید:

# same conversation_id => the engine keeps the context; no need to resend the history
for item in products:
    client.chat.completions.create(
        messages=[{"role": "user", "content": f"Write a short description for: {item}"}],
        extra_body={"conversation_id": "catalog-2026-10"},
    )

فایلی که ساخته می‌شود

کلید همان ابزارهای پنل را دارد: می‌تواند فایل بسازد (کد، اکسل، PDF، …). فایل‌های یک گفتگو را با همان conversation_id بگیرید — هر اجرا تا ۱۰ فایل، هر کدام تا ۲۰ مگابایت:

curl -H "Authorization: Bearer sk-awc-..." https://ai.webservice.ir/v1/files/catalog-2026-10
curl -H "Authorization: Bearer sk-awc-..." -O https://ai.webservice.ir/v1/files/catalog-2026-10/report.xlsx

کدهای خطا

بدنهٔ خطا به شکلِ {"detail": "…"} است؛ کتابخانه‌های OpenAI کدِ وضعیت را درست می‌فهمند، ولی برای دیدنِ متنِ خطا بدنهٔ پاسخ را بخوانید.

کدیعنیچه کنیم
400پیامِ کاربر نیامده یا مدل ناشناخته استدست‌کم یک پیامِ user بفرستید؛ مدل را از /v1/models بگیرید
401کلید نیامده، اشتباه، باطل یا منقضی استهدر را درست بفرستید یا کلیدِ تازه بسازید
402سهمیه تمام شده، از حداقلِ لازم کمتر است، یا سقفِ خرجِ کلید پر شدهپلن یا شارژ بخرید، یا سقفِ کلید را عوض کنید
403آی‌پیِ فرستنده برای این کلید مجاز نیستآی‌پی را به فهرستِ مجازِ کلید اضافه کنید
502اجرا شروع شد ولی شکست خورددوباره تلاش کنید
503صف در مهلتِ مقرر خالی نشدبا کمی فاصله دوباره بفرستید

محدودیت‌ها و رفتارها

  • صف. درخواست‌ها به ترتیبِ رسیدن اجرا می‌شوند و در پاسخِ جریانی جایگاه در صف اعلام می‌شود؛ سقفِ مصنوعی‌ای بر تعدادِ درخواست‌های هم‌زمان نیست. درخواستی که بیش از مهلتِ صف ثانیه در صف بماند با 503 رد می‌شود.
  • زمانِ پاسخ چند ثانیه است (هر فراخوانی یک اجرای کامل است). API را برای کارهای پس‌زمینه و خودکارسازی به کار ببرید، نه برای دکمه‌ای که کاربر منتظرِ جوابِ فوری آن است؛ مثلاً متن‌ها را از پیش بسازید و ذخیره کنید.
  • شکلِ خروجی را صریح بگویید. اگر خروجی مستقیم جایی درج می‌شود، در پیامِ system بنویسید دقیقاً چه می‌خواهید (مثلاً «فقط کد، بی‌توضیح»).
  • زبانِ پاسخ همان زبانِ درخواست است؛ برای پاسخِ فارسی لازم نیست چیزی اضافه کنید.
  • کلید را مثلِ رمز نگه دارید. کلید همان توانِ پنل را دارد؛ اگر لو برود، به نامِ شما کار می‌کند. از محدودیتِ آی‌پی، تاریخِ انقضا و سقفِ خرج استفاده کنید (بخشِ «کلید، سقف و هزینه» پایین‌تر).

کلید، سقف و هزینه

هر پروژه کلیدِ خودش را دارد تا خرج و دسترسیِ هر کدام جدا کنترل شود.

سقفِ خرج

برای هر کلید سقفِ هزینه بگذارید تا خرج از کنترل خارج نشود.

محدودیتِ آی‌پی

کلید فقط از آی‌پی یا محدوده‌هایی که مجاز کرده‌اید کار کند.

تاریخِ انقضا

۳۰، ۹۰، ۱۸۰ یا ۳۶۵ روز، یا بدونِ انقضا.

مدلِ ثابت

هر کلید را می‌توان به یک مدل محدود کرد.

یک کیف پول، یک تعرفه

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

هزینهٔ منصفانه

زمانِ انتظار در صف و اجراهای ناموفق هزینه ندارند.

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

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

تعرفه

پلن‌ها ماهانه‌اند و قیمت و سهمیهٔ هر کدام زنده از خودِ سرویس خوانده می‌شود — همان عددهایی که هنگامِ خرید در پنل می‌بینید.

پلنقیمتِ ماهانهبه ریالسهمیهکارِ هم‌زمانکاربر
در حالِ خواندن از سرویس…
  • واحد با کارِ موتور کم می‌شود، نه با زمان. وقتی جواب را می‌خوانید یا تایپ می‌کنید چیزی کم نمی‌شود؛ انتظار در صف و کاری که با خطای سرویس شکست بخورد هم حساب نمی‌شود.
  • پنل و API از یک سهمیه می‌خورند — یک حساب، یک سهمیه.
  • واحدِ مصرف‌نشده به ماهِ بعد منتقل نمی‌شود؛ اگر وسطِ دوره تمام شود، شارژ یا ارتقا بگیرید.
  • خرید از «حساب و پلن» ِ پنل انجام می‌شود و با پرداخت، شرایطِ استفاده را می‌پذیرید.

اپ‌ها و دانلود

همان پنل، روی گوشی و کامپیوتر:

اپِ اندروید

دانلودِ فایل‌های ساخته‌شده، فرستادنِ فایل از گوشی و به‌روزرسانیِ خودکار.

اپِ ویندوز

آیکن کنارِ ساعت، پرسشِ سریع، گرفتنِ اسکرین‌شات از بخشی از صفحه، و اتصال به ویندوز برای کار روی سرور، شبکه و پروژه‌های خودتان.

روی وب

بدونِ نصب، از هر مرورگری؛ روی گوشی هم می‌شود آن را مثلِ اپ به صفحهٔ اصلی افزود.

  • اندروید: اندروید ۸ و بالاتر. پس از نصب، اپ خودش نسخهٔ تازه را می‌گیرد و با یک تپ نصب می‌کند.
  • ویندوز: ویندوز ۱۰ و ۱۱. چون فایل امضای دیجیتال ندارد، ویندوز هشدار می‌دهد؛ More info و سپس Run anyway.
  • نشانیِ دانلود همیشه تازه‌ترین نسخه را می‌دهد؛ برای هم‌رسانی، همین نشانی‌ها را بفرستید.

شروع کار

۱
حساب

دسترسی فعلاً با دعوت است و حساب را مدیرِ سرویس می‌سازد؛ برای گرفتنِ حساب با ما تماس بگیرید.

۲
ورود

در ai.webservice.ir با شمارهٔ موبایل و کدِ یک‌بارمصرف وارد شوید.

۳
انتخابِ پلن

از «حساب و پلن» ِ پنل، پلنِ مناسب را بخرید.

۴
اولین کار

کارتان را مثلِ یک درخواست بنویسید؛ نتیجه را به شکلِ فایل تحویل بگیرید.