GPT-4o LATENCY240msCLAUDE OPUS 4.7ONLINENVDA+1.2%MISTRAL LARGE 2STREAMINGOPENAI API99.97% UPTIMEGROQ MIXTRAL580 tok/sGEMINI 2.5 PROCTX 2MANTHROPIC STATUSOKTSMC+0.4%PERPLEXITYINDEXINGGPT-4o LATENCY240msCLAUDE OPUS 4.7ONLINENVDA+1.2%MISTRAL LARGE 2STREAMINGOPENAI API99.97% UPTIMEGROQ MIXTRAL580 tok/sGEMINI 2.5 PROCTX 2MANTHROPIC STATUSOKTSMC+0.4%PERPLEXITYINDEXING
پرش به محتوای مقاله

چگونه استریم لحظه‌ای مدل‌های زبانی را با کمتر از ۱۵۰ خط کد در Next.js بسازیم؟

·۱۵ خرداد ۱۴۰۵۵ دقیقه مطالعه
راهنما
نمودار معماری استریم پاسخ Ollama با الگوی SSE در Next.js
نمودار معماری استریم پاسخ Ollama با الگوی SSE در Next.js
اشتراک‌گذاری
واقعاً چه چیز جدید است؟

معرفی یک الگوی پیاده‌سازی بهینه در Next.js 15 که با استفاده از SSE، نیاز به زیرساخت‌های پیچیده برای استریم توکن‌ها را حذف کرده و مدل‌های محلی Ollama را مستقیماً به UI متصل می‌کند.

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

بسیاری از برنامه‌نویسان به‌طور پیش‌فرض از یک فراخوان ساده fetch استفاده می‌کنند که باعث ایجاد تجربه‌ای تکان‌دهنده و قطع‌شده برای کاربر می‌شود. طبق گزارش dev.to در ۱۸ آوریل ۲۰۲۶، استفاده از رویدادهای ارسالی سرور (SSE) — که شبیه به یک پخش رادیویی یک‌طرفه از سرور به کاربر است — این مشکل را حل می‌کند. SSE از HTTP ساده استفاده می‌کند و برخلاف WebSocket، نیازی به دست‌اندازی (Handshake) پیچیده ندارد.

همان‌طور که در تحلیل قبلی ما درباره‌ی بهینه‌سازی رابط کاربری برای مدل‌های زبانی اشاره کردیم، کاهش زمان پاسخ اولیه (TTFT) کلید رضایت کاربر است. در این پیاده‌سازی از Next.js 15 App Router و ابزار Ollama برای اجرای مدل qwen2.5:7b استفاده شده است. در این ساختار، مدل زبانی بزرگ (LLM) — مثل کتابخانه‌داری که میلیاردها صفحه را خوانده و حالا با همان لحن جواب می‌دهد — باید در سه لایه مدیریت شود: یک هندلر در مسیر سرور، یک هوک در سمت کلاینت و یک لایه رابط کاربری.

بر اساس مستندات فنی این روش، رعایت نکات زیر حیاتی است:

  • فعال کردن پرچم stream: true در درخواست Ollama برای ارسال توکن به توکن.
  • افزودن هدر X-Accel-Buffering: no برای جلوگیری از بافر شدن پاسخ توسط Nginx یا CDNها.
  • کل منطق کدنویسی در قالب حدود ۱۵۰ خط TypeScript قرار می‌گیرد.

این تغییر، نگاه ما به هوش مصنوعی محلی را عوض می‌کند. حس کاربر از «آیا برنامه هنگ کرده؟» به «مدل دارد فکر می‌کند» تغییر می‌یابد. برای یک توسعه‌دهنده، این یعنی استقرار مدل‌های محلی در سطح تولید (Production) بدون نیاز به زیرساخت‌های سنگین WebSocket، اکنون یک واقعیت است.

گام بعدی شما

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

اما داستان سخت‌افزاری این تحول حتی شگفت‌انگیزتر است — به تحلیل ما درباره‌ی تراشه‌های Blackwell مراجعه کنید.

چرا این موضوع مهم است؟

این رویکرد با تکیه بر استانداردهای وب (HTTP)، پیچیدگی زیرساختی را حذف کرده و اجازه می‌دهد توسعه‌دهندگان با تخصص کمتر، تجربه‌ای در سطح محصولات OpenAI خلق کنند. اعتماد به این متد از آن جهت است که SSE در تمامی مرورگرهای مدرن به‌طور بومی پشتیبانی می‌شود.

تأثیر برای ایران

بسیاری از توسعه‌دهندگان ایرانی به‌دلیل محدودیت دسترسی به APIهای خارجی، به سمت Ollama و مدل‌های محلی می‌روند؛ این متد مسیر پیاده‌سازی تجاری این مدل‌ها را در ایران هموارتر می‌کند.

·نگاه ما
تحریریه دات‌هوش

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

منابع

گفتگو

شماره ۰۵۳پنج‌شنبه‌های هوش‌محور

بسته‌ی هفتگی دات‌هوش

۵ خبر، ۲ ابزار، ۱ پرامپت — به‌علاوه ۳ بخش جدید. بدون هیاهو، هر پنج‌شنبه صبح.

خبر کلیدی
ابزار کاربردی
پرامپت حرفه‌ای
تحلیل پژوهش
به‌زودی
زاویه‌ی ایرانی
به‌زودی
تمرین این هفته
به‌زودی
۰۰:۰۰تا شماره بعدیهفته‌ی ۵۳ بدون وقفه