استریم متن با AI در NextJS
تولید متن ممکن است زمانبر باشد، مخصوصاً وقتی که در حال تولید چند پاراگراف باشید. در چنین مواردی، استریم فرآیند تولید متن بهصورت بلادرنگ به سمت کلاینت، مفید است و این امکان را فراهم میکند که کلاینت، متن تولیدشده را در حین generation نمایش دهد، بهجای اینکه کاربر منتظر بماند تا تولید کامل شود و سپس نتیجه نمایش داده شود.
کلاینت
بیایید یک کامپوننت سادهی React ایجاد کنیم که در آن از هوک useCompletion از ماژول ai-sdk/react@ استفاده شده است. هوک useCompletion هنگام کلیک روی یک دکمه، endpoint به نام api/completion/ را فراخوانی میکند. این endpoint بر اساس پرامپت، ورودی متنی تولید کرده و آن را بهصورت استریم به کلاینت ارسال میکند.
قطعه کد زیر را در فایل app/page.tsx قرار دهید:
سرور
بیایید یک route handler برای مسیر api/completion/ ایجاد کنیم که وظیفه دارد بر اساس پرامپت ورودی، متنی تولید کند. این route، تابع streamText از ماژول ai را فراخوانی خواهد کرد. این تابع، متن را بر اساس پرامپت ورودی تولید کرده و نتیجه را به صورت استریم، به کلاینت بازمیگرداند.
قطعه کد زیر را در مسیر app/api/completion/route.ts، قرار دهید:
متغیرهای محیطی BASE_URL و LIARA_API_KEY همان baseUrl سرویس هوش مصنوعی لیارا و کلید API لیارا هستند که باید در بخش متغیرهای محیطی برنامه خود، آنها را تنظیم کنید.
خروجی برنامه فوق:

پروژه فوق را میتوانید بهصورت کامل در گیتهاب لیارا، مشاهده کنید.