رفتن به محتوا

استفاده از API هوش مصنوعی بدون VPN؛ هنگام قطعی اینترنت بین‌الملل چه کنیم؟

بدون VPN و کارت خارجی از GPT، Claude و Gemini استفاده کنید و بدانید هنگام قطعی اینترنت بین‌الملل کدام مدل‌ها کار می‌کنند؛ همراه با کد مسیر جایگزین به مدل داخلی.

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

توسعه‌دهنده‌های ایرانی برای استفاده از API مدل‌های هوش مصنوعی معمولاً با دو مشکل روبه‌رو می‌شوند. اول اینکه سرویس‌هایی مثل OpenAI و Anthropic درخواست‌های ایران را رد می‌کنند و خیلی‌ها مجبور می‌شوند روی سرورشان VPN راه بیندازند. دوم اینکه وقتی اینترنت بین‌الملل قطع یا محدود می‌شود، همان VPN هم دیگر کاری از پیش نمی‌برد. این مطلب توضیح می‌دهد هر کدام از این دو مشکل را چطور می‌شود کنار گذاشت و برای روزهای قطعی از قبل چه آماده‌سازی‌ای لازم است.

چرا VPN روی سرور راه‌حل خوبی نیست؟

راه انداختن VPN یا پروکسی شخصی روی سرور ظاهراً ساده است، اما در محیط تولید دردسرهای زیادی دارد:

  • ناپایداری: اتصال VPN وسط درخواست قطع می‌شود و پاسخ‌های طولانی یا استریم‌شده نصفه می‌مانند.
  • رد شدن درخواست: سرویس‌دهنده‌ها درخواست‌های مرتبط با ایران را با خطاهایی مثل unsupported_country_region_territory رد می‌کنند و عوض کردن آی‌پی همیشه جواب نمی‌دهد.
  • پرداخت: حتی با اتصال درست، شارژ حساب این سرویس‌ها به کارت بین‌المللی نیاز دارد.
  • نگهداری و امنیت: یک VPN دیگر هم باید پایش و به‌روزرسانی شود، و کل ترافیک برنامهٔ شما از سرور یک شخص ثالث می‌گذرد.

هیبانا این مشکل را چطور حل می‌کند؟

برنامهٔ شما به‌جای سرور خارجی، به آدرس https://api-ai.hibanacloud.ir/v1 درخواست می‌فرستد. این آدرس داخلی است و از سرورهای داخل ایران در دسترس است؛ مسیردهی درخواست به OpenAI، Anthropic، Google و سرویس‌دهنده‌های دیگر روی زیرساخت خود هیبانا انجام می‌شود. در نتیجه:

  • روی سرور خودتان به هیچ VPN یا پروکسی‌ای نیاز ندارید؛
  • هزینه را به ریال و از کیف پول پرداخت می‌کنید؛
  • کد همان کد OpenAI است و فقط base_url و کلید عوض می‌شوند (جزئیات در راهنمای API هوش مصنوعی).

وقتی اینترنت بین‌الملل قطع می‌شود

وقتی ارتباط بین‌الملل قطع است، مدل‌های خارجی مثل GPT، Claude و Gemini از هیچ مسیری در دسترس نیستند، نه از هیبانا و نه از جای دیگر. تفاوت در این است که هیبانا مدل‌های داخلی هم دارد: مدل‌هایی که روی سرورهای خود هیبانا اجرا می‌شوند و به ارتباط بین‌الملل وابسته نیستند. با همان کلید و همان کد صدایشان می‌زنید و برای هر کار کافی است نام مدل را عوض کنید: GPT-OSS به‌جای مدل‌های چت خارجی و bge-m3 به‌جای مدل‌های امبدینگ.

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

مدل‌های داخلی فعلی:

مدلکاربردویژگی
GPT-OSSچت، پاسخ‌گویی، خلاصه‌سازیپنجرهٔ متن ۱۶ هزار توکن، پشتیبانی از فراخوانی ابزار
bge-m3امبدینگ، جست‌وجوی معنایی و RAGبردار ۱۰۲۴ بعدی، مناسب متن فارسی

