Cara Akses Ollama dari Next.js dan Node.js: Bangun Aplikasi AI Lokal

Disclosure: artikel ini dapat memuat rekomendasi tools atau tautan afiliasi/sponsor di masa depan. Baca disclosure afiliasi.

Cara Akses Ollama dari Next.js dan Node.js: Bangun Aplikasi AI Lokal

Next.js adalah framework React yang memungkinkan Anda membangun aplikasi web full-stack dengan server-side rendering, API routes, dan banyak fitur modern lainnya. Dengan mengintegrasikan Ollama ke dalam Next.js, Anda bisa membuat aplikasi AI lokal dengan antarmuka web yang profesional — tanpa bergantung pada API berbayar seperti OpenAI. Tutorial ini akan membahas dari setup awal hingga deployment, termasuk integrasi dengan Node.js murni untuk fleksibilitas maksimal.

Setup Proyek Next.js

Langkah pertama adalah membuat proyek Next.js baru. Buka terminal dan jalankan: npx create-next-app@latest ollama-nextjs --typescript --tailwind --app. Pilih App Router untuk routing modern. Setelah instalasi selesai, masuk ke direktori proyek dan install pustaka Ollama untuk Node.js: npm install ollama. Pustaka ini menyediakan API JavaScript yang lengkap untuk berkomunikasi dengan server Ollama. Pastikan server Ollama berjalan dengan memanggil curl http://localhost:11434/api/tags di terminal.

Membuat API Route untuk Chat

Di Next.js App Router, API route dibuat di direktori app/api/chat/route.ts. File ini mengekspor fungsi POST handler. Di dalamnya, inisialisasi Ollama client, ambil data messages dari request body, lalu panggil ollama.chat dengan mode streaming. Untuk mengirim respons streaming ke frontend, gunakan Web Streams API bawaan Node.js. Buat ReadableStream yang menulis setiap chunk dari Ollama ke stream response. Set header Content-Type ke text/event-stream untuk SSE atau application/x-ndjson untuk newline-delimited JSON.

Frontend Chat dengan React Server Components

Di sisi frontend, buat komponen klien (Client Component) untuk chat interface. Komponen ini menggunakan useState untuk menyimpan messages dan current input. Saat user mengirim pesan, lakukan fetch POST ke /api/chat. Untuk menangani streaming, gunakan response.body.getReader() dan DecoderStream. Baca stream dalam loop, decode setiap chunk menjadi teks, dan update state messages secara incremental. Berikan indikator loading (animasi titik-titik atau skeleton) saat menunggu respons. Tambahkan auto-scroll ke pesan terbaru.

Integrasi dengan Node.js Murni

Selain Next.js, Anda juga bisa menggunakan Node.js murni untuk aplikasi yang lebih sederhana. Buat file JavaScript, install ollama via npm, lalu buat server HTTP dengan modul http bawaan. Server ini bisa menjadi backend API yang melayani request dari berbagai frontend (React, Vue, mobile app, dll). Contoh: const ollama = new Ollama(); require('http').createServer(async (req, res) => { const chunks = []; req.on('data', c => chunks.push(c)); req.on('end', async () => { const { messages } = JSON.parse(Buffer.concat(chunks)); const stream = await ollama.chat({ model, messages, stream: true }); for await (const part of stream) { res.write(JSON.stringify(part) + 'n'); } res.end(); }); }).listen(3001);.

Manajemen Riwayat Percakapan

Untuk menjaga konteks percakapan, Anda perlu mengirim seluruh riwayat chat ke model setiap kali ada pesan baru. Ini berarti efisiensi token menjadi penting. Batasi riwayat ke 10-20 pesan terakhir untuk menghemat token. Implementasikan sliding window: jika jumlah pesan melebihi batas, hapus pesan tertua (kecuali system prompt yang harus selalu dipertahankan). Simpan riwayat di state frontend atau di database. Untuk aplikasi multi-user, gunakan session ID untuk memisahkan percakapan antar pengguna, dan simpan data di Redis atau database ringan.

Error Handling dan Loading State

Aplikasi yang baik harus menangani berbagai skenario error: (1) Server Ollama tidak berjalan — tampilkan pesan “Server AI lokal tidak tersedia” dengan instruksi menjalankan Ollama. (2) Model tidak ditemukan — beri opsi untuk mendownload model. (3) Timeout — beri tahu pengguna dan tawarkan untuk mengulang. (4) OOM — sarankan menggunakan model yang lebih kecil. Implementasikan retry logic untuk error sementara. Tampilkan loading state yang jelas saat menunggu respons. Jangan biarkan UI membeku — gunakan streaming atau setidaknya indikator progres.

