اوتاری: دروازهای برای مدلهای زبانی که خودت میگردونیش
خلاصهٔ کاملتر
موزیلا یه ابزار متنباز به اسم Otari منتشر کرده؛ یه پروکسی یا «دروازه» برای مدلهای زبانی که خودت روی محیط خودت اجراش میکنی. ایدهش سادهست: اپلیکیشنهات بهجای اینکه مستقیم با OpenAI یا بقیه حرف بزنن، با اوتاری حرف میزنن و اوتاری درخواست رو به ارائهدهندهی درست میرسونه.
تو مستندات اومده که اوتاری یه آدرس واحد و سازگار با OpenAI جلوی بیش از ۴۰ ارائهدهنده میذاره (از طریق کتابخونهی any-llm خودشون)، برای همین کد کلاینت لازم نیست بدونه پشت صحنه کدوم ارائهدهنده جواب میده. این یعنی میتونی بین OpenAI و Anthropic و Mistral و Gemini جابهجا بشی بدون اینکه کدت رو عوض کنی.
نکتهی اصلی که سازندهها روش تأکید میکنن، کنترل و امنیته. کلیدهای واقعی ارائهدهندهها فقط تو یه جا (پیش خود اوتاری) میمونن و اپلیکیشنهات هیچوقت نمیبیننشون؛ بهجاش بهشون کلید مجازی میدی که میتونی محدودش کنی یا لغوش کنی. بودجه هم قبل از اجرای درخواست چک میشه، نه بعد از اومدن صورتحساب.
چون اوتاری سازگار با OpenAI هست، هر کلاینت OpenAI فقط با عوضکردن base_url باهاش کار میکنه:
from openai import OpenAI
client = OpenAI(api_key="gw-...", base_url="http://localhost:8000/v1")
response = client.chat.completions.create(
model="openai:gpt-4o-mini",
messages=[{"role": "user", "content": "Hello from Otari"}],
)هر درخواست هم لاگ میشه و از مسیر /v1/usage قابلکوئریه، برای همین همون لحظهای که اجرا میشه مصرفش شمارش میشه. اوتاری چند حالت اجرا داره: حالت مستقل که همهچی رو محلی مدیریت میکنه، و حالت هیبرید که به سرویس ابری خودشون otari.ai وصل میشی و اونا مسیریابی و ردگیری رو برات انجام میدن.
دو تا قابلیت اضافه هم داره که نویسنده بهشون اشاره میکنه: ابزارهای داخلی مثل اجرای کد پایتون تو سندباکس و جستوجوی وب، و «guardrails» یعنی بررسیهایی که قبل از رسیدن درخواست به ارائهدهنده روی ورودی اجرا میشن؛ مثلاً یه پروفایل برای تشخیص prompt injection که مدل نمیتونه ببینتش یا ردش کنه. کل پروژه هم تحت لایسنس Apache 2.0 منتشر شده.
نکات کلیدی:
- یه دروازه متنباز و self-hosted از موزیلا که جلوی بیش از ۴۰ ارائهدهنده مدل میشینه
- یه آدرس واحد سازگار با OpenAI، پس کد کلاینت به ارائهدهنده وابسته نیست
- کلیدهای واقعی پیش خودت میمونه و به کلاینتها کلید مجازی قابللغو میدی
- بودجه قبل از خرج شدن چک میشه و کل مصرف از /v1/usage قابل ردگیریه
- ابزارهای داخلی (اجرای کد و جستوجوی وب) و guardrails برای امنیت ورودی داره