فهرست به‌روز مدل‌ها و قیمت‌ها همیشه در لیست مدل‌ها است. اگر از جست‌وجوی معنایی استفاده می‌کنید، ساختن بردارها با bge-m3 یعنی جست‌وجوی شما در روزهای قطعی هم کار می‌کند؛ نمونهٔ کامل آن را در آموزش RAG فارسی با bge-m3 ببینید.

یک مسیر جایگزین در کد خودتان

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

import openaifrom openai import OpenAI client = OpenAI(base_url="https://api-ai.hibanacloud.ir/v1", api_key="YOUR_API_KEY", timeout=60) # اول مدل خارجی، اگر در دسترس نبود مدل داخلی — با همان کلید و همان کدMODELS = ["gpt-5-nano", "gpt-oss"]  def ask(messages):    last_error = None    for model in MODELS:        try:            r = client.chat.completions.create(model=model, messages=messages)            return model, r.choices[0].message.content        # قطع ارتباط، پایان زمان انتظار یا خطای 5xx؛ خطای درخواست (مثل 400 یا 401) را دوباره امتحان نکنید        except (openai.APIConnectionError, openai.InternalServerError) as e:            print(f"{model} در دسترس نیست ({type(e).__name__})؛ مدل بعدی…")            last_error = e    raise last_error  model, text = ask([{"role": "user", "content": "در یک جمله: پایتخت ایران کجاست؟"}])print(f"[{model}] {text}")

در حالت عادی مدل اول پاسخ می‌دهد:

[gpt-5-nano] تهران پایتخت ایران است.

و وقتی مدل خارجی در دسترس نیست، همان تابع سراغ مدل داخلی می‌رود. برای این آزمایش، قطعی را با زمان انتظار یک‌میلی‌ثانیه‌ای برای مدل اول شبیه‌سازی کردیم:

gpt-5-nano در دسترس نیست (APITimeoutError)؛ مدل بعدی…[gpt-oss] پایتخت ایران تهران است.

دو نکته دربارهٔ این الگو:

  • فقط خطاهای موقتی را با مدل دیگر امتحان کنید. قطع ارتباط، پایان زمان انتظار و خطاهای 5xx نشانهٔ در دسترس نبودن هستند. خطای 401 (کلید نامعتبر) با هیچ مدلی برطرف نمی‌شود و خطای 400 معمولاً از خود درخواست است، مثلاً پارامتری که آن مدل نمی‌پذیرد؛ این دو نشانهٔ قطعی نیستند و باید جداگانه بررسی شوند.
  • زمان انتظار را معقول بگذارید. اگر زمان انتظار خیلی طولانی باشد، کاربر مدت زیادی منتظر می‌ماند تا مسیر جایگزین فعال شود. برای درخواست‌های کوتاه، چند ده ثانیه کافی است.

چک‌لیست آمادگی برای روزهای قطعی

  • برای هر قابلیت برنامه‌تان (چت، خلاصه‌سازی، جست‌وجو) از همین حالا یک مدل داخلی جایگزین تعیین کنید.
  • برنامه را یک بار با مدل داخلی تست کنید؛ کیفیت و سبک پاسخ مدل‌ها یکی نیست و ممکن است لازم باشد پرامپت را کمی تنظیم کنید.
  • اگر RAG یا جست‌وجوی معنایی دارید، بردارها را با bge-m3 بسازید تا جست‌وجو هم وابسته به ارتباط بین‌الملل نباشد.
  • وقتی به مدل جایگزین سوئیچ می‌کنید، در لاگ‌ها ثبتش کنید تا بدانید سرویس چه مدت در حالت جایگزین بوده است.

جمع‌بندی

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

مطالب مرتبط

دسترسی به API جمینای (Gemini) در ایران؛ مدل‌ها، قیمت و نمونه‌کد

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

۶ دقیقه مطالعه

با یک کلید به همه مدل‌ها وصل شوید

GPT، Claude، Gemini و ده‌ها مدل دیگر، با پرداخت ریالی و یک API سازگار با OpenAI.