Deploy ke Production

Untuk deployment production, pertimbangkan: (1) Gunakan Docker Compose dengan dua container — satu untuk Next.js, satu untuk Ollama. Hubungkan via internal docker network. (2) Set environment variables untuk konfigurasi: OLLAMA_HOST, MODEL_NAME, MAX_TOKENS, dll. (3) Implementasikan rate limiting untuk mencegah satu user memonopoli resource. (4) Tambahkan autentikasi (JWT atau session-based) jika aplikasi diakses banyak orang. (5) Gunakan PM2 atau process manager untuk auto-restart. (6) Monitor dengan logging ke file atau service seperti Grafana. (7) Gunakan reverse proxy (Nginx) untuk SSL termination dan load balancing jika perlu.

Cara Akses Ollama dari Next.js dan Node.js: Bangun Aplikasi AI Lokal

Ollama enak dipakai dari aplikasi web, terutama Next.js dan Node.js.

Cara Pakai

  • Install package dengan npm install ollama.
  • Panggil model di server-side code, bukan langsung dari browser.
  • Gunakan ollama.chat di API route atau server action.
  • Tambahkan limit prompt, timeout, dan error handling.

Use Case

  • Chatbot internal.
  • Form bantuan produk offline.
  • Rangkuman dokumen untuk admin panel.
  • Helper AI di dashboard konten.

Dengan Next.js atau Node.js, Ollama bisa dipakai seperti backend AI lokal.

n

Menggunakan WebSocket untuk Komunikasi Real-Time

Selain HTTP streaming, WebSocket adalah alternatif yang lebih efisien untuk komunikasi real-time antara frontend dan backend. WebSocket mempertahankan koneksi persisten sehingga tidak perlu membuat koneksi baru setiap request. Di Next.js, Anda bisa membuat WebSocket server menggunakan library ws bersamaan dengan server HTTP Next.js. Atau pisahkan WebSocket server di port terpisah. Frontend menggunakan WebSocket API bawaan browser untuk mengirim pesan dan menerima streaming token. WebSocket lebih cocok untuk aplikasi yang membutuhkan pertukaran pesan dua arah yang cepat dan sering.

Text Generation tanpa Chat (Generate API)

Selain chat API, Ollama juga menyediakan generate API untuk text completion tanpa format percakapan. Ini berguna untuk tugas seperti summarization, translation, atau content generation di mana tidak perlu riwayat chat. Endpoint generate menggunakan parameter prompt (string teks) bukan messages. Di Node.js: const response = await ollama.generate({ model: 'qwen3.5:7b', prompt: 'Ringkas artikel berikut dalam 3 kalimat:', stream: true }). Generate API lebih sederhana dan memiliki overhead lebih kecil dibanding chat API. Pilih generate API jika aplikasi Anda hanya perlu satu putaran interaksi tanpa konteks percakapan.

Menggabungkan dengan Vector Database

Untuk aplikasi RAG (Retrieval-Augmented Generation), Anda bisa menggabungkan Ollama dengan vector database. Gunakan embedding API Ollama untuk mengubah teks menjadi vektor embedding: const embed = await ollama.embed({ model: 'nomic-embed-text', input: 'Teks yang akan di-embedding' }). Simpan embedding di database seperti SQLite dengan ekstensi vektor (sqlite-vec), ChromaDB, atau FAISS. Saat ada pertanyaan, embedding pertanyaan dicocokkan dengan embedding dokumen menggunakan similarity search. Hasil pencarian dikirim sebagai konteks ke model chat. Pendekatan ini memungkinkan aplikasi menjawab pertanyaan berdasarkan dokumen spesifik yang Anda miliki.

class=”wp-block-heading”>Sumbernn

Sumber asli: Ollama.

nn

Panduan Praktis Menggunakan Cara Akses Ollama dari Next.js dan Node.js: Bangun Aplikasi AI Lokal

Bagian ini menambahkan konteks praktis agar pembaca tidak hanya mengetahui nama tools, tetapi juga memahami kapan tools ini sebaiknya dipakai, kapan sebaiknya dihindari, dan bagaimana cara mengevaluasi hasilnya. Untuk pemula, pendekatan paling aman adalah mulai dari satu kasus penggunaan kecil: meringkas dokumen, membantu menulis draft, membuat kode sederhana, atau menyusun ide kerja. Setelah hasilnya konsisten, barulah tools dapat dimasukkan ke workflow yang lebih penting.

