با Prompt API یک چت بات محلی و آفلاین بسازید

تاریخ انتشار: 13 ژانویه 2024

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

برخی از دستگاه های جدیدتر با زبان بزرگ و سایر مدل های هوش مصنوعی مستقیماً روی دستگاه عرضه می شوند. کروم ادغام APIهای هوش مصنوعی داخلی را در مرورگر با تعدادی API در مراحل مختلف توسعه پیشنهاد کرده است. بسیاری از این APIها مراحل استاندارد را طی می کنند، به طوری که وب سایت ها می توانند از همان پیاده سازی و مدل برای دستیابی به حداکثر عملکرد استنتاج استفاده کنند.

Prompt API یکی از این API های هوش مصنوعی است. برای استفاده از آن، توسعه دهندگان تشویق می شوند تا برای برنامه پیش نمایش اولیه ثبت نام کنند. پس از پذیرش، دستورالعمل‌هایی درباره نحوه فعال کردن Prompt API در مرورگرها دریافت خواهید کرد. Prompt API در نسخه آزمایشی اصلی برای برنامه های افزودنی Chrome در دسترس است، بنابراین می توانید این API را برای کاربران واقعی برنامه افزودنی آزمایش کنید.

دسترسی مدل مشترک

Prompt API مشابه WebLLM عمل می کند. با این حال، این بار انتخاب مدلی وجود ندارد (شما باید از LLM که با مرورگر ارسال می شود استفاده کنید). هنگام فعال کردن هوش مصنوعی داخلی، کروم Gemini Nano را در مرورگر دانلود می‌کند. سپس این مدل می تواند در چندین منبع به اشتراک گذاشته شود و با حداکثر کارایی اجرا شود. یک مشکل GitHub وجود دارد که در آن یک توسعه دهنده درخواست کرده است که یک ویژگی انتخاب مدل را اضافه کند.

مکالمه را تنظیم کنید

شما می توانید مکالمه پیام را دقیقاً به همین روش شروع کنید، اما Prompt API همچنین یک نحو مختصر برای تعیین اعلان سیستم ارائه می دهد. جلسه مدل زبان را با استفاده از متد create() در ویژگی self.ai.languageModel شروع کنید:

const session = await self.ai.languageModel.create({
  systemPrompt: `You are a helpful assistant. You will answer questions related
  to the user's to-do list. Decline all other requests not related to the user's
  todos. This is the to-do list in JSON: ${JSON.stringify(todos)}`,
});

به سوال اولت جواب بده

به جای داشتن یک شی پیکربندی برای پیکربندی جریان، Prompt API دو روش مجزا را ارائه می دهد:

  • prompt() رشته کامل را برمی گرداند
  • promptStreaming() یک تکرار ناهمگام را برمی گرداند. برخلاف WebLLM، Prompt API با پاسخ رشته کامل پاسخ می دهد، بنابراین نیازی نیست خودتان نتایج را ترکیب کنید.

اگر قبلاً هیچ منبع دیگری دانلود مدل را آغاز نکرده است، اولین درخواست شما ممکن است زمان زیادی طول بکشد تا زمانی که Gemini Nano در مرورگر شما دانلود می شود. اگر مدل از قبل در دسترس باشد، استنتاج بلافاصله شروع می شود.

const stream = session.promptStreaming("How many open todos do I have?");
for await (const reply of stream) {
  console.log(reply);
}

نسخه ی نمایشی

خلاصه

ادغام LLM ها در برنامه ها می تواند تجربه کاربر را به میزان قابل توجهی افزایش دهد. در حالی که سرویس‌های ابری مدل‌های با کیفیت بالاتر و عملکرد استنتاج بالا را بدون توجه به دستگاه کاربر ارائه می‌دهند، راه‌حل‌های روی دستگاه، مانند WebLLM و Chrome's Prompt API، قابلیت آفلاین، بهبود حریم خصوصی و صرفه‌جویی در هزینه را در مقایسه با جایگزین‌های مبتنی بر ابر دارند. این API های جدید را امتحان کنید و برنامه های وب خود را هوشمندتر کنید.