Sebelum memakai tools AI dalam pekerjaan nyata, pastikan Anda memahami tiga hal: jenis data yang boleh dimasukkan, kualitas output yang diharapkan, dan cara memeriksa ulang hasilnya. Jangan memasukkan data rahasia perusahaan, data pelanggan, dokumen kontrak, atau kredensial sistem ke layanan AI publik kecuali kebijakan organisasi memang mengizinkannya.

Contoh Workflow yang Disarankan

  • Riset awal: minta AI membuat daftar poin penting, lalu verifikasi dengan sumber resmi.
  • Drafting: gunakan AI untuk membuat struktur artikel, email, laporan, atau kode awal.
  • Review: minta AI mencari kelemahan, bug, asumsi yang belum terbukti, atau bagian yang terlalu ambigu.
  • Finalisasi: manusia tetap memutuskan versi akhir, terutama untuk konten publik, keputusan bisnis, dan kode produksi.

Dengan alur seperti ini, tools AI menjadi asisten produktivitas, bukan pengganti penilaian manusia. Cara ini juga membantu mengurangi risiko hallucination, jawaban terlalu percaya diri, dan kesalahan teknis yang sering muncul pada penggunaan AI tanpa review.

Checklist Evaluasi Tools AI

Gunakan checklist berikut sebelum memilih tools AI untuk pemakaian rutin: apakah hasilnya konsisten dalam beberapa percobaan, apakah dokumentasinya jelas, apakah harga sesuai kebutuhan, apakah ada batasan privasi, apakah mendukung bahasa Indonesia, dan apakah mudah diintegrasikan ke workflow Anda. Jika tools digunakan untuk coding, tambahkan pengecekan test otomatis, review manual, dan version control agar perubahan dapat dilacak dengan aman.

Panduan Praktis Menggunakan Cara Akses Ollama dari Next.js dan Node.js: Bangun Aplikasi AI Lokal

Bagian ini menambahkan konteks praktis agar pembaca tidak hanya mengetahui nama tools, tetapi juga memahami kapan tools ini sebaiknya dipakai, kapan sebaiknya dihindari, dan bagaimana cara mengevaluasi hasilnya. Untuk pemula, pendekatan paling aman adalah mulai dari satu kasus penggunaan kecil: meringkas dokumen, membantu menulis draft, membuat kode sederhana, atau menyusun ide kerja. Setelah hasilnya konsisten, barulah tools dapat dimasukkan ke workflow yang lebih penting.

Sebelum memakai tools AI dalam pekerjaan nyata, pastikan Anda memahami tiga hal: jenis data yang boleh dimasukkan, kualitas output yang diharapkan, dan cara memeriksa ulang hasilnya. Jangan memasukkan data rahasia perusahaan, data pelanggan, dokumen kontrak, atau kredensial sistem ke layanan AI publik kecuali kebijakan organisasi memang mengizinkannya.

Contoh Workflow yang Disarankan

  • Riset awal: minta AI membuat daftar poin penting, lalu verifikasi dengan sumber resmi.
  • Drafting: gunakan AI untuk membuat struktur artikel, email, laporan, atau kode awal.
  • Review: minta AI mencari kelemahan, bug, asumsi yang belum terbukti, atau bagian yang terlalu ambigu.
  • Finalisasi: manusia tetap memutuskan versi akhir, terutama untuk konten publik, keputusan bisnis, dan kode produksi.

Dengan alur seperti ini, tools AI menjadi asisten produktivitas, bukan pengganti penilaian manusia. Cara ini juga membantu mengurangi risiko hallucination, jawaban terlalu percaya diri, dan kesalahan teknis yang sering muncul pada penggunaan AI tanpa review.

Checklist Evaluasi Tools AI

Gunakan checklist berikut sebelum memilih tools AI untuk pemakaian rutin: apakah hasilnya konsisten dalam beberapa percobaan, apakah dokumentasinya jelas, apakah harga sesuai kebutuhan, apakah ada batasan privasi, apakah mendukung bahasa Indonesia, dan apakah mudah diintegrasikan ke workflow Anda. Jika tools digunakan untuk coding, tambahkan pengecekan test otomatis, review manual, dan version control agar perubahan dapat dilacak dengan aman.

Lanjut Belajar AI

Jika artikel ini membantu, lanjutkan ke materi terstruktur agar pemahaman AI lebih rapi dan praktis.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *